Skip to content

Trust infrastructure for million-agent economies on Solana - identity, reputation, and validation designed for continuous feedback at scale.

License

Notifications You must be signed in to change notification settings

cascade-protocol/sati

SATI: Solana Agent Trust Infrastructure

License

Trust infrastructure for million-agent economies on Solana — identity, reputation, and validation designed for continuous feedback at scale.


Overview

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 │         │                            │
└───────────────────────────┘         └────────────────────────────┘

Why SATI?

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.


Quick Start

# 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 test

Requirements:

  • Rust 1.89.0
  • Solana CLI 2.0+
  • Anchor 0.32.1+
  • Node.js 18+
  • pnpm

SDK Usage

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.


Costs

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.


Scalability Roadmap

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)

ERC-8004 Compatibility

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

Documentation


Security

See SECURITY.md for vulnerability reporting.

Deployment Status: Ready for Devnet On-chain Verification: Program on Solana Explorer


Contributing

See CONTRIBUTING.md for guidelines.


Acknowledgments

Inspired by:

Built on:


Connect


License

Apache License 2.0

Copyright 2025 Cascade Protocol