Custody model
Zenith is custodial: the bot holds your key. Here is exactly what happens to your funds and your key, so you can decide whether that's enough.
Where your key lives
When you send /start, the bot generates a fresh EVM wallet for you. The first time you switch to Solana it generates a Solana wallet, and the first time you switch to NEAR an implicit NEAR account. Each private key is encrypted at rest with AES-256-GCM and stored alongside your account. The bot holds the ciphertext; it needs your account context to decrypt and sign, the same way it needs that context to show you your own positions.
You can export any of those keys at any time. There is no cooldown, no support ticket, no reason given. The moment you export it, you hold the same key the bot was using · import it into MetaMask, Rabby, Phantom, Solflare, anything that reads a standard key for that chain, and you have the exact same wallet.
This is what "exportable custody" means in practice: the bot custodies the key so it can execute transactions on your behalf from Telegram without you signing every tap, and you can end that arrangement unilaterally whenever you want by taking the key with you.
What actually holds your liquidity
Every position Zenith opens on an EVM network is a standard Uniswap V3 or V4 NFT, minted directly to your wallet address (PancakeSwap V3 and Infinity on BSC, Reservoir on Ink and Project X on HyperEVM mint the same kind of NFT at their own position managers). On Solana a position is a Meteora position account owned by your wallet; on NEAR it is a record in Rhea's contract under your account. None of them is a share in a pool, an internal ledger entry, or a claim on a vault. If you exported your key right now and opened that wallet in any wallet app that understands those positions, your open positions would already be there.
Closing, collecting fees, and decreasing liquidity go straight to the DEX's own position manager · never through a Zenith router. That's deliberate: those actions don't need a fee, so there's no reason to route them through anything we control, and it means a paused or misbehaving Zenith contract can never trap a position you already hold. The only actions that touch a Zenith contract are opening a position and claiming referral earnings, both of which charge the flat fee described on the fees page.
What we cannot do
- We cannot move your funds without your account initiating the action.
- We cannot freeze a position · closing bypasses our contracts entirely.
- We cannot see your exported key once you've taken it; the ciphertext we hold becomes useless without the encryption context tied to your account.
What we can do, and why that's the honest tradeoff
We can execute transactions from your wallet when you tap a button in Telegram, because that's the entire point of a bot that opens and manages positions for you without a wallet-connect popup on every action. If that tradeoff isn't right for you, export the key and manage the position yourself in any wallet that speaks Uniswap V3/V4 · the position is already yours on-chain, with or without the bot.
Verify it yourself
Every position is a real NFT at a real Uniswap/PancakeSwap position manager contract address. Look up the NFT tokenId the bot shows you on the chain's own block explorer · nothing about the position depends on trusting our word for it.