Maintainer and protocol packet

Review SVS without reading private operator internals.

This page is the shortest public path for agent-framework maintainers, protocols, wallets, and infrastructure teams evaluating SVS verified automation. It shows how to install the SDK, submit a certified action, verify registry proof, and reject stale or unverified automation.

Step 1

Install SDK

Bot teams can start with the JavaScript SDK, the create-agent scaffold, or the thin Python client.

npm install @svsprotocol/solana
npm create svs-agent my-agent
python3 -m pip install svs-solana

Step 2

Submit certified action

A bot submits an action through SVS so the request has signed bot identity, replay protection, policy checks, human approval, fee settlement when required, broadcast, custom receipt registry evidence, and action-record verification.

import { SolanaVerificationClient } from "@svsprotocol/solana";

const client = new SolanaVerificationClient({
  baseUrl: "https://your-svs-endpoint.example",
  botId,
  requestSigningSecret
});

const proof = await client.submitCertifiedActionAndWaitForProof({
  actionType: "memo",
  payload: {
    memo: "Protocol-safe automated action",
    network: "devnet"
  }
});

Step 3

Verify registry proof

Protocols and wallets can pin the public registry hash and require high-trust registry signals before accepting automation from an agent.

import { requireHostedVerifiedAgentRegistry } from "@svsprotocol/solana/protocol";

await requireHostedVerifiedAgentRegistry({
  registryUrl: "https://registry.svsprotocol.com/registry.json",
  expectedRegistryHash: "f037bb60f8da15486dc3b2131c7ded6334b0a58ee697217a40d1712322f11d08",
  botId,
  requireHighTrustScore: true
});
View registry

Step 4

Authorize first. Verify after.

Protocols should fail closed before broadcast, then independently verify the completed action. Official identity can bind the Agent Registry operational wallet to the SVS controller in either phase.

import { PublicKey } from "@solana/web3.js";
import { SolanaSDK } from "8004-solana";
import {
  requireAcceptedAction,
  requireAuthorizedAction
} from "@svsprotocol/solana/protocol";

const agentRegistryClient = new SolanaSDK({ cluster: "devnet" });

await requireAuthorizedAction({
  baseUrl: process.env.SVS_SERVER_URL,
  apiKey: process.env.SVS_PROTOCOL_API_KEY,
  requestSigningSecret: process.env.SVS_PROTOCOL_REQUEST_SIGNING_SECRET,
  botId,
  agentWallet,
  action: "transfer",
  actionRecordId,
  expectedSerializedTransaction: serializedTransactionBase64,
  approvalStaleAfterMs: 5 * 60 * 1000,
  agentRegistryIdentity: {
    agentRegistryClient,
    agentAsset: new PublicKey(agentAsset),
    expectedNetwork: "devnet"
  }
});

await broadcastExactTransaction(serializedTransactionBase64);

await requireAcceptedAction({
  baseUrl: process.env.SVS_SERVER_URL,
  apiKey: process.env.SVS_PROTOCOL_API_KEY,
  requestSigningSecret: process.env.SVS_PROTOCOL_REQUEST_SIGNING_SECRET,
  botId,
  agentWallet,
  action: "transfer",
  actionRecordId,
  actionProofStaleAfterMs: 5 * 60 * 1000
});
Reject when the official Agent Registry network, program, asset, or operational wallet differs. Before broadcast, reject another bot, action type, record, controller wallet, policy, intent, or serialized transaction. Reject stale certification, stale approval, or stale action-production evidence. After execution, reject missing broadcast, custom registry, or independent verification. Reject legacy approval domains for newly accepted production actions.

Identity input, action control

Use official identity. Keep SVS at the execution boundary.

The Solana Agent Registry answers which on-chain agent asset owns an operational wallet. SVS uses that wallet as an authenticated identity input, then answers whether this exact action is permitted, approved, executed without alteration, and independently provable. The registry client and program policy are pinned by the relying party, not supplied by an untrusted agent request.

Official devnet and mainnet-beta Agent Registry program ids are pinned in the SDK. Real 8004-solana SolanaSDK and AgentAccount host compatibility is tested in isolation. The registered operational wallet must equal the controller in the SVS action proof. Identity success never bypasses SVS policy, approval, freshness, execution, or receipt checks.

Partner proof patterns

Public-safe examples for protocol review.

These examples are intentionally small and dependency-free. They show how partners can use public registry evidence without needing private dashboard access or operator-only endpoints.

Jupiter-style protocol gateexamples/partners/jupiter-protocol-gateReject unverified swap automation before execution. Drift-style trading bot proof gateexamples/partners/drift-trading-proof-gateRequire trading-agent proof signals before accepting automated order flow. Helius-style registry status lookupexamples/partners/helius-registry-status-lookupExpose compact registry status for infrastructure and monitoring surfaces. AgentFund x402 settlement pilot@svsprotocol/solana/agentfundAuthorize exact contribution bytes before relay, report exact on-chain bytes after confirmation, and keep production enforcement off until the joint devnet proof is complete.
Inspect AgentFund pilot PR Open pilot metadata

Visible trust signals

Credential lifecycle plus host-framework validation.

The public registry now makes operational trust signals visible: credential lifecycle health, expired-secret cleanup status, host-framework validation, public profile hash, registry hash, and verification API status. This lets a maintainer or protocol evaluate whether SVS is operational, not only a demo claim.

Credential lifecycle: production-ready, no cleanup debt Host-framework validation catalog Solana Agent Kit: public adapter and maintainer example GOAT: public adapter and maintainer example Vercel AI SDK: public adapter and maintainer example ElizaOS: published third-party plugin AgentFund x402: merged settlement-provider integration; live devnet proof pending Registry proof: pinned registry hash and profile hashes
Open trust manifest Request partner review

Merged integration, joint proof pending

AgentFund live devnet acceptance sequence.

AgentFund merged the optional SVS settlement provider with production enforcement disabled. The pilot becomes verified only after both teams inspect one coordinated devnet contribution and approve the resulting public evidence.

Prepare one approved, signed x402 contribution transaction and bind its exact serialized bytes to the SVS action record. Submit a second independently signed, structurally valid transaction for the same contribution and require SVS to reject it specifically at exact-transaction binding before broadcast. Submit the originally approved transaction and require AgentFund to broadcast and confirm only those exact bytes. Confirm the SVS external-broadcast evidence reports matching expected and on-chain transaction hashes. Confirm AgentFund emits contribution.verified, then have both teams approve the sanitized case study.

A raw byte mutation that invalidates the Solana signature does not satisfy the negative control. The alternate transaction must remain valid enough to reach the SVS provider, proving the rejection comes from SVS transaction binding rather than AgentFund's signature or structural validation.

Coordinate devnet run Inspect pilot status

First reference workflow

One external agent. One consequential action. One enforced acceptance rule.

A reference workflow is complete only when an external agent submits a real action and a protocol, wallet, treasury, or operator calls the exact-action SVS requirement before accepting it. Demo agents and screenshots do not satisfy this milestone.

Partner supplies a public bot id, official Agent Registry asset, controller wallet, action-record txType, and safe devnet action. SVS proves signed request, policy, approval, execution, registry write, and independent verification. Relying party requires requireAuthorizedAction before broadcast and requireAcceptedAction after execution. Both parties approve a sanitized result and named public case study.
Open reference workflow starter Propose a public pilot