Skip to main content
A deposit moves funds from Base into the Portal contract. The offchain system behind your ledger records the deposit as a credit. The ledger stays agnostic to that system: another chain, a ledger, or any offchain system.
Deposit flow: create an encrypted deposit address, deposit through the Portal contract on Base, then the ingress watcher decrypts and credits the ledger.

How a deposit works

  1. Prepare. The recipient is encrypted to prevent onchain observers from knowing who the funds are flowing to.
  2. Deposit. The sender calls deposit() on the Portal contract with the encrypted recipient.
  3. Credit. The ledger consumes the event, decrypts the recipient, and credits the recipient in the ledger.
Encryption allows the recipient to receive many deposits to the same address without linking each deposit together. Only the ledger operator can decrypt the recipient and resolve it to an account. Observers and the public chain never see it.

What is exposed

DataPublic?Why
AssetPublicThe Portal settles the transfer on Base.
AmountPublicThe Portal settles the transfer on Base.
SenderPublicThe address that submits the deposit.
RecipientHiddenEncrypted so deposits to one account cannot be linked or attributed.
A deposit can also require an attestation or permission, for example to gate who can deposit. Onchain, observers see only the deposit() call and a Deposit event with an encrypted recipient. Neither links to the recipient.