Addresses
Official services
These are the official hosted front ends and APIs. They run on default platform domains until a custom domain is set up; anything else claiming to be zk-pad is not official.
| Service | URL | Notes |
|---|---|---|
| App | zkpad.family | Launch, trade, claim. Claim links use this origin |
| Documentation | docs.zkpad.family | This site |
| Relayer | https://relayer-production-76a3.up.railway.app | Relayer API; GET /v1/config shows the chain, FeeVault and relayer wallet it uses |
| Indexer | https://indexer-production-addc.up.railway.app | Indexer API |
| Attestors | none yet | Social-account claims stay disabled until attestors are registered |
zk-pad contracts
These are the only official zk-pad contracts. Any other address claiming to be zk-pad is not
official. The source of truth is contracts/deployments/56.json in the repository; every contract
below is verified on BscScan. A first deployment of 2026-10-04 is superseded: its addresses
are listed at the end of this page only so they can be recognised.
| Network | BNB Smart Chain mainnet (chain id 56) |
| Deployed | 2026-10-05, by contracts/script/Deploy.s.sol with contracts/config/56.json |
Source commit (gitCommit) | ef6614c on main, including the round-4 security fixes; release gate passed with --ack-unmerged (provenance) |
Start block (startBlock, used by the indexer) | 125812602 |
| Deployer | 0x529C9Ec99b8c7478886f8954236C0E7C9cb9aBaB |
| Contract | BSC mainnet (56) | BSC testnet (97) |
|---|---|---|
| ZkPadFactory | 0xCE921Ddb27441e17EDB1b5362Fc6a96c6381A9bf | not deployed |
| ZkPadDeployer (library linked into the factory) | 0x11d72841feAda2c73CA78a19117E18A5A21e91dD | not deployed |
| ZkPadHook | 0x9c2B6BF98E71B9729B5a70FB3593a714221f1466 | not deployed |
| ZkPadLpLocker | 0xB737551B414928F44C9fae82be4EdC2Fa33A2dEF | not deployed |
| ZkPadMevDescendingFees | 0x0eefADf3dd25A874e1d405416c5C06C3C3Fc3B36 | not deployed |
| ZkPadSwapRouter | 0x7d22d4b54AD734b782eC74d005B88835B17B3485 | not deployed |
| FeeVault | 0xb5eB5561090CBd59E26a4cDD1497f79904697DAD | not deployed |
| QuoteRegistry | 0x349A33f8362742Dd6f15E5b01614A8A44c89db89 | not deployed |
| InfinityCLRouteExecutor | 0x4b3967f015D45E325b3c4a62bfc79eEA28776967 | not deployed |
| PancakeV3RouteExecutor | 0xB30Cd2E7fA4aEcC64ef6514A7F0144fD7F0eE0d1 | not deployed |
| RailgunShieldAdapter | 0xeEfC55599B40D8dcA84183109c6E953b2479033c | n/a (no Railgun on testnet) |
| ShieldSender implementation (deployed by the adapter; per-beneficiary senders are clones of it) | 0x6df7AA75f71a69e3A451948116eB1B684dad1530 | n/a |
zk-pad is not deployed on BSC testnet. Testnet and local deployments are for development
only; run your own with the scripts on the deployment page. Coin contracts
(ZkPadToken) are created by the factory per launch and are not listed here.
Deployments are recorded in contracts/deployments/<chainId>.json by script/Deploy.s.sol, and
the SDK embeds the 56 file (see deployment).
Roles
Read back on-chain after the deployment. The roles are the same as in the superseded 2026-10-04 deployment.
At launch, every protocol-admin contract is owned by a single externally owned account (EOA), not a multisig and not behind a timelock. A hand-over to a Safe multisig (Ownable2Step) is planned. Until then, the owner key can use every power listed in trust assumptions immediately and without a delay.
| Role | Holder | Notes |
|---|---|---|
| Owner of FeeVault, ZkPadFactory, QuoteRegistry and RailgunShieldAdapter | 0x529C9Ec99b8c7478886f8954236C0E7C9cb9aBaB | Deployer EOA. No pending owner. |
teamFeeRecipient (ZkPadFactory, the 25% protocol share) | 0x529C9Ec99b8c7478886f8954236C0E7C9cb9aBaB | Same EOA. |
guardian (FeeVault and QuoteRegistry) | 0x3F8B32D7b4d7C37ed9Fe21B8f5f2a57e77de94AC | EOA. Can veto pending binds and disable quotes for new launches. |
| Attestors (FeeVault) | none | attestorThreshold = 0. |
bindDelay (FeeVault) | 172800 s (48 hours) | Rebinds wait twice as long. |
| Relayer hot wallet | 0xf38a019Fe965E27C4A0Ac5f564e597205E69b847 | Submits relayed claims and pays their gas. It has no privileges in any contract. |
With no attestors registered and a threshold of 0, proposeBind always reverts with
InsufficientAttestations, so no social-account escrow can be bound or claimed yet. The
attestor service (including the salt service that every valid handle commitment needs) is not
deployed, so do not create social-account escrows outside the app until it is. Fees sent to an
existing escrow stay in the FeeVault, but if the escrow has a fallback recipient and no bind is
finalized before its fallback delay ends (at least 180 days after registration or first credit),
anyone can sweep the balance to the fallback recipient, and the account owner can no longer
claim it. See social-account escrows.
External dependencies (BSC mainnet)
These match the external block of contracts/deployments/56.json and the registry config in
contracts/config/56.json. The configured price feeds, V3 routes, Railgun proxy and sanctions
oracle were checked live on a BSC fork on 2026-10-04 (all fork tests green) before the deployment
was broadcast.
| Dependency | Address | Source |
|---|---|---|
| PancakeSwap Infinity Vault | 0x238a358808379702088667322f80aC48bAd5e6c4 | infinity-core config |
| PancakeSwap Infinity CLPoolManager | 0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b | infinity-core config |
| PancakeSwap Infinity CLProtocolFeeController | 0x15F6180033aEa66377d2A1778e418591C00dEb4c | infinity-core config |
| WBNB | 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c | |
| USDT (BSC-USD), settlement asset | 0x55d398326f99059fF775485246999027B3197955 | |
| Railgun RailgunSmartWallet proxy | 0x590162bf4b50F6576a459B75309eE21D92178A10 | @railgun-community/shared-models; fork-tested |
| Chainalysis sanctions oracle | 0x40C57923924B5c5c5455c48D93317139ADDaC8fb | RailgunShieldAdapter sanctionsList; fork-tested |
| Chainlink BNB/USD | 0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE | WBNB feed in the registry; fork-tested |
| Chainlink BTC/USD | 0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf | BTCB feed in the registry; fork-tested |
| Chainlink ETH/USD | 0x9ef1B8c0E4F7dc8bF5719Ea496883DC6401d5b2e | ETH feed in the registry; fork-tested |
| Chainlink CAKE/USD | 0xB6064eD41d4f67e353768aA239cA86f4F73665a1 | CAKE feed in the registry; fork-tested |
| Chainlink USDT/USD | 0xB97Ad0E74fa7d920791E90258A6E2085088b4320 | SDK address book (UNVERIFIED); not configured in the registry (USDT is priced at $1) |
| Chainlink USDC/USD | 0x51597f405303C4377E36123cBc172b13269EA163 | SDK address book (UNVERIFIED); not configured in the registry (a stablecoin feed with a long heartbeat would revert as stale under the 1 h MAX_ORACLE_AGE) |
| PancakeSwap V3 SwapRouter | 0x1b81D678ffb9C0263b24A97847620C99d213eB14 | PancakeV3RouteExecutor; fork-tested |
| PancakeSwap V3 factory | 0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865 | PancakeV3RouteExecutor; quote-tokens research (CREATE2-checked pools) |
USD1, FDUSD, USDC and XAUt have no price feed in the registry. Quote-token addresses are on the quote tokens page.
Superseded (do not use)
The first mainnet deployment (2026-10-04, from commit 7c5afec, without the round-4 fixes) is
superseded by the deployment above. Do not launch, trade, send funds or sign messages for
these contracts. They are listed only so they can be recognised.
- Its factory was deprecated on-chain with
setDeprecated(true)in transaction0xbb3764e5…79868e5, so any launch through it reverts. - No coin was ever launched from it (factory nonce 1), and its FeeVault never held funds.
- Full record:
contracts/deployments/56-2026-10-04-superseded.json(start block125685708). History: deployment.
| Contract (2026-10-04, superseded) | Address |
|---|---|
| ZkPadFactory (deprecated) | 0xA91e4A3714b31ce8E4573F79fEDd65053f90b6a2 |
| FeeVault (never held funds) | 0x555767e731A55b46f1FCb344Ac47ef57B7fE5dc6 |
The other 2026-10-04 contracts (hook, LP locker, MEV module, router, QuoteRegistry, route
executors, shield adapter and the ZkPadDeployer library) are in the superseded record and are
equally out of use.