{"id":43846780,"url":"https://github.com/cascade-protocol/sati","last_synced_at":"2026-02-20T03:02:01.481Z","repository":{"id":325107016,"uuid":"1093951995","full_name":"cascade-protocol/sati","owner":"cascade-protocol","description":"Trust infrastructure for million-agent economies on Solana - identity, reputation, and validation designed for continuous feedback at scale.","archived":false,"fork":false,"pushed_at":"2026-02-17T16:29:27.000Z","size":5979,"stargazers_count":14,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-18T01:35:04.144Z","etag":null,"topics":["8004","agent-attestation","agent-infrastructure","agent-registry","agent-trust","ai-agents","anchor","ap2-protocol","blockchain","erc-8004","payment-mandates","reputation-system","solana","solana-program","trustless-agents","web3","x402","zk-compression"],"latest_commit_sha":null,"homepage":"https://sati.cascade.fyi","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cascade-protocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-11T04:00:20.000Z","updated_at":"2026-02-17T16:32:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cascade-protocol/sati","commit_stats":null,"previous_names":["cascade-protocol/sati"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/cascade-protocol/sati","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cascade-protocol%2Fsati","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cascade-protocol%2Fsati/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cascade-protocol%2Fsati/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cascade-protocol%2Fsati/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cascade-protocol","download_url":"https://codeload.github.com/cascade-protocol/sati/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cascade-protocol%2Fsati/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29639808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"online","status_checked_at":"2026-02-20T02:00:07.535Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["8004","agent-attestation","agent-infrastructure","agent-registry","agent-trust","ai-agents","anchor","ap2-protocol","blockchain","erc-8004","payment-mandates","reputation-system","solana","solana-program","trustless-agents","web3","x402","zk-compression"],"created_at":"2026-02-06T06:05:31.195Z","updated_at":"2026-02-20T03:02:01.461Z","avatar_url":"https://github.com/cascade-protocol.png","language":"TypeScript","readme":"# SATI: Solana Agent Trust Infrastructure\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n**[ERC-8004](https://eips.ethereum.org/EIPS/eip-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.\n\nAgents 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.\n\n---\n\n## Quick Start\n\n```bash\npnpm add @cascade-fyi/sati-agent0-sdk\n```\n\n**Peer dependencies:**\n```bash\npnpm add @cascade-fyi/sati-sdk @solana/kit @solana-program/token-2022 agent0-sdk\n```\n\n```typescript\nimport { SatiAgent0 } from \"@cascade-fyi/sati-agent0-sdk\";\nimport { generateKeyPairSigner, createSolanaRpc } from \"@solana/kit\";\n\n// 1. Create a funded devnet wallet\nconst signer = await generateKeyPairSigner();\nconst rpc = createSolanaRpc(\"https://api.devnet.solana.com\");\nawait rpc.requestAirdrop(signer.address, 1_000_000_000n).send();\n\n// 2. Initialize the SDK (zero config - no API keys needed)\nconst sdk = new SatiAgent0({ network: \"devnet\", signer });\n\n// 3. Register an agent (metadata uploaded to IPFS automatically)\nconst agent = sdk.createAgent(\"MyAgent\", \"An AI trading assistant\");\nagent.setActive(true);\nconst regHandle = await agent.registerIPFS();\nconsole.log(agent.agentId); // solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1:MintAddr...\n\n// 4. Give feedback (0-100 score with optional tags)\nconst fbHandle = await sdk.giveFeedback(agent.agentId!, 85, \"quality\", \"speed\");\nconst { result: feedback } = await fbHandle.waitMined();\n\n// 5. Query reputation\nconst summary = await sdk.getReputationSummary(agent.agentId!);\nconsole.log(`${summary.count} reviews, avg ${summary.averageValue}`);\n```\n\n---\n\n## Why SATI?\n\n**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.\n\n- **On-chain identity** - Agents are Token-2022 NFTs, visible in Phantom, Solflare, Backpack\n- **Blind feedback** - Agent commits before outcome is known; reviewer needs agent's signature to submit\n- **Complete histories** - Every interaction stored on-chain (~$0.002 each), not just aggregates\n- **Zero infrastructure** - Hosted IPFS uploads and Photon RPC built into the SDK, no API keys needed\n- **Sub-second finality** - ~400ms today, ~150ms with Alpenglow\n\n**100% ERC-8004 compatible** - same registration file format, same functional interfaces, cross-chain agent identity via CAIP-2.\n\n---\n\n## Packages\n\n| Package | Description |\n|---------|-------------|\n| **[@cascade-fyi/sati-agent0-sdk](./packages/sati-agent0-sdk/)** | High-level SDK for agent registration, feedback, search, and reputation. **Start here.** |\n| **[@cascade-fyi/sati-sdk](./packages/sdk/)** | Low-level SDK for raw attestations, custom schemas, compression, encryption. |\n| **[@cascade-fyi/compression-kit](./packages/compression-kit/)** | Light Protocol compression primitives for `@solana/kit`. |\n| **[SATI Program](./programs/sati/)** | Anchor program for on-chain registration and attestation routing. |\n\n---\n\n## Architecture\n\n```\n┌───────────────────────────┐\n│      Token-2022           │\n│  - Identity storage       │\n│  - TokenMetadata          │\n│  - TokenGroup             │\n└───────────────────────────┘\n          ▲\n          │ (CPI: mint NFT)\n┌─────────────────────────────────────────────────────────────────┐\n│                         SATI Program                            │\n│           (satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe)        │\n├─────────────────────────────────────────────────────────────────┤\n│  Registry:                                                      │\n│    initialize()              → Create registry + TokenGroup     │\n│    register_agent()          → Token-2022 NFT + group member    │\n│  Attestation:                                                   │\n│    register_schema_config()  → Register schema + storage type   │\n│    create_attestation()      → Verify sigs → route to storage   │\n│    close_attestation()       → Close/nullify attestation        │\n└─────────────────────────────────────────────────────────────────┘\n          │                                         │\n          │ (CPI: compressed)                       │ (CPI: regular)\n          ▼                                         ▼\n┌───────────────────────────┐         ┌────────────────────────────┐\n│   Light Protocol          │         │  Solana Attestation Service│\n│   (Compressed Storage)    │         │  (Regular Storage)         │\n├───────────────────────────┤         ├────────────────────────────┤\n│ - Feedback attestations   │         │ - ReputationScore          │\n│ - Validation attestations │         │ - On-chain queryable       │\n│ - ~$0.002 per attestation │         │                            │\n└───────────────────────────┘         └────────────────────────────┘\n```\n\n---\n\n## Costs\n\n| Operation | Cost |\n|-----------|------|\n| Agent registration | ~0.003 SOL |\n| Feedback (single) | ~$0.002 |\n| Feedback (batched 5/tx) | ~$0.001 |\n| Validation | ~$0.002 |\n\nSee [benchmarks](./docs/advanced/benchmarks.md) for detailed CU measurements.\n\n---\n\n## Documentation\n\n**[docs.sati.cascade.fyi](https://docs.sati.cascade.fyi/)** - Full documentation\n\n- [Getting Started](https://docs.sati.cascade.fyi/getting-started) - zero to working in 5 minutes\n- [How It Works](https://docs.sati.cascade.fyi/how-it-works) - blind feedback, compression, schemas\n- [Guides](https://docs.sati.cascade.fyi/guides/agent-marketplace) - agent marketplace, MCP registration, browser wallets\n- [Specification](https://docs.sati.cascade.fyi/specification) - byte-level protocol details\n\n---\n\n## Building from Source\n\n```bash\ngit clone https://github.com/cascade-protocol/sati.git\ncd sati \u0026\u0026 pnpm install\n\n# Build program + SDK\nanchor build\ncd packages/sdk \u0026\u0026 pnpm build\n\n# Run tests\nanchor test\n```\n\n**Requirements:** Rust 1.89.0, Solana CLI 2.0+, Anchor 0.32.1+, Node.js 18+, pnpm\n\n---\n\n## Deployed Addresses\n\n| Network | Program ID |\n|---------|------------|\n| Mainnet | `satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe` |\n| Devnet | `satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe` |\n\n[View on Solana Explorer](https://explorer.solana.com/address/satiRkxEiwZ51cv8PRu8UMzuaqeaNU9jABo6oAFMsLe)\n\n---\n\n## ERC-8004 Compatibility\n\n| ERC-8004 Feature | SATI Equivalent |\n|------------------|-----------------|\n| `registrationFile` | Token-2022 `uri` field (IPFS/HTTP) |\n| `transfer()` | Native Token-2022 transfer |\n| `giveFeedback()` | FeedbackPublicV1 (open, ERC-8004 compatible) + FeedbackV1 (dual-signature for on-chain composability) |\n| Collection membership | TokenGroup extension |\n\n---\n\n## Security\n\nSee [SECURITY.md](./SECURITY.md) for vulnerability reporting.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.\n\n## Acknowledgments\n\n**Built on:** [Token-2022](https://spl.solana.com/token-2022), [Anchor](https://www.anchor-lang.com), [Solana Attestation Service](https://github.com/solana-foundation/solana-attestation-service), [Light Protocol](https://www.lightprotocol.com/)\n\n**Inspired by:** [ERC-8004](https://eips.ethereum.org/EIPS/eip-8004), [A2A Protocol](https://google.github.io/A2A/), [Model Context Protocol](https://modelcontextprotocol.io/)\n\n## Connect\n\n- **Twitter:** [@opwizardx](https://twitter.com/opwizardx)\n- **Discussion:** [GitHub Discussions](https://github.com/cascade-protocol/sati/discussions)\n\n## License\n\n[Apache License 2.0](./LICENSE) - Copyright 2025-present Cascade Protocol\n","funding_links":[],"categories":["Developer Tools"],"sub_categories":["Infrastructure"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcascade-protocol%2Fsati","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcascade-protocol%2Fsati","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcascade-protocol%2Fsati/lists"}