Skip to main content
Money in a HEVN account is USDC in a Base smart wallet. A payin ends when USDC arrives in the wallet, and a payout starts with a transfer the holder’s key signs.

Login and authorization

The holder signs in with Privy by email or Google, and the Privy key signs a challenge message offchain at no gas cost. HEVN checks the signer against the holder’s Privy address and issues a short-lived JWT. The JWT cannot move money.

Payins

The partner bank opens account details (an account number or IBAN) for one holder and links them to that holder’s wallet address. A payin is complete when the USDC arrives on Base.

Fiat payouts

  1. Create a payout to a bank beneficiary in the app or through the API. The JWT authorizes this call, which returns a quote and moves no money.
  2. The payout returns a one-time address. The app checks its signature before showing it.
  3. The holder’s key signs the USDC transfer from the wallet to that address.
  4. After the USDC arrives, the partner bank pays the beneficiary.
Each one-time address serves one payout. The transfer is public on Basescan.

Cross-chain

Payins from other chains and payouts to them (BTC, ETH, SOL, USDT on TRON and others) are routed swaps.
  1. HEVN requests a quote and returns a one-time address on the origin chain. The fee is in the quote.
  2. The app validates the address against the quote before showing it.
  3. The sender pays the one-time address, and the route delivers the destination asset.
If a swap fails, for example on an expired quote or a mismatched transfer, a payin is refunded to the sender’s refund address and a payout to the wallet.

Next: Security model