ROBIN VAULT

Non-custodial · Multi-chain · Nothing on disk

Robin Vault

a wallet that only exists while you hold it.

EVM

urfgx2zfEid8k7dsEwha682D1125wnkc25nFxFnDmg

BTC

kpgwAh6akz2kn6bhw59Bw6bnuixCfi7aAx0p71tjqm

SOL

5pu5C53x0yDzfjhg6feaAjdEtspu8yAsivDtFu58kvdn

DERIVING VAULT

argon2id is deliberately slow — this is on purpose

Why this is safe

Security is the whole point

The original design used the card's NFC UID alone as a salt. UIDs aren't secret — any reader can read one. Everything below exists because of that finding.

One card, three wallets

Multi-chain from a single seed

One BIP39 seed, three independent chain derivations — materialized simultaneously, every time.

Ethereum & EVM chains

EVM
Derivation path
m/44'/60'/0'/0/0
Curve
secp256k1
Address format
EIP-55 checksummed hex

Bitcoin

BTC
Derivation path
m/84'/0'/0'/0/0
Curve
secp256k1 (BIP84)
Address format
Native segwit, bc1...

Solana

SOL
Derivation path
m/44'/501'/0'/0'
Curve
ed25519 (SLIP-0010)
Address format
Base58 of raw pubkey
Read the full derivation reference →

The whole app is a state machine

How it works

Robin Vault has no navigable menu structure. It exists in exactly one of four states at any moment — this is the real flow, not a simplified marketing version of it.

01

Scan

Hold your card to the back of your device. No button, no setup screen — there is only ever one thing to do.

02

PIN

Enter your 6-digit PIN. It's converted to bytes and never allowed to exist as a string past that first line of code.

03

Materialize

jfpis42pfvC07BA6B2ukrsF8DbE4z95yf7pDctzsyB

deriving vault

"The hook" — the single most important two seconds in the app. Argon2id runs, deliberately slowly, while your addresses scramble into view.

04

Vault

Vault
SESSION ACTIVE
ETHEREUMtap to copy

0x8f3a1b9c2d47e0a6f8b1c3d5e7a9b2c4d6e8f0a1

Your dashboard, live only for this session. Back the app out or wait 60 seconds, and every key is zeroed from memory.

Built on boring, auditable pieces

Tech stack

FlutterRiverpodlibsodium / Argon2idFastifyUpstash RedisTypeScriptVitest
See exact versions →

Read the technical documentation

Every derivation path, every rate-limit number, every API response shape — documented exactly as implemented, not summarized.