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.
Preview feature — pending external audit, and enabled per deployment.
Several fields are launch-limited; see Launch
limitations.
Android exposes the supported portal lifecycle as methods on your PrivacyBoost
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(null) derives E, gaslessly delegates and
registers it, then publishes discovery.
- Share — senders fund the returned
portal.address with ordinary ERC-20.
- Sweep / credit — the operator runs this at launch, or you can call
sdk.sweepPortal(...) as a backstop.
- Recover — use
sdk.reclaimPortalDeposit(...) for uncredited swept
deposits, then sdk.withdrawPortal(...) if raw funds are resting at E.
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; passing null picks the next free index.
List portals and deposits
status.delegated is launch-limited: the server may report false even for a
portal just created by createPortal. Do not gate readiness on that field.
Sweep and reclaim
At launch, sweeping is normally operator-run. If you need to trigger it yourself:
If a swept deposit remains uncredited past the cancel delay:
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:
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:
The seed-derived createPortal flow does not use or expose eoa.privateKey.
Types