On-chain payments, receipt anchoring, and balance monitoring for AI agent economies — sub-second finality at fractions of a cent.
~400ms confirmation — agents don't wait
~$0.00025 per transaction — micropayments are viable
USDC, custom tokens via Token Program
Anchor arbitrary data on-chain for proof
Largest developer community in crypto
In-process ed25519 signing via Open Wallet Standard
Agent-to-agent micropayments via sendSolPayment() — build a Transaction, sign with OWS, broadcast and confirm.
Immutable payment proof — SHA-256 receipt hashes written on-chain via anchorReceiptOnChain().
Real-time SOL and USDC balance queries via getSolanaBalances() for budget enforcement and dashboard display.
Autonomous micropayments for API access using the x402 protocol. Agents pay each other fractions of SOL per request.
sendSolPayment('buyer', recipientAddr, 0.001)
Immutable proof of payment on-chain. SHA-256 hashes of payment data written to Solana via the Memo program.
anchorReceiptOnChain('analyst', receiptHash)
Real-time SOL and USDC balance tracking for budget enforcement, spending alerts, and dashboard visualization.
getSolanaBalances(walletAddress)
Supply chain payments: research-buyer pays analyst, analyst pays data-miner. Each payment is an on-chain SOL transfer.
buyer → analyst → miner (0.005 → 0.001 SOL)
Agent Request
↓
x402 Gate Middleware (gateMiddleware)
↓
solana-pay.ts → Build Transaction (SystemProgram.transfer)
↓
OWS signTransaction() → ed25519 signature (in-process)
↓
Solana RPC → sendRawTransaction → confirmTransaction
↓
receipt-anchor.ts → Memo Program ("AEGIS_RECEIPT:<hash>")
↓
On-chain proof ✓The entire flow happens in-process. OWS derives the private key from your seed, signs the transaction bytes, and the signed transaction is broadcast to the Solana RPC. No CLI shell-out, no blockhash race conditions.
Send SOL between agent wallets. Uses SystemProgram.transfer under the hood with OWS in-process signing.
import { sendSolPayment } from "@aegis-ows/gate";
// Pay 0.001 SOL from data-miner to analyst
const txHash = await sendSolPayment(
"data-miner", // sender wallet name (OWS)
"CePyeKXCtB6RzAatosDnnun3yry", // recipient Solana address
0.001 // amount in SOL
);
if (txHash) {
console.log(`Payment confirmed: ${txHash}`);
// View: https://explorer.solana.com/tx/{txHash}
}Transaction with SystemProgram.transferOWS signTransaction()sendRawTransactionAnchor payment receipt hashes on Solana using the Memo Program. Creates an immutable on-chain proof that a payment occurred.
import { anchorReceiptOnChain } from "@aegis-ows/gate";
// Write receipt hash to Solana via Memo program
const txHash = await anchorReceiptOnChain(
"analyst", // signer wallet (OWS)
"sha256:a1b2c3d4e5f6..." // receipt hash
);
// On-chain memo data: "AEGIS_RECEIPT:sha256:a1b2c3d4e5f6..."
// Verifiable at: https://explorer.solana.com/tx/{txHash}Memo Program: MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr
The receipt hash is a SHA-256 of the canonical payment data (amount, sender, recipient, timestamp). Anyone can verify the receipt by computing the same hash and checking the on-chain memo.
import { getSolanaBalances } from "@aegis-ows/integrations";
const balances = await getSolanaBalances(
"2G55SdspdgSLcrXm3ZcfSHuDhvuhXtQLWqf1zVbAYCcq"
);
// Returns:
// [
// { chain: "Solana", token: "SOL", balance: "1.500000", usdValue: "270.00", source: "solana-rpc" },
// { chain: "Solana", token: "USDC", balance: "50.000000", usdValue: "50.00", source: "solana-rpc" }
// ]Queries native SOL balance via getBalance() and USDC SPL token accounts via getParsedTokenAccountsByOwner(). Used by the dashboard wallet balance display and budget policy enforcement.
import { verifySettlement } from "@aegis-ows/gate";
const confirmed = await verifySettlement(
txHash,
"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" // Solana mainnet
);
// true = confirmed on-chain
// false = not found or failed
// null = unable to verify (RPC error)Uses getTransaction() to check if the transaction exists and succeeded. Supports both devnet and mainnet via the SOLANA_RPC_URL env var.
Agent sends HTTP request to a gated API endpoint.
Gate middleware responds with payment details: price, token, chain, recipient.
Agent builds a Solana transaction and signs with OWS.
Signed transaction broadcast to Solana RPC and confirmed.
SHA-256 receipt hash written to Solana Memo program.
Gate middleware verifies payment and serves the response.
import { gateMiddleware } from "@aegis-ows/gate";
app.use("/api/data", gateMiddleware({
price: "0.001",
token: "SOL",
chain: "solana",
recipient: "CePyeKXCtB6RzAatosDnnun3yryUzETKXA5rNEjPeSkL"
}));# Required — no default (forces explicit network choice)
SOLANA_RPC_URL=https://api.devnet.solana.com
# For mainnet:
# SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
# OWS wallet seed for key derivation
WALLET_SEED="your twelve word mnemonic phrase goes here..."No default RPC URL
SOLANA_RPC_URLhas no fallback by design. This forces you to explicitly choose devnet or mainnet — preventing accidental real-money transactions during development.
npm install @solana/web3.js @open-wallet-standard/coreSolana Renaissance / Colosseum
AI agent marketplace with on-chain SOL payments and receipt proofs
DeFi Track
Autonomous trading agents with budget policies and spending caps
Infrastructure
Receipt anchoring as verifiable proof-of-work for AI agents
Payments Track
x402 micropayment protocol for monetizing any API endpoint
| Function | Package | Description |
|---|---|---|
| sendSolPayment(from, to, amount) | @aegis-ows/gate | Transfer SOL between agent wallets |
| anchorReceiptOnChain(signer, hash) | @aegis-ows/gate | Write receipt hash to Memo program |
| getSolanaBalances(address) | @aegis-ows/integrations | Query SOL + USDC balances |
| verifySettlement(txHash, network) | @aegis-ows/gate | Verify transaction on-chain |