AegisAEGIS
Solana Protocol

Solana Integration

On-chain payments, receipt anchoring, and balance monitoring for AI agent economies — sub-second finality at fractions of a cent.

Why Solana for Agents?

Sub-Second Finality

~400ms confirmation — agents don't wait

💰

Lowest Fees

~$0.00025 per transaction — micropayments are viable

🪙

SPL Token Support

USDC, custom tokens via Token Program

📝

Memo Program

Anchor arbitrary data on-chain for proof

🌐

Massive Ecosystem

Largest developer community in crypto

🔐

OWS Native

In-process ed25519 signing via Open Wallet Standard


What Aegis Uses Solana For

SOL Transfers Between Agents

Agent-to-agent micropayments via sendSolPayment() — build a Transaction, sign with OWS, broadcast and confirm.

Receipt Anchoring via Memo Program

Immutable payment proof — SHA-256 receipt hashes written on-chain via anchorReceiptOnChain().

Balance Monitoring

Real-time SOL and USDC balance queries via getSolanaBalances() for budget enforcement and dashboard display.


Use Cases

\uD83D\uDCB8

Agent-to-Agent Payments

Autonomous micropayments for API access using the x402 protocol. Agents pay each other fractions of SOL per request.

sendSolPayment('buyer', recipientAddr, 0.001)

\uD83D\uDD17

Receipt Anchoring

Immutable proof of payment on-chain. SHA-256 hashes of payment data written to Solana via the Memo program.

anchorReceiptOnChain('analyst', receiptHash)

\uD83D\uDCCA

Balance Monitoring

Real-time SOL and USDC balance tracking for budget enforcement, spending alerts, and dashboard visualization.

getSolanaBalances(walletAddress)

\uD83C\uDFED

Multi-Agent Economies

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)


Architecture

Payment Flow
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.


On-Chain Payments

Send SOL between agent wallets. Uses SystemProgram.transfer under the hood with OWS in-process signing.

packages/gate/src/solana-pay.ts
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}
}

How it works

  1. Fetches latest blockhash from Solana RPC
  2. Builds a Transaction with SystemProgram.transfer
  3. Serializes the transaction message to bytes
  4. Signs in-process with OWS signTransaction()
  5. Broadcasts via sendRawTransaction
  6. Waits for confirmation

Receipt Anchoring

Anchor payment receipt hashes on Solana using the Memo Program. Creates an immutable on-chain proof that a payment occurred.

Anchor a receipt hash on-chain
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.


Balance Monitoring

Query SOL + USDC balances
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.


Settlement Verification

Verify a Solana transaction
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.


x402 Payment Flow

1

Client Requests Protected Endpoint

Agent sends HTTP request to a gated API endpoint.

2

402 Payment Required

Gate middleware responds with payment details: price, token, chain, recipient.

3

Client Signs Payment

Agent builds a Solana transaction and signs with OWS.

4

Payment Lands On-Chain

Signed transaction broadcast to Solana RPC and confirmed.

5

Receipt Anchored

SHA-256 receipt hash written to Solana Memo program.

6

Access Granted

Gate middleware verifies payment and serves the response.

Gate middleware setup
import { gateMiddleware } from "@aegis-ows/gate";

app.use("/api/data", gateMiddleware({
  price: "0.001",
  token: "SOL",
  chain: "solana",
  recipient: "CePyeKXCtB6RzAatosDnnun3yryUzETKXA5rNEjPeSkL"
}));

Setup Guide

.env
# 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.

Dependencies

npm install @solana/web3.js @open-wallet-standard/core

Hackathon Ideas

Solana 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


API Reference

FunctionPackageDescription
sendSolPayment(from, to, amount)@aegis-ows/gateTransfer SOL between agent wallets
anchorReceiptOnChain(signer, hash)@aegis-ows/gateWrite receipt hash to Memo program
getSolanaBalances(address)@aegis-ows/integrationsQuery SOL + USDC balances
verifySettlement(txHash, network)@aegis-ows/gateVerify transaction on-chain