@brainai/satp-client
v2.0.0
Published
SATP v2 Client SDK — Solana Agent Token Protocol (Identity, Reviews, Reputation, Attestations, Validation)
Downloads
15
Maintainers
Readme
SATP JavaScript SDK
Lightweight SDK for interacting with SATP (Solana Agent Token Protocol) programs on Solana.
Install
cd satp-sdk && npm installQuick Start
const { SATPSDK } = require('./src');
const sdk = new SATPSDK(); // mainnet by default
// const sdk = new SATPSDK({ rpcUrl: 'https://api.devnet.solana.com' });
// Check if an agent is registered
const verified = await sdk.verifyAgent('SomeWalletPubkey...');
// Get identity data
const identity = await sdk.getIdentity('SomeWalletPubkey...');
// Get reputation
const rep = await sdk.getReputation('SomeWalletPubkey...');
// Derive PDAs (offline, no RPC)
const pdas = sdk.getPDAs('SomeWalletPubkey...');Write Operations (require a signer)
const { Keypair } = require('@solana/web3.js');
const signer = Keypair.fromSecretKey(/* your key */);
// Register identity
const sig = await sdk.registerIdentity(signer, 'my-agent', { type: 'ai', version: '1.0' });
// Add reputation (endorser signs)
const sig2 = await sdk.addReputation(endorserKeypair, targetWallet, 100);Transaction Builders (for wallet adapters / frontends)
// Get unsigned transaction for frontend signing
const { transaction, identityPDA } = await sdk.buildRegisterIdentity(
walletPublicKey, 'agent-name', { metadata: true }
);
// Sign with wallet adapter, then sendAPI
| Method | Type | Description |
|--------|------|-------------|
| getIdentity(wallet) | Read | Fetch identity data (or null) |
| getReputation(wallet) | Read | Fetch reputation data (or null) |
| verifyAgent(wallet) | Read | Check if wallet has SATP identity |
| getPDAs(wallet) | Offline | Derive identity + reputation PDAs |
| registerIdentity(signer, name, metadata) | Write | Register on-chain identity |
| addReputation(endorser, target, score) | Write | Add reputation score |
| buildRegisterIdentity(wallet, name, meta) | Builder | Unsigned tx for frontends |
| buildAddReputation(wallet, score, endorser) | Builder | Unsigned tx for frontends |
Program IDs (Mainnet)
| Program | Address |
|---------|---------|
| Identity | BY4jzmnrui1K5gZ5z5xRQkVfEEMXYHYugtH1Ua867eyr |
| Reputation | TQ4P9R2Y5FRyw1TZfwoWQ2Mf6XeohbGdhYNcDxh6YYh |
| Validation | AdDWFa9oEmZdrTrhu8YTWu4ozbTP7e6qa9rvyqfAvM7N |
| Escrow | STyY8w4ZHws3X1AMoocWuDYBoogVDwvymPy8Wifx5TH |
Notes
- Account schemas are best-guess based on Anchor conventions. Once we have the actual IDLs, we can generate exact schemas.
- Write operations require SOL for transaction fees + rent.
- Always test on devnet first:
new SATPSDK({ rpcUrl: 'https://api.devnet.solana.com' })
