One command for Claude Code, Cursor, Codex, Windsurf and other agents — installs from the upstream repo (current HEAD; it ships 46 skills — pick sol-incinerator when prompted).
Drop the mirrored SKILL.md into your skills directory. Global (all projects):
Or scoped to the current project:
Companion files (2) are hosted on this domain too, so relative links resolve. For the full offline bundle use the CLI or Git tab.
The skill is mirrored as plain markdown — tell your agent:
Or have the skills CLI generate a one-shot prompt (pipe it straight into your agent):
Or pull the raw file into a terminal session:
Copy the skill directory with all companion files straight from GitHub:
Skill contents
Sol-Incinerator Burn + Close API v2 Guide
A practical integration guide for Sol-Incinerator’s HTTP API. The main user-facing outcomes are burning tokens, burning NFTs, and closing token accounts, while still supporting advanced batch cleanup and relay workflows.
Live API base URL: https://v2.api.sol-incinerator.com
Overview
Sol-Incinerator API v2 provides:
- Autonomous API key provisioning via
POST /api-keys/generate - Burn/close transaction building for SPL Token, Token-2022, and NFT account patterns
- Instruction-only endpoints when you want full client-side transaction assembly
- Preview/summary endpoints to estimate reclaimed rent and fees before execution
- Transaction relay endpoints to broadcast already-signed payloads
- Partner/referral monetization inputs with built-in validation
Core Endpoint Groups
| Group | Endpoints |
|---|---|
| Public discovery | GET /, /openapi.json, /.well-known/api-catalog, /llms*, /DOCS.md |
| Public auth bootstrap | POST /api-keys/generate |
| Burn + close (API key required) | /burn, /burn-instructions, /close, /close-instructions, /batch/close-all* |
| Relay + confirmation (API key required) | /transactions/send, /transactions/send-batch, /transactions/status |
Quick Start
1) Generate API key (no user input)
const baseUrl = 'https://v2.api.sol-incinerator.com';
const keyResp = await fetch(`${baseUrl}/api-keys/generate`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ label: 'autonomous-agent' }),
});
if (!keyResp.ok) {
throw new Error(`API key generation failed: ${keyResp.status}`);
}
const { apiKey } = await keyResp.json() as { apiKey: string };
2) Run preview-first flow
const headers = {
'content-type': 'application/json',
'x-api-key': apiKey,
};
const previewResp = await fetch(`${baseUrl}/burn/preview`, {
method: 'POST',
headers,
body: JSON.stringify({
userPublicKey,
assetId,
burnAmount: '1',
}),
});
3) Build, sign, submit
- Call
/burn,/close, or/batch/close-all. - Decode base58 serialized transaction(s) and sign locally with the wallet keypair.
- Submit through your wallet/RPC flow, or use
/transactions/sendand/transactions/send-batch. - Poll
/transactions/statusif needed.
Core Integration Rules
Auth
- Send API key in either:
x-api-key: ak_xxx.yyy(recommended for server agents)Authorization: Bearer ak_xxx.yyy
- Core routes return
401when key is missing or invalid.
Required body fields
- Single-asset routes (
/burn,/close, previews, instructions):userPublicKeyassetId
- Batch routes (
/batch/close-all*):userPublicKey
Optional body fields used often
feePayer(public key)asLegacyTransaction(boolean)priorityFeeMicroLamports(integer)autoCloseTokenAccounts(boolean, burn flows)burnAmount(positive integer in atomic units; use string for large values)offset,limit(batch pagination/windowing)
Partner + referral validation
partnerFeeAccountandpartnerFeeBpsare all-or-nothing.partnerFeeBpsmust be integer0..9800.referralCodemust be2-20lowercase alphanumeric.referralCodecannot be combined with partner fee fields.
Endpoint Selection
- Use
/burn/previewor/close/previewbefore execution when:- the user needs fee visibility
- assets may be frozen/invalid/non-empty
- Use
/burnand/closewhen:- you want ready-to-sign transaction payloads
- Use
/burn-instructionsand/close-instructionswhen:- your app assembles transactions client-side
- Use
/batch/close-all/previewfirst for wallet cleanup UX - Use
/batch/close-all/summaryfor lightweight dashboard counts - Use
/transactions/send-batchfor multi-tx close-all pipelines
Example Workflow (Agent)
- Generate an API key with
POST /api-keys/generate. - Run preview endpoint for target operation.
- If preview is acceptable, request executable transaction payload.
- Sign transaction locally.
- Submit signed payload.
- Confirm completion via
/transactions/status. - Store operation metadata (signature, fees, lamports reclaimed).
Guidelines
- DO run preview before destructive operations.
- DO pass
burnAmountas a string for large atomic values. - DO validate user/asset pubkeys before submitting.
- DO keep private keys local; only send signed transactions to relay endpoints.
- DON’T combine
referralCodewith partner fee fields. - DON’T send unsigned payloads to relay routes.
- DON’T assume base64 encoding for relay payloads unless explicitly set
encoding: "base64"(default is base58).
Resources
- Canonical docs (v2)
- OpenAPI spec (
/openapi.json) - LLM index (
/llms.txt) - Example flows (close account, burn token, burn NFT)
Skill Structure
sol-incinerator/
├── SKILL.md # This file
├── resources/
│ └── api-reference.md # Endpoint matrix and request notes
├── examples/
│ └── basic/
│ └── http-flow.ts # Close-account + token/NFT burn examples
├── templates/
│ └── sol-incinerator-client.ts # Ready-to-use TypeScript client
└── docs/
└── troubleshooting.md # Common errors and fixes