ERC-8004 on Solana. On-chain identity, verifiable reputation, and agent discovery - the same standard backed by MetaMask, Google, and Coinbase, implemented with sub-cent storage and sub-second finality.
Agents register as Token-2022 NFTs, feedback is stored as compressed attestations at ~$0.002 each, and the SDK works out of the box - no API keys, no custom indexer, no infrastructure.
pnpm add @cascade-fyi/sati-agent0-sdkPeer dependencies:
pnpm add @cascade-fyi/sati-sdk @solana/kit @solana-program/token-2022 agent0-sdkimport { SatiAgent0 } from "@cascade-fyi/sati-agent0-sdk";
import { generateKeyPairSigner, createSolanaRpc } from "@solana/kit";
// 1. Create a funded devnet wallet
const signer = await generateKeyPairSigner();
const rpc = createSolanaRpc("https://api.devnet.solana.com");
await rpc.requestAirdrop(signer.address, 1_000_000_000n).send();
// 2. Initialize the SDK (zero config - no API keys needed)
const sdk = new SatiAgent0({ network: "devnet", signer });
// 3. Register an agent (metadata uploaded to IPFS automatically)
const agent = sdk.createAgent("MyAgent", "An AI trading assistant");
agent.setActive(true);
const regHandle = await agent.registerIPFS();
console.log(agent.agentId); // solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1:MintAddr...
// 4. Give feedback (0-100 score with optional tags)
const fbHandle = await sdk.giveFeedback(agent.agentId!, 85, "quality", "speed");
const { result: feedback } = await fbHandle.waitMined();
// 5. Query reputation
const summary = await sdk.getReputationSummary(agent.agentId!);
console.log(`${summary.count} reviews, avg ${summary.averageValue}`);Proof of participation. Agents sign a cryptographic commitment with every response, before knowing what score the reviewer will give. They can't cherry-pick positive reviews - they already committed to the interaction on-chain.
- On-chain identity - Agents are Token-2022 NFTs, visible in Phantom, Solflare, Backpack
- Blind feedback - Agent commits before outcome is known; reviewer needs agent's signature to submit
- Complete histories - Every interaction stored on-chain (~$0.002 each), not just aggregates
- Zero infrastructure - Hosted IPFS uploads and Photon RPC built into the SDK, no API keys needed
- Sub-second finality - ~400ms today, ~150ms with Alpenglow
100% ERC-8004 compatible - same registration file format, same functional interfaces, cross-chain agent identity via CAIP-2.
| Package | Description |
|---|---|
| @cascade-fyi/sati-agent0-sdk | High-level SDK for agent registration, feedback, search, and reputation. Start here. |
| @cascade-fyi/sati-sdk | Low-level SDK for raw attestations, custom schemas, compression, encryption. |
| @cascade-fyi/compression-kit | Light Protocol compression primitives for @solana/kit. |
| SATI Program | Anchor program for on-chain registration and attestation routing. |
┌───────────────────────────┐
│ Token-2022 │
│ - Identity storage │
│ - TokenMetadata │
│ - TokenGroup │
└───────────────────────────┘
▲
│ (CPI: mint NFT)
┌─────────────────────────────────────────────────────────────────┐
│ SATI Program │
│ (satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe) │
├─────────────────────────────────────────────────────────────────┤
│ Registry: │
│ initialize() → Create registry + TokenGroup │
│ register_agent() → Token-2022 NFT + group member │
│ 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 │ │ │
└───────────────────────────┘ └────────────────────────────┘
| Operation | Cost |
|---|---|
| Agent registration | ~0.003 SOL |
| Feedback (single) | ~$0.002 |
| Feedback (batched 5/tx) | ~$0.001 |
| Validation | ~$0.002 |
See benchmarks for detailed CU measurements.
docs.sati.cascade.fyi - Full documentation
- Getting Started - zero to working in 5 minutes
- How It Works - blind feedback, compression, schemas
- Guides - agent marketplace, MCP registration, browser wallets
- Specification - byte-level protocol details
git clone https://github.com/cascade-protocol/sati.git
cd sati && pnpm install
# Build program + SDK
anchor build
cd packages/sdk && pnpm build
# Run tests
anchor testRequirements: Rust 1.89.0, Solana CLI 2.0+, Anchor 0.32.1+, Node.js 18+, pnpm
| Network | Program ID |
|---|---|
| Mainnet | satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe |
| Devnet | satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe |
| ERC-8004 Feature | SATI Equivalent |
|---|---|
registrationFile |
Token-2022 uri field (IPFS/HTTP) |
transfer() |
Native Token-2022 transfer |
giveFeedback() |
FeedbackPublicV1 (open, ERC-8004 compatible) + FeedbackV1 (dual-signature for on-chain composability) |
| Collection membership | TokenGroup extension |
See SECURITY.md for vulnerability reporting.
See CONTRIBUTING.md for guidelines.
Built on: Token-2022, Anchor, Solana Attestation Service, Light Protocol
Inspired by: ERC-8004, A2A Protocol, Model Context Protocol
- Twitter: @opwizardx
- Discussion: GitHub Discussions
Apache License 2.0 - Copyright 2025-present Cascade Protocol