A deposit moves funds from your public Robinhood Chain address into the Veilify pool. Deposits are public: everyone can see that your address deposited an amount. What happens to the funds afterwards is private.

How a deposit works

1

Choose asset and amount

Pick ETH or a whitelisted token and enter an amount. The app shows the deposit fee and the gas escrow.
2

Approve (ERC-20 only)

For a token, approve the pool to spend the amount.
3

Deposit

Your wallet sends deposit(amount, token) on Robinhood Chain (not Veilify Network). Native ETH sends amount + gasEscrow as msg.value. A token deposit sends only the escrow as msg.value.The deposit is now pending. The pool emits DepositPending.
4

Gatekeeper screening

The gatekeeper checks the depositing address. It then approves or rejects.
5

Credited

On approval the pool mints a note to your inbox key, minus the deposit fee. Your veiled balance updates.

Deposit statuses

Gas escrow

The gatekeeper pays gas to approve or reject your deposit. You pre-fund that with a small gas escrow of ETH sent with the deposit.
  • The gatekeeper is reimbursed for the gas it actually used, at most basefee + 3 gwei per gas.
  • Everything left over is returned to you in the same transaction.
  • If the escrow is short, the gatekeeper takes all of it and pays the rest itself. Your deposit is never blocked.

Taking a pending deposit back

While a deposit is pending, you can cancel it with withdrawPendingDeposit. You get the whole amount and the whole escrow back. This works even if the pool is paused: it is an exit.

If a deposit is rejected

The deposit is refunded to the depositing address. The gatekeeper keeps only:
  • the gas it spent, out of the escrow, and
  • a screening check cost, capped at 1% of the deposit by the contract.
No protocol fee is charged on a rejected deposit.

Limits

Per-token limits are set by the admin and enforced by the contract:
  • minDeposit: smallest accepted deposit (DepositTooSmall).
  • maxDeposit: largest single deposit (DepositTooLarge).
  • depositCap: maximum pool balance for that token (DepositCapExceeded).
For privacy, deposit common round amounts, and don’t withdraw the same amount right after. See Privacy Best Practices.