Your agents,
out of sight.

Pocket is a trading layer for AI agents on BNB Chain. Connect your agent, set its conditions and stay private.

BELOW THE CLOUDS, NOBODY SEES YOU

For agents

Your agent, your rules. Never your keys.

Pocket doesn't build agents. It lets the ones you already run use a private wallet on BNB Chain, through MCP tools or an SDK. They check balances, request quotes, trade and send shielded payments within limits you set.

Connect an agent
AtlasSDK example
illustration
policy serverevery call is checked
Budget today$0 / $250
BNB USDT≤ 0.5%trade only
last decision

Reads and quotes spend nothing. Trades go through every rule.

Illustrative session with example dollar values. The connected app enforces exact per-token budgets through your owner service.

bring your own agentPocket doesn't build or host agents. It gives yours a private wallet.
01 · yours

Your agent

MCP clientyour own codeany model
02 · access

Pocket, with your rules

one access key per agent
0.2 BNB / dayBNB · USDT≤ 0.5%7 daysrevocable
03 · on-chain

Shielded pool

Notes stay encrypted. Direct transaction senders and trading amounts remain public.

what your agent can do
  • Create its wallet
    pocket_create_wallet
    Gets its own wallet. The keys stay in your owner service.
  • Read and recover balances
    pocket_balance · pocket_recover
    Rebuilds its notes from pool events and sums them.
  • Get quotes
    pocket_quote
    PancakeSwap V2 prices, valid up to 60 seconds and tied to its policy.
  • Shield BNBuses budget
    pocket_shield
    Turns public BNB into a private note, with owner admission.
  • Trade from notesuses budget
    pocket_trade
    Settles a confirmed quote. Pair and amounts are public on-chain.
  • Pay with Pocket Payuses budget
    pocket_pay · pocket_receive_address
    Sends a private note to a receiving address. No protocol fee.
  • Withdrawuses budget
    pocket_withdraw
    Only to its own wallet address, never to a recipient it picks.
  • Check limits and operations
    pocket_usage · pocket_operation
    Sees budget and gas left, and safely retries a pending call.
Pocket Pay
$42.00

Send a recipient-owned private note to an agent, user or service. They can recover it, pay onward, trade or withdraw. The amount and recipient stay inside the proof; the transaction sender remains public.

How it works

Five moves. None of them public.

step 1 / 5Shield
commitment
0x1f3a9c0e77b2d45a8e60c1f4b93d2e7a05c6b8f1d2e3a4b5c6d7e8f9a0b1c2d3
Privacy

Public chain. Private pocket.

The pool holds custody and checks proofs. Who owns what, and how much, lives only in ciphertext and in your keys.

note #0
a3f19c0e77b2d45a8e60c1f4b93d2e7a05c6b8f1d2e3a4b5c6d7e8f9a0b1
note #1
5c6b8f1d2e3a4b5c6d7e8f9a0b1c2d3e1f3a9c0e77b2d45a8e60c1f4b93d
note #2
e60c1f4b93d2e7a05c6b8f1d2e3a4b5c6d7e8f9a0b1c2d3a3f19c0e77b2d
encrypted notes
3 notes
HPKE · X25519 · ChaCha20-Poly1305

Notes only you can read

Every balance is a note sealed to your viewing key and stored in pool events. Anyone can see the ciphertext; nobody else can open it.

Groth16 · BN254 · in-browser

Proofs, not permission

Deposit, trade and withdrawal circuits bind chain, pool, roots, nullifiers and ciphertext hashes. Change any of them and verification fails.

you shield
BNB
fee
0.0624
note value
12.4176
50 bps · rounded down

One flat fee

0.5% on deposits and on the buy side of swaps. Withdrawals are free. The pool checks custody equals liabilities plus fees.

01234567root
known roots
  • 0x115f10a254b7ae51

Older roots stay valid, so notes made at different times can be spent together.

Poseidon note tree

One tree, every note

Each deposit, swap output and change note is a leaf. Spending proves membership against a known root without saying which leaf is yours.

you
solver
28631
request
28632
quote
28633
execute
28634
result
protocol core · pocket-rfq-v2

Signed quote messages

The protocol core supports signed, encrypted RFQ messages for solver integrations. The connected agent app currently quotes and executes directly against PancakeSwap V2.

leaf 00.995 BNB
leaf 4712.31 USDT
leaf 90.250 BNB
leaf 1312.40 CAKE
AES-256-GCM backup · event rescan

Lose the tab, not the funds

Export keys sealed with a passphrase, or rescan pool events with your viewing key. Recovery rebuilds every spendable note and its Merkle path.

Guarantees

Built to say no.

Pick an attack and watch it hit the contract. Each one is stopped by a real check in the pool, and the ones marked mined were actually sent and reverted in Pocket's test suite.

checks passed
attacks reverted on-chain
transactions mined
seconds, end to end
attack console
01 / 12
Withdrawwithdraw(request, proof)

Spend the same note twice

tampered field · nullifiers[0]
-0x0a1c…77e2 fresh
+0x2b9e…c041 already burned
checking statement…
mined in last runtx 0x24eda992…589567 · block 125503228 · 84,594 gas · reverted with InvalidSpend
every transaction, last run

44 transactions, 9 attacks reverted on-chain

  • Deposit
  • Trade
  • Withdraw
  • Setup
  • Reverted attack
gas, log scale
block 1block 125503294
Hover a bar to inspect the transaction.
Transactions from the latest end-to-end run
LabelBlockGasStatus
deploy PocketDepositVerifier125503174466619success
deploy PocketTradeVerifier125503175908119success
deploy PocketWithdrawalVerifier125503176800877success
deploy PocketPoseidon1255031772157126success
deploy PocketAdmission125503178578388success
deploy PocketPool1255031793931544success
deploy PocketPancakeV2Executor125503180786674success
setAssetEnabled12550318145654success
setAssetEnabled12550318248543success
setAssetEnabled12550318348543success
acquire real USDT using forked PancakeSwap liquidity125503184121840success
deposit 01255031852172120success
deposit 11255031861568544success
approve12550318746230success
deposit 21255031881642609success
mined raw-witness attack: deposit spendSecret=zero125503189289528reverted InvalidProof
mined raw-witness attack: trade creates extra change with a matching forged commitment125503200403353reverted InvalidProof
snapshot branch moves real BNB/USDT reserves (removed snapshot branch)125503221104764success
stale real-liquidity quote reverts mined settlement (removed snapshot branch)125503222515750reverted Error
proof rejects altered encrypted trade output125503221403341reverted InvalidProof
deploy PocketPoolCrossReplay1255032223931544success
setAssetEnabled12550322345654success
deposit proof cannot replay into another pool125503224289540reverted InvalidProof
executor rejects direct caller12550322546055reverted Unauthorized
mismatched route endpoints revert without spending notes125503226489834reverted InvalidRoute
private BNB to USDT swap: two historical roots and change1255032272857861success
same valid proof cannot spend twice12550322884594reverted InvalidSpend
mined raw-witness attack: withdrawal redirects another owner's funds125503245360462reverted InvalidProof
setPaused12550324944693success
cold recovery withdraws combined real USDT notes while paused1255032501654013success
setPaused12550325122781success
private USDT to native BNB swap with zero residual router allowance1255032522817894success
private USDT through WBNB to CAKE swap with no change note1255032681915936success
withdraw all native BNB after swaps using two recovered notes125503269385349success
deposit 201255032701577868success
deposit 211255032711563496success
deposit 221255032721558554success
fee-boundary withdrawal 397 base units1255032731640397success
fee-boundary withdrawal 200 base units125503289364231success
fee-boundary withdrawal 1 base units125503290359455success
claimFees12550329144974success
claimFees12550329255809success
claimFees12550329369499success
setPaused12550329444693success
the books balance

Custody = notes + fees

After every scenario, the pool holds exactly what it owes notes plus the fees it earned. Not a unit more or less.

Owed to notes Fees
BNB3,821,693,186,368,457 units
0 + 3,821,693,186,368,457 = 3,821,693,186,368,457balanced
TUSDT2,021,946,256,259,105,300 units
0 + 2,021,946,256,259,105,300 = 2,021,946,256,259,105,300balanced
TCAKE19,884,880,218,042,745,000 units
19,785,455,816,952,530,000 + 99,424,401,090,213,710 = 19,884,880,218,042,740,000balanced
Start small. Pocket's contracts haven't been independently audited yet.

Go below the clouds

Give an agent its own wallet, budget and rules. Private payments on BNB Smart Chain.

Open your Pocket