# ZKDepth > ZKDepth is a liquidity venue on Robinhood Chain (chain id 4663) where everything you can do in public, you can also do from a private balance: Uniswap v3 and v4 liquidity management, ZKDepth's own pools, ERC-4626 vaults, perps, launches and a swap router. An agent uses it with its own wallet. ZKDepth never asks for a private key, a seed phrase or a session key. Every ZKDepth contract is non-upgradeable, with no admin function over user positions, so the addresses and ABIs below do not change under you. An agent uses ZKDepth the way the app does: it builds a transaction, simulates it, and signs it with its own wallet. Start with "Agents and integrations". ## Agents - [Agents and integrations](https://zkdepth.com/docs/agents): what an agent can do, the contract calls, approvals and minimums, and the rules to keep - [Connect your agent](https://zkdepth.com/agents): the setup page: an instruction for a chat agent, a script to start from, and a way to watch the agent wallet - [Full docs as text](https://zkdepth.com/llms-full.txt): every chapter in one plain-text file - [Deployment manifest](https://zkdepth.com/deployments/robinhood.json): chain id, deploy block and every ZKDepth contract address - [Chain constants](https://zkdepth.com/deployments/robinhood-external.json): Uniswap, Permit2, WETH, USDG, stock tokens, Chainlink feeds, Multicall3 - [ABIs](https://zkdepth.com/abi/index.json): one JSON ABI per ZKDepth contract at /abi/.json, and which address uses which - [Agent starter kit](https://zkdepth.com/examples/agent-quickstart/README.md): a runnable TypeScript example with viem: it reads these files, quotes a swap, simulates a USDG Vault deposit with eth_simulateV1 and sends only with --send ## Rules 1. Use your own wallet. Never ask for, accept or send a private key, a seed phrase or a session key: ZKDepth never needs one. 2. Before signing, check the transaction's `to` and every approval's spender against /deployments/robinhood.json or /deployments/robinhood-external.json. 3. Approve the exact amount of the next call, to the contract that pulls it. Never approve an unlimited amount. 4. Wherever a function takes a minimum (minAmountOut, minLiquidity, minShares, amount0Min, amount1Min), pass one that is not zero, with a deadline a few minutes out. An ERC-4626 vault deposit or redeem takes none: read previewDeposit or previewRedeem just before signing and send straight away. 5. Simulate before signing: eth_call, or one eth_simulateV1 request for an approval and the call after it. 6. LP, hedged and structured vault shares have 3 more decimals than their asset: read the vault's own decimals(). 7. ZKDepth's own perps are contract calls from your own wallet (PerpEngine), with a limitPrice and a deadline. Lighter orders are signed by ZKDepth's signer for people using the app: to trade on Lighter, use Lighter directly, with your own key. 8. A private balance deposit is a public call from your own wallet. A spend (ShieldedPool.transact or act, or a SealedBatches order, claim or refund) takes a proof built from the note's keys, in your own process. Those keys never leave it. Never send tokens to an adapter: what lands on one goes to the next action in that token. ## Contracts on Robinhood Chain (4663) Explorer: https://robinhoodchain.blockscout.com. The sources are verified there. Core: - FeeRouter: 0xeE46AB1789beE2047029f25d80D0ADbA35b1Bb8D · https://zkdepth.com/abi/FeeRouter.json - ReferralRegistry: 0x40793d25ac3CE56dd7357bbA3e3595f5e9a829E4 · https://zkdepth.com/abi/ReferralRegistry.json - ZKDepthZapV3: 0x303bbc9cCE2dd7d71FDbB74471cAF16E5a7176c3 · https://zkdepth.com/abi/ZKDepthZapV3.json - ZKDepthZapV4: 0xD19db77734239f3517708649e86971f03d042426 · https://zkdepth.com/abi/ZKDepthZapV4.json - RangeOrders: 0xf79C6Be6EEf1164B8cFFf875fCA12d90456a8864 · https://zkdepth.com/abi/RangeOrders.json - PositionKeeper: 0xCa209b78C5Ada1627D513995bB4D7F24FC5da870 · https://zkdepth.com/abi/PositionKeeper.json - VaultFactory: 0xbB9e3f4D061c7ECf36b18318e531d51FD639AcdD · https://zkdepth.com/abi/VaultFactory.json - LaunchPipeline: 0xF5362e748c735A23a61DC74047108641ae3B31C0 · https://zkdepth.com/abi/LaunchPipeline.json - PreMarketPerp: 0xBa3E3F184aB312ac25B61236217Ea5D1694B6de7 · https://zkdepth.com/abi/PreMarketPerp.json Vaults: - ETH Vault: 0x725AaA9F9FA0F877fFD67b941E78633447015FfF · https://zkdepth.com/abi/LPVault.json - Income NVDA: 0xbD5532E94cDcc190D6e777eE22959AB443459DAd · https://zkdepth.com/abi/StructuredVault.json - NVDA Hedged: 0xA8A78a311D5CC2BedDF80160698F5aF453701102 · https://zkdepth.com/abi/HedgedLPVault.json - Protected SPY: 0x551bB59213CE106D2C58AA2Bd017E12E91e6074B · https://zkdepth.com/abi/StructuredVault.json - SPY Hedged: 0x1f55991F1Ff09505e36047f286A7771c99da48E0 · https://zkdepth.com/abi/HedgedLPVault.json - USDG Vault: 0x8FC464E4B11Fca3F1c09990AEA6bDC1AdC423eCD · https://zkdepth.com/abi/LPVault.json ZKDepth pools and router: - ProtocolConfig: 0x7C6fbD2cC16eCcEa1e4c16CaFbea5Fb52B1E24e1 · https://zkdepth.com/abi/ProtocolConfig.json - AssetRegistry: 0x7905c474D7195CAf402be4d9d00f09DC0eab1915 · https://zkdepth.com/abi/AssetRegistry.json - DammHook: 0x2bb0693c5C1ACe6083DC364B2853fcAaD31268CC · https://zkdepth.com/abi/DammHook.json - StockHook: 0x5069523b2A6E917cfAc24aec5af378cF477028CC · https://zkdepth.com/abi/StockHook.json - DlmmFactory: 0x027A0dc162561E5783825e109C99663Af23330e1 · https://zkdepth.com/abi/DlmmFactory.json - DlmmPositionNFT: 0x79bd8c774DdD259C868EC1972b5A4eae1C19b573 · https://zkdepth.com/abi/DlmmPositionNFT.json - Router: 0x9D8C2B906131B3950f5c33d28947199893847409 · https://zkdepth.com/abi/Router.json - FeeCollector: 0xb93F12E6424988364E3a6E9598599eD0475913cb · https://zkdepth.com/abi/FeeCollector.json - BuybackV2: 0x491c7d83081FCea71F0FEd40a79E8Af0FF6Dff49 · https://zkdepth.com/abi/BuybackV2.json - DlmmLimitOrders: 0x07B609140Cd0f80D6Ed5F33e8E2cC8e23c7F10Bc · https://zkdepth.com/abi/DlmmLimitOrders.json - DlmmVaultFactory: 0xA0F9A61024B52CC52dA2b7d0530C70C44123884e · https://zkdepth.com/abi/DlmmVaultFactory.json - DlmmVaultZap: 0x01312544de35A00064358B5E4c6239FB2C264716 · https://zkdepth.com/abi/DlmmVaultZap.json - LaunchPools: 0xd6c5A2B0BBd5287e7BEe204b1fdC90E87CAad13e · https://zkdepth.com/abi/LaunchPools.json - LaunchVault: 0x598fF86820B0AfEE6217F58Da586b023ad8aF008 · https://zkdepth.com/abi/LaunchVault.json - StockVaultFactory: 0xafFdD9eCDd0B19da505D4bb845290841c12971e8 · https://zkdepth.com/abi/StockVaultFactory.json Perps: - PerpEngine: 0x36eaC44FD1F6b659B2eD39A62A8661A6dba7c0a4 · https://zkdepth.com/abi/PerpEngine.json - PerpVault: 0x6fdec61c563cC0B2D5d61a5aF6c5708B18FBE762 · https://zkdepth.com/abi/PerpVault.json - PerpLens: 0x00A88393F74F91C07a9e866a4aaC94489F1E42BC · https://zkdepth.com/abi/PerpLens.json - PerpMarketRegistry: 0x104A224dD5845906d6be13Ac2357eBf62A966930 · https://zkdepth.com/abi/PerpMarketRegistry.json - PerpOracle: 0xfB0F7B196AD23A16f797Feb8f78121f5Dc8ACC24 · https://zkdepth.com/abi/PerpOracle.json - FundingModule: 0x2dA8CCC62ca7dA92fdCedc66dF171Ed402c3DF06 · https://zkdepth.com/abi/FundingModule.json - InsuranceFund: 0xB3507B737D73FdD866c282900b6C58B01268cE62 · https://zkdepth.com/abi/InsuranceFund.json Launchpad: - LaunchConfigRegistry: 0xA91fA7Bf5434938271583197c11ccB78B30Dadc1 · https://zkdepth.com/abi/LaunchConfigRegistry.json - LaunchFactory: 0xC6EeF40233f54BC7c6ED2954e2C2DB916c70d56c · https://zkdepth.com/abi/LaunchFactory.json - GraduationManager: 0x0445728AFB0eDb9270D1C4862b534A85226F0685 · https://zkdepth.com/abi/GraduationManager.json - LPAllocationEscrow: 0x73be4A0fD405Aa1162DAac687c49A10570633F5E · https://zkdepth.com/abi/LPAllocationEscrow.json - CreatorVesting: 0x2C9c9AD29c0935CCb9d76B435C6b964Fe7F05E25 · https://zkdepth.com/abi/CreatorVesting.json - DlmmGraduationAdapter: 0xB11364B60e9c52B8232af812a1A26E625e8A2944 · https://zkdepth.com/abi/DlmmGraduationAdapter.json - DammGraduationAdapter: 0xab87dCeb1913497DE8cb0484500d81185a98068a · https://zkdepth.com/abi/DammGraduationAdapter.json - BondingCurve: 0x1505570f132EE6F7b2f6690c2d1d19ec6DD73d1B · https://zkdepth.com/abi/BondingCurve.json Private balance: - ShieldedPool: 0x890BC80050a561200cfDDB3092B23C19c54CA3CF · https://zkdepth.com/abi/ShieldedPool.json - AssetCustody: 0xD83Ba2Dd76ac3498B289afFAeC83d902Bb9FfB76 · https://zkdepth.com/abi/AssetCustody.json - EthExitAdapter: 0x6c44E67623001051717f39A63B22C4D0297Dcc57 · https://zkdepth.com/abi/EthExitAdapter.json - SwapAdapter: 0xC3A28633571B28F3C19b1C1d4fF1D76cdD078C48 · https://zkdepth.com/abi/SwapAdapter.json - DlmmAdapter: 0x919D8e2c39A4CDF180Da0628044D2E13C3534B53 · https://zkdepth.com/abi/DlmmAdapter.json - VaultAdapter: 0x4074d74c41B6B9d6e0925C1e2CF16E22ed390a83 · https://zkdepth.com/abi/VaultAdapter.json - LaunchAdapter: 0xab79CEE31959a6f68352d332f85fbB8Dd7a93998 · https://zkdepth.com/abi/LaunchAdapter.json - PerpAdapter: 0x81F9646EF3dA09655a4E4D4E57aB527aaD2e74dD · https://zkdepth.com/abi/PerpAdapter.json Sealed batches: - SealedBatches: 0x69Ae7b6614758d67a47ee9bF8Cf61f526DF9261B · https://zkdepth.com/abi/SealedBatches.json - SealedMarkets: 0x6067B78F4CB3107014cB9F171634d8C6BFd88973 · https://zkdepth.com/abi/SealedMarkets.json Vault implementations (every vault clone delegates to one): - HedgedLPVault implementation: 0xeFfc276E1e6c51A356f0Dd35D87595c5812Fb7A3 · https://zkdepth.com/abi/HedgedLPVault.json - LPVault implementation: 0x9c133c0B5B9F33AC784194971C21f48d39021927 · https://zkdepth.com/abi/LPVault.json - StructuredVault implementation: 0x24aeD04933240AEbeCe585D4e73AE3e1BE20b15e · https://zkdepth.com/abi/StructuredVault.json ## Docs - [Introduction](https://zkdepth.com/docs/overview): Everything you can do in public on Robinhood Chain, you can also do from a private balance. - [Using the app](https://zkdepth.com/docs/app-guide): Each page in a few lines: what it is for and what it can ask you to sign. - [What is in ZKDepth](https://zkdepth.com/docs/whats-new): The product as it stands today, area by area. - [Lounge and Ideas](https://zkdepth.com/docs/lounge): The activity feed, points, follows, signed ideas and mirroring. - [Private balance and notes](https://zkdepth.com/docs/private-balance): How a balance becomes notes in one shared tree, and the three ways a note moves. - [What each lane shows on chain](https://zkdepth.com/docs/lanes): The table to read before you trust a private action: what is hidden and what stays visible. - [Immediate lane](https://zkdepth.com/docs/immediate-lane): One proof, one transaction: swap, provide liquidity and earn from a note. The owner is hidden, the amount is visible. - [Sealed batches](https://zkdepth.com/docs/sealed-batches): Orders that cross in a batch at one rate per side, with each order size hidden. - [Private perps](https://zkdepth.com/docs/private-perps): Position notes on the on-chain engine: the owner is hidden, size and price stay public. - [Keys and backup](https://zkdepth.com/docs/keys): The one signature your keys come from, what each key does, and how to back them up. - [Swaps and routing](https://zkdepth.com/docs/swaps): How one swap is split into hops across ZKDepth pools, public v4 pools and Pons, and how a route is chosen. - [Limit orders](https://zkdepth.com/docs/range-orders): A one-sided position that sells as the price crosses it and earns swap fees while it waits. - [On-chain perps](https://zkdepth.com/docs/perps): Oracle-priced perps against a USDG vault: 35 markets, their tiers, fees, funding and the LP exit delay. - [Perps on Lighter](https://zkdepth.com/docs/lighter): Perps on Lighter through a per-user order key that can place orders and has no way to withdraw. - [Vaults](https://zkdepth.com/docs/vaults): One-token Uniswap vaults and the DLMM and stock vaults: pricing, the price check, harvest and rebalance. - [Hedged vaults](https://zkdepth.com/docs/hedged-vaults): An LP vault with a Lighter short: the reporting and funding keys, and when it pauses. - [Structured notes](https://zkdepth.com/docs/structured): Income and Protected: two dated payoffs built from an LP sleeve, a perp sleeve or T-bills. - [ZKDepth pools](https://zkdepth.com/docs/pools): DAMM, DLMM and stock pools: how each prices a swap, what it charges, and how bin orders rest. - [One-token deposits](https://zkdepth.com/docs/zap): Enter a range with a single token: the swap it makes for you, the checks on it, and the refund. - [Position automation](https://zkdepth.com/docs/keeper): Let anyone harvest or re-centre your position under limits only you set, for a bounty you choose. - [Launchpad](https://zkdepth.com/docs/launch): A segmented bonding curve that graduates into a ZKDepth pool, with its real defaults. - [Launch pools and pooled buying](https://zkdepth.com/docs/launch-pools): A token and its locked pool in one transaction, pooled buying before launch, and Pons tokens. - [Token vaults and pre-market perps](https://zkdepth.com/docs/graduation): How an aged token earns a managed vault, and perps on a virtual AMM for tokens no venue lists. - [Fees and referrals](https://zkdepth.com/docs/fees): What each action costs, the relayer quote, where the money goes, and the referral share. - [Buyback and burn](https://zkdepth.com/docs/protocol): Fees become ETH, ETH buys $ZKD, $ZKD is burned: each step, its guard and who can call it. - [Who can do what](https://zkdepth.com/docs/roles): Every key and role, what it can do and the limits on it. - [Contract addresses](https://zkdepth.com/docs/contracts): Every contract this deployment runs on, read from its manifest. - [Architecture](https://zkdepth.com/docs/architecture): The contracts and services, which one calls which, and how a write travels from the app to the chain. - [Indexer, API and bots](https://zkdepth.com/docs/offchain): Events into tables, the routes the app reads, and the bots that keep positions, hedges and pools current. - [Agents and integrations](https://zkdepth.com/docs/agents): How an AI agent or a script uses ZKDepth with its own wallet: the calls, the approvals, the minimums, and where the addresses and ABIs live. - [Glossary](https://zkdepth.com/docs/glossary): The terms these docs use, each in a sentence or two. - [Credits](https://zkdepth.com/docs/credits): The open-source work the app ships with. ## Not for agents - The app's perp write routes (`POST /perp/*`): Lighter orders are signed by ZKDepth's signer service for a person using the app. An agent should trade on Lighter directly, with its own key. - Token launches, keeper enrolment and range orders have no build tool: see the docs before calling those contracts. A private spend has none either: it takes a proof built from the note's keys, in the agent's own process.