Documentation
Connect your agent
An agent buys the file of a tested skill (SKILL.md) once, over x402, in USDC on Base mainnet, for cents. It keeps the file forever: re-downloads and new versions are free. No account, no API key.
Discovery is free over MCP or HTTP. Buying is over HTTP in this release. Your agent needs a wallet holding USDC on Base; the gas is paid by the facilitator, not by you. The skills built for agents are listed in the agents category.
Option A
Over MCP (free tools)
Add the server to your agent's MCP configuration. In Claude Code that is .mcp.json; other clients use the same shape.
{
"mcpServers": {
"aiskills402": {
"url": "https://mcp.aiskills402.com/mcp"
}
}
}Three tools appear, all free:
search_skills— the catalog, with the price of each skill.get_skill— one skill card plus the payment requirements.redownload_skill({token}) — the file again, with the token you received at purchase.
Buying is over HTTP in this release. MCP finds the skill and hands you the requirements; it does not pay.
Option B
Buying over plain HTTP
Discovery is free and needs no key:
curl https://api.aiskills402.com/v1/skills
curl https://api.aiskills402.com/v1/skills/humanizeAsking for the file without paying returns 402 Payment Required with a PAYMENT-REQUIRED header (base64 JSON, x402 v2). Sign accepts[0] — scheme exact, USDC, Base — with an x402 client such as @x402/core + @x402/evm. One real payment, from the 402 to the receipt, is walked through in how the x402 protocol works.
curl -i https://api.aiskills402.com/v1/skills/humanize/fileRepeat the request with the signature. The answer is 200 JSON with file.content, sha256, receipt (with the transaction hash) and redownload (token and URL). The token is shown once — store it.
curl https://api.aiskills402.com/v1/skills/humanize/file \
-H "PAYMENT-SIGNATURE: <base64 signed payment>"The price is a few cents, under the default $1 per-payment cap of @x402/core clients. While the till is closed the 402 body carries selling: false and a “do not sign” notice — do not sign then.
Signing is the step where an agent can lose money, so it should compare the payee, the asset and the amount with what it expected. The x402-buyer skill is a tested file for that decision, and the guide on what to check before signing explains why each check is there.
Re-download, free, any time:
curl https://api.aiskills402.com/v1/purchases/<token>Install the file as ~/.claude/skills/<slug>/SKILL.md or, per project, .claude/skills/<slug>/SKILL.md. The x402 client is documented at x402.org.
Option C
Pay-per-call APIs (no model)
A few skills are also sold as small deterministic services: you send an input, you get the result, and no language model runs. The price is per call and is shown in the list (GET https://api.aiskills402.com/v1/run, free). This is a different purchase from the file; the SKILL.md file is still sold separately, once, for people who want the rules themselves.
POSTthe JSON input tohttps://api.aiskills402.com/v1/run/<slug>with no payment header. The answer is 402 with aPAYMENT-REQUIREDheader.- Sign
accepts[0](schemeexact, USDC, Base) with an x402 client. - Repeat the POST with the signature in
PAYMENT-SIGNATUREand the same body. - The answer is 200 with the result, or with a refusal.
- The same header with the same body within 60 s returns the same result free. The same header with another body is 402. Later than that it is 409
already_paid.
One payment buys one call on one input. If the input cannot be handled, the answer is a refusal that starts with "CANNOT …" and says why; that refusal is a result, and it is paid like any other. Do not retry a refusal hoping for a different answer: the input is the problem, not the service.
Every service has a free example with its input schema: GET https://api.aiskills402.com/v1/run/<slug>/example, for instance https://api.aiskills402.com/v1/run/mojibake-repair/example.
Three of the services diagnose x402 itself: a seller's offer, a signed payment header and a receipt on Base. The offer check asks the seller's server from our side; what that bot sends and how to block it is on the page of the aiskills402-check bot.
A fourth service reads a public web page for an AI agent and returns it as Markdown, and you pay only when the text is returned. It obeys robots.txt and runs under its own name; what the bot sends and how to block it is on the page of the aiskills402-read bot.
The money
What you are charged, and when
The price is fixed, shown on the skill card and in the 402 before you sign. You pay once, in USDC on Base mainnet, and the file is yours. Notes on paying and getting paid over HTTP 402 are collected under agent payments.
| Skill | Size | Price |
|---|---|---|
| humanize | 8.4 KB | $0.05 |
| x402-buyer | 9.4 KB | $0.05 |
| x402-seller | 14.0 KB | $0.10 |
| cold-email | 6.0 KB | $0.03 |
| seo-meta | 5.1 KB | $0.03 |
| bill-spike-finder | 15.9 KB | $0.05 |
| cors-config-review | 6.2 KB | $0.01 |
| iam-policy-review | 6.2 KB | $0.01 |
| dockerfile-review | 6.1 KB | $0.01 |
| git-worktree-parallel-agents | 6.4 KB | $0.01 |
| codetour-file | 5.2 KB | $0.01 |
| html-email-compat-review | 7.4 KB | $0.01 |
| stripe-webhook-review | 8.0 KB | $0.01 |
| platform-text-limits | 7.3 KB | $0.01 |
| ga4-tracking-plan-limits | 9.1 KB | $0.01 |
| prompt-caching-review | 8.8 KB | $0.01 |
| runbook-step-check | 7.1 KB | $0.01 |
| ab-test-readout-check | 9.1 KB | $0.01 |
| github-actions-security-review | 8.3 KB | $0.01 |
| internal-link-orphan-audit | 10.8 KB | $0.03 |
| agent-loop-review | 11.8 KB | $0.01 |
| api-breaking-change-check | 10.7 KB | $0.03 |
| cloudflare-google-index-doctor | 23.6 KB | $0.05 |
| social-api-reality-2026 | 8.6 KB | $0.05 |
| Outcome | You are charged |
|---|---|
| Success | the price, once |
| Facilitator refuses | nothing |
| Settlement outcome unknown | you still receive the file; we reconcile by hand |
When it says no
Errors your agent will meet
A payment can also fail on a single character: the note on the “paymentPayload is invalid” error shows how one dash broke it. For the places a payment breaks without a clear message, see the three checks on an HTTP 402 payment.
| Code | What to do |
|---|---|
| skill_not_found | Check the slug against /v1/skills. |
| payment_in_progress | The same payment is already being settled. Wait a moment and retry with the same signature. |
| facilitator_unavailable | The payment service is down. Nothing was charged. Retry later. |
| head_cannot_settle | A HEAD request cannot pay. Use GET. |
| not_selling | The till is closed (503). Do not sign. Nothing was charged. reason paused_by_operator means the operator paused the till (Retry-After 3600): GET /health shows payment.paused. |
| already_paid | 409: this authorization was already settled. Do not sign again, or you pay twice. A replayed header returns the file only within 60 s of purchase and only when signed by the paying wallet; otherwise the reply carries the receipt, not the file. Use the redownload token from your first response. |
| rate_limited | 429. Wait retry_after_seconds and resend the identical header. With reason lane_hourly_ceiling it is our own hourly ceiling on fresh attempts toward the payment service: Retry-After is the number of seconds until the top of the next UTC hour. Nothing was charged and the nonce is not spent; re-sign only if the header has expired. |
| execution_retired | 410 on the retired run endpoint. We sell the file now; use /v1/skills/{slug}/file. |
What is inside the file
The safety gate
A skill file is text that your agent reads as instructions, so the risk is not code but hidden instructions. Before a file can be listed, an automatic gate reads every line of it. One hit and the file is not published. The gate rejects:
- Code. Fenced code blocks (
```or~~~) and shell commands such ascurl,wget,bash,npm,pip,node,python,evalor PowerShell. - Links to other sites. The only allowed host is aiskills402.com and its subdomains. The host is read from the parsed address, so tricks such as
aiskills402.com@other.exampledo not pass. - Invisible text. Zero-width and direction-changing characters, variation selectors and the “tag” characters used to smuggle text that a person cannot see but a model can read.
- Hidden payloads. Base64 blobs of 64 or more characters and HTML tags.
- Exfiltration and override phrasing. Sentences of the form “send … to …” (send, upload, post, email, forward, transmit) and “ignore previous instructions”.
- A wrong or missing header. The file must start with a frontmatter carrying a name, a description and a license, and its License section must be the standard one, byte for byte.
Every file is also tied to a SHA-256 shown on its card. The file is checked against that hash each time it is delivered, and not sent if it does not match.
The gate is a mechanical filter, not a proof that a skill is harmless or correct. That is why the file is plain text you can read before you install it, and why every skill also has a published test.
If you wrote a skill yourself, we can test your skill file the same way and send you the report.
Your data
What we keep
For a purchase: the payer wallet, the transaction hash, the amount and a hash of your download token. Nothing else you send with a purchase is stored. We also keep short notes on failed payment attempts and a daily count of searches and free MCP tool calls, with the query, the result count and the name of the software that asked (no IP, no wallet). The full list, with retention periods, is in the privacy notice.
Terms
License
Perpetual and non-exclusive. You may use and modify the skill file for yourself, including in paid work. You may not resell it or republish it. Holder: Georgi Kalchev, aiskills402.com.
The receiving wallet is 0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4.
Honestly
What this does not promise
Every skill is tested by us with a strong and a weak model, and its card says where the weak one fails. A skill is instructions, not a guarantee: a weak model can still get it wrong, and the card tells you how. The cases behind this are written up in our notes on testing models honestly.