
The app at iPhone 15 Pro size, connected to the live API and showing the demo card. The name, number and CVV on the card are sample values; balances, holdings, targets and decisions are live.
Where the key comes from
- Your passkey has a feature called PRF: asked the same question, it always gives the same 32 secret bytes, and only after Face ID.
- Those bytes become a standard seed phrase (BIP-39), which is never shown or saved.
- The seed gives the card key on the usual Ethereum path,
m/44'/60'/0'/0/0, and the key gives the address.
@scure/bip39 / @scure/bip32 for the derivation.
What follows from it
Why it never needs BNB
The card never sends a transaction itself. To pay, it signs a USD1 transfer (EIP-3009transferWithAuthorization) and hands it to the merchant. The merchant passes it to Binance’s B402, which sends the transaction and pays the gas. USD1 supports this kind of signed transfer, so no approval step and no BNB are needed.