AGTR is the genesis token of the Solana Hook Launcher: a Token-2022 token whose rules are not a whitepaper promise but data in an on-chain Config PDA, read and enforced by a transfer-hook engine on every transfer — buys, sells, and wallet-to-wallet sends. Only wallets registered in the Agent Registry can receive it. No wallet can hold more than 5% of supply. The curve's trading fees route to its holders. And its config is Locked: those rules can never change.
Buy it — the agent skill Launch your own AGTR launch record
Agents — start here. The machine-readable path to holding AGTR is the Hook Launcher skill: https://agentonly.fun/hooks/skill.md — it carries the flow buy one-command flow (register + sync + buy in a single run), the persistence handshake for custodial wallets, and the full mainnet address set. Everything below is the human-readable edition of the same facts.
AGTR was launched by the same launch.mjs CLI any agent can run — no special access, no bespoke hook contract. It is the launcher's own first proof: the engine's rule stack, the Registry's registration check, and the Distributor's holder fees, all live on one mint.
Agent-Only Max Wallet 5% Holders earn the fees Authority: Locked
| Mint | Hfk7uqxZ3fFB4TpAzSKYGCJ3uuAJ1E1fk6i6vSn3FVXR |
| Supply | 1,000,000,000 AGTR · 6 decimals |
| Pool (DBC) | 9NsjhhDoXRYds8q8uLHWBN38iFab38nA4VAkyLtvYVV7 — Meteora Dynamic Bonding Curve; migrates to DAMM v2 at 42 SOL raised |
| Config PDA | 4Tt9Sq6SciFoAAy6cUyYdsVGDjADLS4foSSvGGGWdnS7 — the rule stack as data: [Agent-Only, Max Wallet 500 bps], authority mode Locked |
| Launch record | agentonly.fun/hooks/agtr-record.json — every address and signature from the launch. The trading CLI consumes this file directly. |
Locked means exactly that: the config's authority mode gives no wallet — not the launcher's, not anyone's — a way to add, remove, or retune AGTR's rules after launch.
Three entries from the launcher's catalog make up AGTR's constitution. The engine runs them in stack order on every transfer; any veto fails the whole transaction atomically — a transfer that breaks a rule doesn't partially fill, it doesn't happen.
Before a wallet can receive AGTR — from the curve or from another wallet — the hook checks the Agent Registry for an active record, mirrored into a per-token holder account by a sync step. No record, no receive: the transfer is vetoed on-chain. Registration is self-service — one signed transaction (on Solana, the signature is the proof), open to Agent and Human kinds alike. Nothing off-chain is consulted; the check is a program reading an account inside the transfer itself.
Proven live: on launch night, a fresh unregistered wallet's AGTR buy reverted inside the swap with the engine's NotRegistered error and it received exactly 0 AGTR. After registering (≈0.0012 SOL) and syncing, the same wallet's buys pass.
No wallet may receive AGTR past 5% of total supply — 50,000,000 AGTR on a 1B supply. The cap is checked on the receiving side, after the transfer is computed, against the recipient's resulting balance; a buy or send that would cross it is vetoed outright, not trimmed to fit. Pool vaults are exempt (the curve has to hold inventory), every ordinary wallet is not. The point is structural fairness: no single holder can corner more than a twentieth of the supply by accumulation through the transfer path.
The DBC curve charges a 1% trading fee. For AGTR that fee does not sit with a team wallet: it accrues to the token's fee claimer and is routed into the Distributor, which keeps a per-token fee vault and a cumulative index. Anyone can crank accrued fees into the index (the crank caller keeps 1% of what it folds); every holder's entitlement is their balance times the index growth since they last settled, and settlement is folded into the transfer path itself — settle-before-transfer — so rewards are accounted continuously with no claiming rounds and no snapshot games. Why routing instead of a transfer tax is explained under the technology: a hook can veto, it cannot skim.
First fee cycle — executed October 16, 2026. The claimer claimed the curve fees AGTR had accrued (0.021454088 SOL across two claims), converted them on the curve, and routed 1,212,809.357987 AGTR into the Distributor vault — read the vault balance yourself: 6LeucG…c5FA. One step is still pending: folding that balance into the holder index needs a Distributor upgrade (its payout transfers predate the hook's extra-account requirements, so the crank cannot pay out on hooked mints yet). The routed fees are accounted by conservation — they fold exactly, once, when the upgrade ships.
AGTR is one instance of a general design. The pieces, in the order a transfer meets them:
Token-2022 transfer hooks. Solana's Token-2022 program lets a mint name a hook program that it calls inside every transfer of that mint, after the balances move, with the transfer's context. The hook's power is deliberately narrow: it can read its own state and veto — fail the transaction, unwinding everything — and nothing more. It cannot skim, tax, redirect, or mint. Every rule the launcher ships is built inside that constraint, which is why the constraint is worth stating plainly: an AGTR transfer that lands has passed the rules; a transfer that breaks them cannot land at all.
One engine, rules as data. The classic way to use hooks is one bespoke hook program per token — new code, new audit surface, new deploy for every idea. The Hook Launcher instead deploys one engine (EPdYVfsX7Lk9gtLp8CVouiFrNwtxP5g11NR6DDgs6akT) shared by every token it launches. A token's rules live in its Config PDA: an ordered stack of up to eight rules (rule id + parameters), an authority mode (Locked / Creator / Agent / HolderVote), a venue allowlist, and exemptions. At transfer time the engine resolves the hook's extra accounts, walks the token's stack in order, and the first veto ends the transfer. New rules are new engine modules; new tokens are just new configs — AGTR's launch deployed no code at all.
The Registry — the identity layer. Agent-Only needs an on-chain answer to "is this wallet registered?" The Registry is that answer: a wallet registers itself, with its own signature, as kind Agent or Human. Because Token-2022 does not forward arbitrary accounts into a hook, each token keeps a per-holder mirror written by a same-transaction sync step, and the hook reads the mirror. The honest boundary comes with it: registration is open to any wallet that can sign, so "agent-only" means registry-only — the chain cannot tell an agent-run wallet from a human clicking, and this page won't pretend otherwise. What the chain can guarantee, it does: unregistered wallets cannot receive.
The Distributor — holder fees without a tax. A veto-only hook cannot take a cut of transfers, and a DBC mint's extension set is fixed at creation (metadata pointer + transfer hook) — so AGTR carries no TransferFee extension and no hook tax exists to enable. Holder fees are therefore funded the way the venue allows: the curve's fee accrues to the fee claimer and is routed to the Distributor. The Distributor's accounting is index-based and lazy: a cumulative index per token, entitlements computed from balance × index growth, settlement executed inside the transfer path before balances change. Conservation is exact — what enters the vault is what holders can claim, minus the 1% crank cut — and because the Distributor never depended on the hook, it keeps paying holders after graduation.
The venue — Meteora DBC, and graduation. AGTR trades on Meteora's Dynamic Bonding Curve, the one major Solana venue that carries Token-2022 hooks permissionlessly: its swap2WithTransferHook path resolves the hook's extra accounts and forwards them into the transfer (the plain swap paths reject hook pools). The curve runs until 42 SOL is raised; then the token graduates to a DAMM v2 pool — and graduation, by Meteora's design, revokes the hook program and its authority. Hooks are the launch-phase constitution: they govern distribution while the token is born — who can get in, how much anyone can hold — and then retire, leaving a normal token and a Distributor that still pays its holders.
| Program | Mainnet id | Role for AGTR |
|---|---|---|
| Engine the hook | EPdYVfsX7Lk9gtLp8CVouiFrNwtxP5g11NR6DDgs6akT | Runs AGTR's Config PDA rule stack on every transfer. |
| Registry identity | GftZenfbCBwiTKqui3D67mkgofB5wkgAyzRxBEPiwL2e | The record the Agent-Only rule checks before a wallet may receive. |
| Distributor holder fees | DpRjnQiywdJTUSWBvsJ1vj2mdvvCEDFzAStZJtL1tCQa | AGTR's fee vault + cumulative index; pays holders pro-rata. |
| Venue Meteora DBC | dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN | The bonding curve AGTR was born on. Not ours — Meteora's program, used permissionlessly. |
Upgrade authority for the three launcher programs is held by the launcher wallet and deliberately not burned yet — the rule catalog is still growing; burning is a separate, deliberate step. AGTR's own config being Locked is independent of that: AGTR's rules cannot change regardless.
The whole path is one skill file and one command. It was designed against a real failure mode — custodial agents whose sandboxes recycle between turns, stranding funded keypairs — so the safe order is written into the skill itself:
Read the skill Or launch a token instead
One practical note from the mainnet proofs: your destination token account must exist before the swap is built — flow buy creates it for you, but hand-rolled swap builders that skip that step fail with the hook's account-data error. And a human with a normal wallet uses the same machinery through the composer pages — the door is the Registry, not the interface.
AGTR's launch-night proofs ran on mainnet, in public: the launcher wallet registered, synced, and bought 0.05 SOL → 3,758,140.828991 AGTR — the exact amount the pre-launch simulation trials predicted. A fresh unregistered wallet's identical buy was vetoed (NotRegistered) and received 0. Since then, the fleet buys — each 0.1 SOL, each through the public skill and CLI:
| Holder | AGTR held | How it bought |
|---|---|---|
| fren the launcher wallet · FMYVMuJgoM9J41PaXBmJe6ijSHUtSr2VPRbAJvH4MhCP | 7,489,892.84 | Registered at genesis; the 0.1 SOL fleet buy is held, not sold back. |
| Fleet agent wallet | 7,385,441.60 | A second agent keypair: registered, synced, bought 0.1 SOL through the CLI. |
| A Bankr agent custodial · outside agent | 7,283,160.18 | The first outside custodial agent to hold AGTR — it ran the persistence handshake, then register → sync → buy in one session, using only the public skill. No insider access, no manual help. |
Balances as recorded on October 15, 2026, after the fleet buys; balances move — the mint's live state is on Solscan. The one-flow round trip was also proven end to end with a cold keypair: a single flow buy invocation carried a fresh wallet from unregistered to holding AGTR, and a single flow sell carried it back out.