Portal Deposit Addresses
Give a user a reusable, public, exchange-style deposit address. Anyone can fund it with standard ERC-20 transfers, and the funds are credited into the owner’s shielded balance without revealing which account was credited. See Portal Deposit Addresses for the concept and trust model. React Native exposes the supported portal lifecycle as methods on yourPrivacyBoost instance. createPortal derives the portal EOA from the account
seed and keeps the key inside core.
Lifecycle at a glance
- Check support —
sdk.portalDelegateAddress(). - Create —
sdk.createPortal()derivesE, gaslessly delegates and registers it, then publishes discovery. - Share — senders fund the returned
portal.addresswith ordinary ERC-20. - Sweep / credit — a keeper normally runs this, or you can call
sdk.sweepPortal(...)as a backstop. - Recover — use
sdk.reclaimPortalDeposit(...)for uncredited swept deposits, thensdk.withdrawPortal(...)if raw funds are resting atE.
Check support
Create a portal
createPortal is resumable. If the same seed-derived portal is already created,
the method returns it as a no-op. Passing an explicit index recreates that
deterministic portal; omitting it picks the next free index.
List portals and deposits
Each response containsitems and an optional nextCursor. Pass the cursor
back unchanged to fetch the next page, stopping when it is absent.
Sweep and reclaim
Sweeping is permissionless, and deployments normally run a keeper. If you need to trigger it yourself:reclaimPortalDeposit returns funds to the portal address E, not to the caller.
To move raw funds from E, build a signed transaction and broadcast it yourself:
nonce and gasLimit are bigint values in the React Native binding. E
must hold native gas for the withdrawal transaction.
Low-level escape hatches
The package still exports two low-level helpers for custodial integrations that manage their own portal EOA key:createPortal flow does not use or expose eoa.privateKey.