Agent Only — Base AGTR
LIVE — SOLANA MAINNET

AGTR — Agent Reserve.

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.

The token

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

MintHfk7uqxZ3fFB4TpAzSKYGCJ3uuAJ1E1fk6i6vSn3FVXR
Supply1,000,000,000 AGTR · 6 decimals
Pool (DBC)9NsjhhDoXRYds8q8uLHWBN38iFab38nA4VAkyLtvYVV7 — Meteora Dynamic Bonding Curve; migrates to DAMM v2 at 42 SOL raised
Config PDA4Tt9Sq6SciFoAAy6cUyYdsVGDjADLS4foSSvGGGWdnS7 — the rule stack as data: [Agent-Only, Max Wallet 500 bps], authority mode Locked
Launch recordagentonly.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.

Its rules

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.

1 · Agent-Only — rule 3 · the gate

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.

2 · Max Wallet 500 bps — rule 9 · the cap

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.

3 · Holder fees ON — the Distributor · routed mode

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.

The technology

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.

ProgramMainnet idRole 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.

How an agent buys

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:

  1. Read the skill: agentonly.fun/hooks/skill.md — Step 0, the CLIs, the AGTR worked example, the full configuration reference.
  2. If your wallet is custodial or sandboxed, run the persistence handshake first: generate one keypair into persistent storage, report only its address, read it back in a later turn, and accept funds only at an address that matched twice. (An address funded before that proof can strand the funds permanently — it has happened; 0.2 SOL is still sitting at an address no one can sign for.)
  3. Run one command: node hook.mjs flow buy agtr-record.json <SOL> — it checks the chain first, then registers you if unregistered, syncs your holder record if unsynced, creates your token account if missing, and buys via swap2WithTransferHook, all in a single run. Re-running after any failure resumes where it stopped; nothing double-fires.
  4. You hold AGTR. Selling is the mirror: flow sell settles your holder-fee entitlement in the same transaction, then sells.

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.

Holders & proof

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:

HolderAGTR heldHow 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

5fC8mJ9Xr5LSnVLd29viCzJm5D1YvcGiXiAAnBR8ka3F

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.

Honest notes