Roadmap
v1 shipped. Here's what's next.
Onleash v1 is a policy primitive for Token-2022 mints. The same PDA pattern is backwards-compatible — v1 mints stay valid forever as we extend the protocol.
Allowlist, per-tx cap, daily cap, pause, cooldown, transfer count. All atomic.
Seeds: ["policy", mint]. One policy per mint, authority-controlled.
Admin instructions. All 6 policy fields updatable in one tx.
deployProtectedMint, mintTo, transfer, fetchPolicy, ixInitPolicy, ixUpdatePolicy.
5 Zod-schema actions for solana-agent-kit, Vercel AI, LangChain.
ONLEASH_PAY_SH_PAYMENT action — blocks payment hijack via 402 redirect.
Plugin open for review. Drop-in for every agent on the kit.
Program ID: 7vJ2fa6dr3Tnx8whNAepUMmpytAnEZxcASMyH2jAuG7v
Protected tokens work in Orca pools via TokenBadge.
Anchor deploy to mainnet-beta. Smoke test: 1 pass + 1 revert tx on Explorer.
Moving from single deployer key to 2-of-3 multisig before GA.
Documented attack scenarios, honest scope, and v1 limitations.
Real devnet reverts end-to-end, no mocks, <10s round trip.
Full program audit before mainnet GA recommendation to projects.
POST to dev-configured URL on every TransferHookViolation.
'$10/tx, $50/day' instead of raw token units. Oracle-backed at transfer time.
Granular per-destination limits within the same policy.
One-off approvals that expire on-chain without admin action.
Plain-English rule compiled to Policy PDA. No code required.
Policy-gated burn, close-account guard — closes honest scope gaps.
GitHub Actions: Anchor test on PR, SDK publish on tag.
mainnet timeline
What gates mainnet GA.
All 6 policy checks verified with real on-chain transactions on devnet.
1 passing + 1 reverting transfer on mainnet-beta, both signatures on Explorer.
OtterSec or Neodyme review of the hook program before GA recommendation.
test results · devnet · 13/13
onleash-hook
13 passing (11s)
✔ creates mint with transfer-hook extension
✔ creates source + destination ATAs and mints supply
✔ initializes ExtraAccountMetaList
✔ initializes Policy
✔ PASS: transfer to allowlisted destination
✔ FAIL: attacker dest → DestinationNotAllowed (6001)
✔ FAIL: amount > per_tx_max → ExceedsPerTxMax (6002)
✔ FAIL: cumulative > daily_cap → ExceedsDailyCap (6003)
✔ FAIL: non-authority update → Unauthorized (6005)
✔ PASS: authority raises daily_cap
✔ FAIL: paused → PolicyPaused (6007)
✔ FAIL: too soon → CooldownActive (6008)
✔ FAIL: count exceeded → ExceedsTransferCount (6009)