Trust infrastructure for million-agent economies on Solana — identity, reputation, and validation designed for continuous feedback at scale.
SATI enables agents to establish trust across organizational boundaries without pre-existing relationships. Built on Solana Attestation Service (SAS), SATI is architected for compression-ready reputation — storing complete feedback histories on-chain rather than just averages.
| Component | Purpose |
|---|---|
| SATI Program | Agent registration, signature verification, attestation storage routing |
| Token-2022 | Agent identity NFTs with metadata and collection membership |
| Light Protocol | ZK-compressed attestation storage (~200x cheaper) |
| SAS | Regular attestation storage (ReputationScore) |
┌───────────────────────────┐
│ Token-2022 │
│ • Identity storage │
│ • TokenMetadata │
│ • TokenGroup │
└───────────────────────────┘
▲
│ (CPI: mint NFT)
┌─────────────────────────────────────────────────────────────────┐
│ SATI Program │
│ (satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe) │
├─────────────────────────────────────────────────────────────────┤
│ Registry: │
│ initialize() → Create registry + TokenGroup │
│ register_agent() → Token-2022 NFT + group membership │
│ update_registry_authority() → Transfer/renounce control │
│ Attestation: │
│ register_schema_config() → Register schema + storage type │
│ create_attestation() → Verify sigs → route to storage │
│ close_attestation() → Close/nullify attestation │
└─────────────────────────────────────────────────────────────────┘
│ │
│ (CPI: compressed) │ (CPI: regular)
▼ ▼
┌───────────────────────────┐ ┌────────────────────────────┐
│ Light Protocol │ │ Solana Attestation Service│
│ (Compressed Storage) │ │ (Regular Storage) │
├───────────────────────────┤ ├────────────────────────────┤
│ • Feedback attestations │ │ • ReputationScore │
│ • Validation attestations │ │ • On-chain queryable │
│ • ~$0.002 per attestation │ │ │
└───────────────────────────┘ └────────────────────────────┘
Designed for scale. SATI uses Solana Attestation Service for reputation, which means:
- Complete histories, not just averages — Store every feedback on-chain, aggregate algorithmically
- Compression-ready — When SAS ships ZK-compressed attestations, reputation costs drop ~100x
- Sub-second finality — ~400ms today, ~150ms with Alpenglow
- Native wallet support — Agents visible in Phantom, Solflare, Backpack
| Capability | Today | With Compression |
|---|---|---|
| Feedback cost | ~0.002 SOL | ~0.00002 SOL |
| Practical scale | 10K feedbacks | 1M+ feedbacks |
| On-chain history | Full | Full |
100% ERC-8004 compatible — same registration file format, same functional interfaces, cross-chain agent identity via DIDs.
# Clone repository
git clone https://github.com/cascade-protocol/sati.git
cd sati
# Install dependencies
pnpm install
# Build program
anchor build
# Build SDK
pnpm --filter @cascade-fyi/sati-sdk build
# Run tests
anchor testRequirements:
- Rust 1.89.0
- Solana CLI 2.0+
- Anchor 0.32.1+
- Node.js 18+
- pnpm
import { SATI } from "@cascade-fyi/sati-sdk";
// Initialize client (auto-loads deployed schema addresses)
const sati = new SATI({ network: "mainnet" }); // or "devnet"
// Register an agent
const { mint, memberNumber } = await sati.registerAgent({
payer: keypair,
name: "MyAgent",
uri: "ipfs://QmRegistrationFile",
additionalMetadata: [
["agentWallet", `solana:${keypair.address}`],
["a2a", "https://agent.example/.well-known/agent-card.json"],
],
});
// Give feedback (uses auto-loaded SAS schemas)
const { attestation } = await sati.giveFeedback({
payer: keypair,
agentMint: mint,
score: 85,
tag1: "quality",
});See the SDK documentation for complete usage examples.
Registration (one-time, rent is reclaimable):
| Operation | Cost (SOL) |
|---|---|
| Register agent (minimal) | ~0.003 |
| Register agent (3 metadata fields) | ~0.0035 |
| Register agent (max 10 fields) | ~0.005 |
Reputation (per attestation):
| Operation | Today | With Compression |
|---|---|---|
| Authorize feedback | ~0.002 SOL | ~0.00002 SOL |
| Give feedback | ~0.002 SOL | ~0.00002 SOL |
| Validation request | ~0.002 SOL | ~0.00002 SOL |
See benchmarks for detailed CU measurements.
SATI's architecture is designed to scale with Solana's infrastructure:
Today: PDA-based attestations via SAS
- Full ERC-8004 compatibility
- Complete on-chain feedback histories
- ~0.002 SOL per attestation
When SAS ships compressed attestations (PR #101):
- ~100x cost reduction for reputation operations
- Million-agent scale becomes practical
- No SATI code changes required — SAS handles compression transparently
Why this matters: Systems constrained by gas costs store only aggregates (averages, counts). SATI stores complete histories, enabling:
- Spam detection via pattern analysis
- Reviewer reputation (weight feedback by reviewer quality)
- Time-decay scoring (recent feedback matters more)
- Payment-verified feedback (x402 proofs)
SATI achieves 100% functional compatibility with ERC-8004:
| ERC-8004 Feature | SATI Equivalent |
|---|---|
registrationFile |
Token-2022 uri field (IPFS/HTTP) |
transfer() |
Native Token-2022 transfer |
setApprovalForAll() |
Token-2022 delegate |
Feedback.request() |
SAS FeedbackAuth attestation |
Feedback.submit() |
SAS Feedback attestation |
| Collection membership | TokenGroup extension |
- Complete Specification - Full technical specification
- TypeScript SDK - Developer SDK with generated client
See SECURITY.md for vulnerability reporting.
Deployment Status: Ready for Devnet On-chain Verification: Program on Solana Explorer
See CONTRIBUTING.md for guidelines.
Inspired by:
- ERC-8004 (Ethereum Foundation, MetaMask, Google, Coinbase)
- Solana Attestation Service
- Google's Agent-to-Agent (A2A) Protocol
- Anthropic's Model Context Protocol (MCP)
Built on:
- Token-2022 (SPL Token Extensions)
- Anchor Framework
- Solana Attestation Service
- Twitter: @opwizardx
- Discussion: GitHub Discussions
Copyright 2025 Cascade Protocol