Solana Frontier 2026

Completes the Solana Foundation’s ERC-8004 trust stack.

Three Anchor programs that turn Quantu’s IdentityRegistry + ReputationRegistry primitives into a full agent-payment trust system: programmable spending policies, x402 facilitator integration, and capability attestation. Five formally-verified safety properties. Drop-in TypeScript SDK.

5/5 Kani invariants proven·169 tests passing·3 programs live on devnet·MIT-licensed

Architecture

Three components, one trust stack.

Each program is independently useful. Composed, they form a complete payment-trust primitive a facilitator can drop into an x402 stack in an afternoon.

01Component

PolicyVault

Programmable spending policies

Five orthogonal policy kinds composed under one gate_payment instruction with fail-fast semantics. KillSwitch, Spending, Velocity, CounterpartyTier, RequireValidation.

  • Manual byte-offset reads of Quantu AtomStats (no Cargo dep on Quantu)
  • Five Kani-proven safety invariants, 377 sub-checks
  • Multisig-gated policy authority (1..=7 members)
02Component

TrustGate

x402 facilitator integration

Anchor program + Express service + npm SDK. PDA-signed CPI to agent_registry_8004::give_feedback with idempotency-checked emission log. Atomic-tx invariant enforced at compile-time + runtime.

  • @agenttrust-sdk/trustgate published to npm
  • Drop-in mountTrustGate(app, config) middleware
  • Token-2022 TransferHook footgun guarded by literal-type marker
03Component

ValidationRegistry

Capability attestation

The third leg Quantu archived in v0.5.0 — productized. Permissionless namespace + attestor registration; downstream-consumer-filtering for sybil resistance. Audit-trail-preserving revocation.

  • 4 PDAs + 5 instructions
  • 10 capability namespaces seeded (KYC, audit, model-card, jurisdiction)
  • Byte-perfect schema match to PolicyVault's RequireValidation policy

Foundation alignment

Built on top of, not parallel to.

Quantu Labs shipped two of the three ERC-8004 legs on Solana (IdentityRegistry + ReputationRegistry). The third — ValidationRegistry — was archived in v0.5.0 pending a redesign for spam resistance.

AgentTrust productizes that third leg AND introduces a policy-as-code primitive (PolicyVault) plus an x402-native facilitator surface (TrustGate) that consume Quantu’s existing primitives via byte-precise PDA reads. Pinned commit bfb09ad; graceful degradation when Quantu pushes upgrades.

ERC-8004 spec3 of 3 legs covered
Quantu integrationbyte-precise read-only
Cargo dep on Quantuzero
Schema-version canarybyte 560 == 1
Sybil resistance (v1)downstream-consumer-filtering
LicenseMIT (workspace-wide)
Mainnet readinessv1 ships devnet; v1.1+ adds Ed25519 sysvar verify

Formal verification

Every safety property machine-checked.

PolicyVault’s five load-bearing invariants are proven via Kani, Rust’s bounded model checker. Symbolic execution explores the full input space — every u64, u8, and bool combination — and asserts the property. CI runs all five on every PR.

#InvariantSub-checksTimeStatus
01paused_implies_no_allow1260.20sProven
02velocity_counter_le_limit90.03sProven
03counterparty_tier_monotone80.02sProven
04validation_expiry_correct850.21sProven
05multisig_threshold_enforced14962.55sProven
Total377~63s5/5 green

Integrate

One install. Drop-in middleware.

Add AgentTrust to any x402 facilitator’s Express app in under twenty lines. Atomic-tx invariant enforced at compile-time + runtime — no way to silently corrupt the velocity ledger by splitting transactions.

server.tsTypeScript
import express from "express";
import { Keypair } from "@solana/web3.js";
import { mountTrustGate } from "@agenttrust-sdk/trustgate/express";

const app = express();
app.use(express.json());

await mountTrustGate(app, {
  rpcUrl:             "https://api.devnet.solana.com",
  facilitatorKeypair: Keypair.fromSecretKey(/* … */),
  network:            "solana-devnet",
  atomicityEnforced:  true,  // literal `true` — TS compile error if you pass false
});

app.listen(3000);

You now have POST /verify, POST /settle, POST /dispute, and GET /receipt/:hash on your facilitator. x402-spec headers automatic.