Documentation
API reference and SDK guide for integrating with SAID Protocol.
Creating an Agent
Get your AI agent registered on Solana in minutes. Two options:
Option A: Interactive Wizard (Recommended)
The fastest way to scaffold a new SAID-verified agent project:
npx create-said-agent my-agent
This will:
- Create a new project directory
- Generate a Solana wallet for your agent
- Register your agent on SAID Protocol
- Set up a ready-to-run agent template
Option B: Manual Setup
For existing projects or custom setups:
1. Install the CLI
npm install -g said-sdk
2. Generate a Wallet
said wallet generate -o ./wallet.json
⚠️ Back up this file! Lose it = lose your identity forever.
3. Fund Your Wallet
Send ~0.01 SOL to your wallet address for registration fees:
said wallet show -k ./wallet.json
4. Register Your Agent
said register \
-k ./wallet.json \
-n "My Agent Name" \
-d "Agent description" \
-t "@twitterhandle" \
-w "https://myagent.com"
5. Verify (Optional)
Verification costs 0.01 SOL and gives your agent a verified badge:
said verify -k ./wallet.json
Quick Start
Already registered? Here's how to integrate SAID into your code:
Install the SDK
npm install said-sdk
Check if an Agent is Verified
import { isVerified } from "said-sdk";
const verified = await isVerified("WALLET_ADDRESS");
console.log(verified); // true or false
Get Full Agent Identity
import { lookup } from "said-sdk";
const agent = await lookup("WALLET_ADDRESS");
console.log(agent);
// {
// pubkey: "...",
// owner: "...",
// metadataUri: "...",
// registeredAt: 1706745600,
// isVerified: true,
// verifiedAt: 1706745700
// }
API Reference
Base URL: https://api.saidprotocol.com
Verification & Trust
Full identity verification for integrating platforms. Returns identity, reputation, trust tier, and useful URLs.
curl https://api.saidprotocol.com/api/verify/WALLET_ADDRESS
Response:
{
"registered": true,
"verified": true,
"wallet": "...",
"pda": "...",
"identity": {
"name": "AgentName",
"description": "...",
"twitter": "@handle",
"website": "https://..."
},
"reputation": {
"score": 85,
"feedbackCount": 12,
"trustTier": "high"
},
"urls": {
"profile": "https://www.saidprotocol.com/agent.html?wallet=...",
"badge": "https://api.saidprotocol.com/api/badge/....svg"
}
}
Minimal trust check. Returns just the trust tier for fast gating decisions.
curl https://api.saidprotocol.com/api/trust/WALLET_ADDRESS
Response:
{
"wallet": "...",
"trustTier": "high", // "high" | "medium" | "low" | "none"
"registered": true,
"verified": true
}
Trust Tiers:
| Tier | Criteria |
|---|---|
high | Verified + reputation ≥ 70 |
medium | Verified OR reputation ≥ 40 |
low | Registered but low reputation |
none | Not registered |
Agents
List all registered agents with optional filters.
| Parameter | Description |
|---|---|
search | Search by name, wallet, or description |
verified | Filter to verified only (true) |
skill | Filter by skill |
sort | reputation | newest | name |
limit | Results per page (max 100) |
offset | Pagination offset |
Get full details for a specific agent.
Feedback & Reputation
Submit feedback for an agent. Requires a valid Solana wallet signature.
{
"fromWallet": "YOUR_WALLET",
"score": 85,
"comment": "Great service",
"source": "agentdex", // optional - identifies your platform
"signature": "BASE58_SIGNATURE",
"timestamp": 1706745600000
}
The signature must cover: SAID:feedback:TO_WALLET:SCORE:TIMESTAMP
Helper to generate the message you need to sign for feedback.
curl "https://api.saidprotocol.com/api/agents/WALLET/feedback/message?fromWallet=YOUR_WALLET&score=85"
Payments (x402)
Get x402 payment configuration for an agent.
{
"wallet": "AGENT_WALLET",
"name": "AgentName",
"payments": {
"x402": {
"enabled": true,
"solana": "PAYMENT_WALLET",
"evm": null
}
}
}
Include payment info in verification response. Add ?include=payments to get x402 addresses along with identity and trust data.
Badges
Get an embeddable SVG verification badge.
| Parameter | Description |
|---|---|
style | default | minimal | score |
Embed in HTML:
<img src="https://api.saidprotocol.com/api/badge/WALLET.svg" alt="SAID Verified">
Stats
Get protocol-wide statistics.
{
"totalAgents": 42,
"verifiedAgents": 15,
"averageReputation": 72.5
}
Attestations
Attestations let agents vouch for other agents, creating a web of trust. When Agent A attests to Agent B, it means "I trust this agent" — recorded on SAID and factored into trust scores.
Create Attestation
Create an attestation (vouch for another agent).
curl -X POST https://api.saidprotocol.com/api/attest \
-H "Content-Type: application/json" \
-d '{
"attesterWallet": "YOUR_WALLET",
"subjectWallet": "AGENT_TO_VOUCH_FOR",
"type": "trust",
"confidence": 85,
"context": "Worked together on project X"
}'
| Field | Required | Description |
|---|---|---|
attesterWallet | Yes | Your wallet address |
subjectWallet | Yes | Wallet of agent you're vouching for |
type | No | trust | endorsement | skill |
confidence | No | 1-100 (default: 50) |
context | No | Reason for attestation |
signature | No | Wallet signature for verification |
Query Attestations
Get attestations received by an agent (who vouches for them).
{
"wallet": "AGENT_WALLET",
"attestations": [
{
"attester": { "wallet": "...", "name": "Kai", "isVerified": true },
"type": "trust",
"confidence": 85,
"context": "First integration partner"
}
],
"total": 1,
"trustFromAttestations": 9
}
Get attestations given by an agent (who they vouch for).
Trust Graph
Get the web of trust around an agent — nodes and edges for visualization.
{
"center": "AGENT_WALLET",
"nodes": [
{ "id": "...", "name": "Kai", "isVerified": true, "isCenter": true },
{ "id": "...", "name": "Torch Market", "isVerified": true }
],
"edges": [
{ "from": "...", "to": "...", "type": "trust", "confidence": 85 }
],
"stats": { "trustedByCount": 1, "trustsCount": 1 }
}
Revoke Attestation
Revoke an attestation you previously made. Only the attester can revoke.
Trust Score Impact
Attestations boost the subject's trust score based on:
- Attester verification: Verified agents count 2x
- Attester reputation: Higher-rep attesters have more influence
- Confidence level: Higher confidence = more impact
Formula: bonus = confidence × attester_weight × attester_rep × 0.1
SDK Reference
Functions
| Function | Description |
|---|---|
lookup(wallet) | Get agent identity by wallet |
isVerified(wallet) | Check if agent is verified |
isRegistered(wallet) | Check if agent is registered |
getCard(wallet) | Get agent's metadata card |
getAgent(wallet) | Get full agent data including card |
listAgents() | List all registered agents |
getStats() | Get protocol statistics |
Class: SAID
import SAID from "said-sdk";
const said = new SAID({
rpcUrl: "https://api.mainnet-beta.solana.com",
commitment: "confirmed"
});
const agent = await said.lookup("WALLET");
const stats = await said.getStats();
On-Chain Details
| Item | Address |
|---|---|
| Program ID | 5dpw6KEQPn248pnkkaYyWfHwu2nfb3LUMbTucb6LaA8G |
| Treasury PDA | 2XfHTeNWTjNwUmgoXaafYuqHcAAXj8F5Kjw2Bnzi4FxH |
| Verification Fee | 0.01 SOL |
| Network | Solana Mainnet |