Menu

Explorer & Settings

Tempo Explorer Submit Project
Back to all projects

agentpay-solana

by tonbistudio · Updated 31 days ago

AgentPay SDK for Solana — self-custodial, policy-aware wallet operations for AI agents

Open source alternative to:

In the AI payments ecosystem

agentpay-solana is an early-stage TypeScript project in the AI payments / x402 ecosystem. It currently has 3 GitHub stars and 0 forks.

README.md View on GitHub →

AgentPay Solana SDK

Self-custodial, policy-aware wallet operations for AI agents on Solana.

A port of the AgentPay EVM SDK to Solana, enabling AI agents to hold, transfer, and govern USD1 and other SPL tokens under operator-defined spending policies.

Features

  • Ed25519 keypair generated and stored locally (never transmitted)
  • Policy engine — per-tx, daily, weekly limits; manual approval overlays; destination overrides
  • Encrypted vault — XChaCha20-Poly1305 + Argon2id (same as EVM SDK)
  • Rust daemon — key isolation, atomic spend accounting, replay protection
  • TypeScript CLI (solpay) — setup, transfer, balance, status, config, Bitrefill
  • Built-in tokens — USD1, USDC, SOL with auto ATA creation
  • Skill pack — OpenClaw-compatible skills/solpay/SKILL.md
  • Remote approvals — relay server + web UI for manual approval workflows

Quick Start

# Install
git clone https://github.com/tonbistudio/agentpay-solana
cd agentpay-solana
pnpm install
cargo build --workspace --release
npx tsup

# Setup
solpay admin setup

# Fund (devnet)
solana airdrop 2 <wallet-pubkey> --url devnet

# Check balance
solpay balance --json

# Configure policy
solpay admin token set --token usd1 --per-tx 10 --daily 100 --weekly 700

# Transfer
solpay transfer-native --to <addr> --amount 0.001 --broadcast
solpay transfer --token usdc --to <addr> --amount 1 --broadcast

Architecture

CLI (solpay)  →  Daemon (Rust, Unix socket)  →  Solana RPC
     │                    │
     │              Policy Engine
     │              Ed25519 Signer
     │              Encrypted Vault
     │
     └── Transaction Builder (TypeScript)
         VersionedTransaction V0
         Priority fee auto-detect
         ATA auto-creation

Project Structure

agentpay-solana/
├── crates/                    # 9 Rust crates
│   ├── vault-domain/          # Core Solana types (no IO)
│   ├── vault-policy/          # Stateless policy engine
│   ├── vault-signer/          # Ed25519 software signer
│   ├── vault-daemon/          # Encrypted state, auth, signing pipeline
│   ├── vault-transport-unix/  # Unix socket IPC
│   ├── vault-sdk-agent/       # Agent-side Rust SDK
│   ├── vault-cli-admin/       # solpay-admin binary (clap + ratatui TUI)
│   ├── vault-cli-agent/       # solpay-agent binary
│   └── vault-cli-daemon/      # solpay-daemon + solpay-system-keychain
├── packages/
│   ├── config/                # SolpayConfig, builtins
│   └── rpc/                   # @solana/web3.js wrapper
├── src/
│   ├── cli.ts                 # Commander.js entrypoint
│   ├── lib/                   # Core modules
│   └── plugins/               # Plugin system + Bitrefill
├── apps/
│   ├── relay/                 # Hono approval relay server
│   └── web/                   # React approval console
├── skills/solpay/             # OpenClaw skill pack
├── scripts/                   # Installer + build scripts
└── test/                      # Integration tests

CLI Commands

Command Description
solpay admin setup First-run wallet setup
solpay wallet [--json] Show wallet info
solpay balance [--json] Check SOL + token balances
solpay transfer --token <key> --to <addr> --amount <n> SPL transfer
solpay transfer-native --to <addr> --amount <n> SOL transfer
solpay broadcast --tx <base58> Broadcast raw transaction
solpay admin tui Interactive policy editor
solpay admin token set --token <key> --per-tx <n> Set limits
solpay admin approve --id <uuid> Approve pending request
solpay config show Show configuration
solpay status [--json] Health check
solpay bitrefill search --query <text> Bitrefill search

Built-in Tokens

Token Mint Decimals
USD1 USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB 6
USDC EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 6
SOL (native) 9

Development

# Build
cargo build --workspace
pnpm install && npx tsup

# Test
cargo test --workspace              # Rust tests
node --import tsx --test test/*.ts   # TypeScript tests

# Lint
npx biome check .

Security

  • Private keys never leave the daemon process
  • All state encrypted at rest (XChaCha20-Poly1305 + Argon2id)
  • Policy evaluation at sign-time (not settlement-time)
  • Auth lockout after 5 failed attempts (15 min cooldown)
  • Unix socket with owner-only permissions (0600)

License

MIT

All Solana projects →