Wallet
Nani is a self-custody Ethereum wallet. You hold the keys; the app is just an interface. The mnemonic Nani generates works in MetaMask, Ledger Live, Trezor Suite, and any other BIP-39 wallet — so you can move in and out freely.
Create a wallet
Open the wallet and choose Create new wallet. Nani:
- Generates 128 bits of entropy from the system's secure random source.
- Turns it into a 12-word recovery phrase (BIP-39).
- Derives your Ethereum private key along the standard path
m/44'/60'/0'/0/0(BIP-32 / BIP-44). - Shows you the 12 words and asks you to confirm a few of them.
- Stores the key in the macOS Keychain behind Touch ID.
Write the words down. A piece of paper kept somewhere safe is better than any digital backup. Anyone who has those 12 words has the wallet, anywhere in the world. Anyone who doesn't, can't recover it — that's what self-custody means.
Import an existing wallet
Choose Import wallet to bring in a wallet you already have:
- 12 or 24-word recovery phrase — Nani validates it and re-derives the same Ethereum address you'd see in MetaMask or Ledger.
- Private key (64-character hex) — useful for one-off accounts.
You can switch between created and imported wallets at any time.
Send a transaction
From the wallet:
- Click Send.
- Type a recipient — an Ethereum address, an ENS name (
vitalik.eth), or a WNS name (alice.wei). Nani resolves the name live. - Pick a token and amount.
- Review the summary — recipient, amount, gas, total, chain.
- Click Confirm and authenticate with Touch ID.
The signed transaction is broadcast immediately. You'll see it in the history once it's mined.
The same flow runs when the AI proposes a transfer — Nani shows you the parsed transaction and waits for your Touch ID. The assistant can suggest, but only you can sign.
Receive
Click Receive to show your address as text and a QR code. Anyone can send ETH or any ERC-20 to it from any wallet — your address is a normal Ethereum address.
Switch chains
Five chains ship out of the box, all sharing the same key:
| Chain | Type |
|---|---|
| Ethereum | Mainnet |
| Base | Optimistic L2 |
| Arbitrum | Optimistic L2 |
| Optimism | Optimistic L2 |
| Sepolia | Testnet |
Switch from the wallet header. To use a custom RPC endpoint, edit it in Settings → Wallet → RPC.
Tokens and NFTs
Common ERC-20s (USDC, USDT, DAI, WETH) appear automatically when you hold them. To add a custom token, paste its contract address in Wallet → Tokens → Add Custom — Nani fetches the symbol and decimals on the spot.
NFTs render in a gallery view. Sending an NFT works the same as sending a token — pick it, choose a recipient, approve.
Export your private key
If you ever need the raw key (to move to a hardware wallet, for example), go to Wallet → Account → Export Private Key. Touch ID required. The key is shown once and copied to clipboard if you choose. Treat it like the recovery phrase.
Move to another wallet
Open MetaMask, Rabby, Rainbow, Ledger Live, Trezor Suite, or any BIP-39 wallet. Choose "import" and paste your recovery phrase. Pick the standard Ethereum derivation path (m/44'/60'/0'/0/0). Same address, same balances.
What's next
Read AI assistant to learn how to ask the AI to do wallet things for you, or Security for how Nani protects the key.