Solana · Anchor 0.29 · Mainnet

AION SDK

Trustless payments, escrow & reputation for autonomous AI agents on Solana.

21 on-chain instructions · Anchor 0.29 · Mainnet

$npm install @aion-sdk/solana
// ON-CHAIN ESCROW FLOW
Agent A
Research Bot
▼ 2.5 SOL
PDA Vault
escrow()
2.5
SOL locked
release()
Agent B
Data Provider
▲ +2.475 SOL
State
Active
Arbiter
Oracle Alpha
Network
Mainnet
trustless · no third party · on-chain settlement
CHAIN
Solana
FRAMEWORK
Anchor
TESTS
28 / 28 ✓
NETWORK
Mainnet
# escrow_flow — click each step
create_escrowSTATE: CREATED
step 2 / 5
Initialize a new escrow account linking payer, payee, and Oracle validator. Deposits minimum rent + initial funds.
// Step 2: Create escrow
const escrow = await sdk.createEscrow({
  payer:   wallet.publicKey,
  payee:   agentPublicKey,
  amount:  2.5,     // SOL
  arbiter: ORACLE_PUBKEY,
  ttl:     86400,   // 24h timeout
});

// Returns escrow address
console.log(escrow.address.toBase58());
# use_cases
Research Agent → Data Provider
Agent-to-Agent Payment
Agent A needs market data. Agent B provides it. Escrow locks SOL, releases automatically on delivery — no trust required.
await sdk.createEscrow({
  payee:  dataProviderKey,
  amount: 0.05,  // SOL
  ttl:    3600,  // 1h timeout
})
Trading Bot → Analysis Agent
Milestone Contract
Split a long-running job into phases. Each milestone unlocks independently. Dispute any phase without losing the rest.
await sdk.addMilestone({
  escrow:  escrowAddr,
  amount:  0.3,  // phase 1 / 3
  proof:   reportHash,
})
Agent → Oracle API
Auto-pay (x402)
Drop-in fetch() replacement. Agent hits a paid endpoint, gets HTTP 402, auto-creates escrow, retries with payment proof.
// replace fetch() with x402Client
const data = await x402fetch(
  "/api/pulse/alpha",
  { maxSol: 0.001 }
)
Any Agent
On-chain Reputation
Reputation accrues from completed escrows on-chain. Non-transferable PDA per agent. Higher tier = better rates, priority.
const rep = await sdk.getReputation(key)
// → { score: 847, tier: "VETERAN",
//     completed: 23, disputed: 1 }
# escrow_states
CreatedActiveCompletedDisputedCancelledRefunded
Created ──fund()────────────→ Active
Active ──complete()──────────→ Completed
Active ──dispute()───────────→ Disputed
Created ──cancel()────────────→ Cancelled
Disputed ──arbiter.refund()────→ Refunded
Disputed ──arbiter.resolve()───→ Completed
// All transitions emit on-chain events via Anchor's emit!()
# architecture
Wallet Module
createWallet()
importWallet(secretKey)
getBalance(pubkey)
signTransaction(tx)
Escrow Module
createEscrow(params)
fundEscrow(addr)
releaseEscrow(addr)
disputeEscrow(addr)
getEscrowState(addr)
Reputation Module
getReputation(pubkey)
initReputation()
score: 0–1000
tiers: NOVICE → LEGEND
x402 Client
x402fetch(url, opts)
auto-pay on HTTP 402
maxSol budget limit
proof attachment
# smart_contract
program_id:    EFnubV4grWUCFRPkRTTNVxEdetxYb8VJtAAqQQmxmw8X
network:       Solana Mainnet
framework:     Anchor 0.29.0 (Rust)
instructions:  21

SOL Escrow (7 ix):
  create_escrow       → Create escrow PDA with auto-release
  accept_task         → Recipient accepts task
  release_payment     → Release funds + fee split
  request_refund      → Cancel / refund to creator
  dispute             → Raise dispute with reason
  resolve_dispute     → Arbiter resolves dispute
  auto_release        → Time-based auto-release (anyone)

SPL Token Escrow (7 ix):
  create_token_escrow → USDC/SPL token escrow + vault PDA
  accept_token_task   → Recipient accepts
  release_token       → CPI transfer to recipient
  refund_token        → CPI refund to creator
  dispute_token       → Raise token dispute
  resolve_token       → Arbiter resolves
  auto_release_token  → Timed CPI release

Milestone Escrow (6 ix):
  create_milestone    → Up to 10 milestones per escrow
  accept_milestone    → Recipient accepts
  release_milestone   → Release single milestone + fee
  dispute_milestone   → Dispute specific milestone
  resolve_milestone   → Arbiter resolves milestone
  refund_milestone    → Refund unreleased portion

Reputation (1 ix):
  init_reputation     → PDA per agent [reputation, pubkey]
# why_aion_sdk
the_problem
  • AI agents can't pay each other trustlessly
  • No token or milestone-based payments for agents
  • No on-chain reputation — agents can't build trust
  • No auto-pay for agent-to-service interactions
the_solution
  • +SOL + SPL token escrow with auto-release
  • +Milestone payments — up to 10 per contract
  • +On-chain reputation — trust builds over time
  • +x402 auto-pay — drop-in replacement for fetch()
// ready to build?

Build the agent economy

Open source. Solana native. Ready for production.