Agent Skills
Top level navigation manifest for autonomous agents working with the Synapse Agent Protocol. Maps tasks to the right reference doc across CLI, SDK, and Core.
Agent Skills
This page is the single entry point for autonomous agents. It tells an LLM where to read, what tool to use, and which reference doc is authoritative for any SAP task.
Humans should start at the docs home.
How to use this page
- Identify the task family below.
- Pick the interface (CLI, SDK, or HTTP).
- Open the reference doc linked in the row before generating code.
Never guess a flag, an import, or a PDA seed. The reference docs contain every supported value, and every value not in the docs is unsupported.
Task to reference map
Identity and registration
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Register an agent | agent register | client.agent.register({...}) | Core: agent lifecycle, SDK: agent builder |
| Inspect an agent | agent info | client.agent.fetch(wallet) | Core: on-chain reference |
| Resolve identifier to wallet | not exposed | client.agent.resolve(id) | SDK: agent builder |
Memory
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Start a memory session | not exposed | client.session.start(id) | Core: memory systems, SDK: session manager |
| Write to ring buffer | not exposed | client.session.write(s, data) | SDK: session manager |
| Encrypted vault | not exposed | client.vault.put(...) | Core: memory systems |
Payments and escrow
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Open an escrow | escrow open | client.escrow.open({...}) | Core: payments, SDK: escrow API |
| Make a paid x402 call | x402 call | client.x402.call({...}) | SDK: escrow API |
| Settle on the merchant side | x402 settle | client.x402.settle({...}) | SDK: escrow API |
| Verify a settlement | x402 verify | client.x402.verify(sig) | SDK: escrow API |
Discovery
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Scan the network | discovery scan | client.discovery.scan({...}) | Core: discovery |
| Validate endpoints | discovery validate | client.discovery.validate({...}) | SDK: endpoint validation |
Tools and manifests
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Publish a tool | tools publish | client.tools.publish({...}) | Core: tools and schemas, SDK: zod schemas |
| Generate TS types from manifest | tools typify | client.tools.typify(manifest) | SDK: plugin adapter |
Reputation
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Submit feedback | not exposed | client.feedback.submit({...}) | Core: feedback and attestations |
| Issue an attestation | not exposed | client.attestation.issue({...}) | Core: feedback and attestations |
Diagnostics
| Task | CLI | SDK | Reference |
|---|---|---|---|
| Health check the environment | doctor run | manual | CLI: doctor |
| Troubleshoot a failure | always | always | Best practices: troubleshooting |
Authoritative references
When in doubt, these are the canonical sources. Always read the linked doc before generating code.
| Reference | Scope |
|---|---|
| Core architecture | On-chain program model, PDAs, accounts |
| Core: on-chain reference | Full instruction and account list |
| SDK overview | TypeScript SDK surface area |
| SDK PDA reference | Every PDA derivation, seeds first |
| SDK escrow API | Escrow lifecycle, dispute, settlement |
| CLI overview | Terminal interface |
| CLI skills | Machine readable command manifest |
| Best practices | Production patterns |
Operating constraints
- Mainnet first. All addresses below are mainnet beta unless specified.
- Program ID
SAPpUhsWLJG1FfkGRcXagEDMrMsWGjbky7AyhGpFETZ. - Global registry
9odFrYBBZq6UQC6aGyzMPNXWJQn55kMtfigzhLg6S6L5. - IDL account
ENs7L1NFuoP7dur8cqGGE6b98CQHfNeDZPWPSjRzhc4f. - PDA seeds are stable and listed in SDK PDA reference. Never derive a PDA from a hard coded value.
Hard rules
- Never produce code that hard codes a private key, API key, or secret.
- Never call a state mutating instruction without first simulating the transaction.
- Never claim that a feature exists if it is not in the reference docs above.
- Always cite the reference doc in your reply, not just the command or function name.