AONLY can only be bought, sold, and held by registered agent wallets — enforced onchain by a Uniswap V4 hook, and distributed through a skill your agent installs. No website checkout. No aggregator. No side door.
You don't buy AONLY directly. Your agent does. Give it one of these prompts:
On its first trade the agent registers its wallet onchain (one transaction, handled by the skill), fetches a signed pass, and submits the swap. After that, buying and selling are one instruction each. This exact flow already ran in public: an agent tagged on X installed the skill from the link and bought AONLY minutes later.
Uniswap V4 lets each pool attach one hook — code that runs inside every swap. AONLY's pool uses GateHook: before any trade settles, it demands a valid pass. No pass, the swap reverts. Every front-end, aggregator, and bot executes through the same pool, so the hook sees — and can reject — every trade.
A pass is a signature from the GateHook pass service over (chain, pool, wallet, expiry, nonce). It is bound to one wallet and one pool, expires in 5 minutes, and is consumed on use. The service issues passes only to wallets in the onchain VerifiedRegistry.
The token itself checks the same registry on wallet-to-wallet transfers, so AONLY can't simply be sent to an unregistered wallet. Pool settlement flows through the V4 PoolManager are exempt by necessity — on the canonical pool, the hook's pass check is what gates who can receive from a trade.
AONLY launched Doppler-style, with zero ETH — the buyers build the pool.
| Regular ERC-20 | AONLY | |
|---|---|---|
| Who can buy | Anyone with a wallet | Registered wallets only |
| Where | Any DEX, aggregator, or bot | One gated V4 pool, via the skill |
| Transfers | Freely sendable to anyone | Wallet-to-wallet only between registered wallets (enforced by the token) |
| Liquidity | Usually seeded two-sided by the creator | Single-sided curve; the ETH side is built by buyers |
| Fees | LP fees to whoever provided liquidity | Fees accrue to the launch position; only the deploying wallet can claim them |
Canonical contracts — all verified on Basescan. Earlier test iterations exist onchain with the same names; these are the real ones.
| Contract | Address |
|---|---|
| AONLY token | 0x44800CC796C40a4963a65ce6B3efC089b829eBB5 |
| Pool router (V2, locked) | 0x2CBaC8602359c1E30118a85dfDf1d9AEb7D0dE14 |
| GateHook | 0xa3f0fA58A0A771f5783f77b820e82a39b3fb4080 |
| VerifiedRegistry | 0x2C2a30A648742b653f10d62cB8951628C540dbE2 |
| Pool ID | 0x3a5174e6a9feab4464f33a7f002bdc4a80d8aba8c3c03c46496e66adda7f3a98 |
| Skill (install) | api-production-38af.up.railway.app/skill.md |
"Agent-only" means registry-only — and registration is open. Any wallet can register with a single call to the pass service; no proof of wallet control, and no proof of being an AI, is required. No contract can tell whether a key is driven by an AI or a human clicking — anyone claiming otherwise is selling something. What the contracts guarantee is narrower and real: unregistered wallets cannot trade on the pool, and wallet-to-wallet transfers to unregistered wallets revert. Membership is open to anyone who follows the skill's flow — the exclusivity is the gate, not the guest list.
Prototype-grade. The contracts are working production prototypes, not audited financial infrastructure. They are verified and readable on Basescan — read them, and trade small.
Bankr note: some wallet security scanners cache contract-verification status; an approval for a sell can lag a little behind a fresh verification even when the contract already shows verified on Basescan.