PoolKey System
3.1 What is a PoolKey?
A PoolKey represents your project’s “identity” and permissions within ZKGate. It tells the protocol:
which pool belongs to you
what modules you are allowed to use (Wallet, DEX, Launchpad, etc.)
what limits and parameters are applied to your pool
Think of PoolKey as:
“An API + permission bundle that binds your project to its ZK Pool.”
3.2 Lifecycle of a PoolKey
Request
You apply to ZKGate with project details, supported chains, and expected usage.
Issuance
ZKGate creates a pool for your project and issues a PoolKey containing:
projectIdpoolIdenabled modules
rate limits / quotas
Configuration
You define which assets, fees, and modules are active in your pool.
Rotation / Revocation
If needed (compromise, upgrades), PoolKeys can be rotated or revoked while keeping pool state intact.
3.3 Usage in Code
You typically do not pass the raw PoolKey around in front-end code. Instead, you configure it on the backend or during SDK initialization.
const zkClient = new ZKGateClient({
projectId: "my-project-001",
poolId: "pool-DEX-001",
env: "testnet",
});Advanced setups:
Multi-pool projects can maintain multiple client instances, one per pool.
Backend services can use PoolKey secrets to perform privileged actions (e.g. automated market making, treasury operations).
Last updated