Documentation

InWIF docs

Architecture

InWIF is a monorepo. packages/core is the wallet engine shared by every client: network config, keystore, BIP-39 wallets, validation, transaction review and simulation, approvals, activity, market data, swaps, security quests and the hardware protocol. apps/web is this site and the web wallet (Next.js). apps/api is an optional backend for public, non-sensitive data (PostgreSQL). apps/mobile (Expo) and apps/desktop (Tauri) reuse the core. firmware holds the Rust signing core for the device.

Signing is always local: in the browser for software wallets, on the device for hardware wallets. The backend never signs and never receives keys.

Network

Robinhood Chain — chain ID 4663, gas in ETH, RPC https://rpc.mainnet.chain.robinhood.com, explorer https://robinhoodchain.blockscout.com.

Robinhood Chain Testnet — chain ID 46630, RPC https://rpc.testnet.chain.robinhood.com/rpc.

$WIF: 0x5173b8eA6923c2d40267890D45C46a3480954773. Uniswap V3: factory 0x1f7d7550b1b028f7571e69a784071f0205fd2efa, QuoterV2 0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7, SwapRouter02 0xcaf681a66d020601342297493863e78c959e5cb2, WETH9 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73. Uniswap V4: Universal Router 0x8876789976decbfcbbbe364623c63652db8c0904, Permit2 0x000000000022D473030F116dDEE9F6B43aC78BA3; swaps route through the reviewed $WIF/ETH pool (Pons, pool ID 0x71ef4106340f0a3b9c19ec994eef4fc44a1d2513f38faac39d7636b156548c79) when it gives the better price. Sources: ethereum-lists/chains and the Uniswap SDK; every value is re-checked on-chain at runtime.

Hardware protocol (IWDP v1)

Frames: 'I' 'W' | version | cmd/status | len (u16 BE) | payload. Commands: GET_INFO, GET_ADDRESS, SIGN_TX (BIP-32 path + unsigned EIP-1559 serialization), SIGN_MESSAGE, ATTEST (32-byte challenge), FIRMWARE_UPDATE. Responses carry a status byte (OK, USER_REJECTED, LOCKED, BAD_REQUEST, UNSUPPORTED, CHAIN_NOT_ALLOWED, BUSY, BAD_SIGNATURE, NOT_INITIALIZED). SIGN_TX returns yParity ‖ r ‖ s; the companion verifies the signature recovers to the expected account before broadcasting. Full spec: docs/hardware/protocol.md.

Developers

pnpm install
pnpm dev                      # web wallet on http://localhost:3000
pnpm test                     # core + web + api tests
cd firmware && cargo test     # firmware signing core

FAQ

Is it free? Yes — every feature, permanently. Do I need $WIF? No. Can you recover my wallet? No; only your recovery phrase can. Is the hardware available? Not yet; it is a prototype.

Privacy policy (summary)

InWIF does not ask for an email or any personal details. Keys and recovery phrases never leave your device. If you choose a username, it is public: InWIF stores the username, your address and your signature so that anyone can look up @username and send to that address. Usernames cannot be deleted or given to someone else, so old links never pay a stranger. To show balances, prices and history, your browser (or the InWIF relay acting for it) queries public blockchain RPCs, the Blockscout explorer and GeckoTerminal with your public address or token addresses; those providers may log requests under their own policies. InWIF runs no analytics on the wallet.

Terms of use (summary)

InWIF is provided free, as-is, without warranty. You are solely responsible for your keys and transactions; blockchain transactions are irreversible. Third-party protocols (e.g. Uniswap) have their own fees and risks. The software is pre-release and unaudited. Nothing in InWIF is investment advice.