Agent quickstart
For agents
Check a token before your agent swaps into it. One HTTP call to the live endpoint: no key, no account, free in beta.
what: Launch risk for a Solana token, read live from mainnet: top holders, wallets linked by direct transfers, mint and freeze authority, a verdict.
call: GET https://www.assayonsol.io/api/launch-risk?mint=<mint> · JSON · no key · free in beta
docs: https://www.assayonsol.io/docs.html · skill https://www.assayonsol.io/agents/SKILL.md · index https://www.assayonsol.io/llms.txt
Call it today
Use the HTTP API today (curl / fetch); the MCP server and skill package ship when the API leaves beta.
-
curl
Live
curl -s "https://www.assayonsol.io/api/ launch-risk?mint=<mint>" No key, no headers. Every field of the answer is in the API reference.
-
fetch
Live
await (await fetch(`https://www.assayonsol.io/api/ launch-risk?mint=${mint}`)).json() Node 18+, Deno, Bun or a browser: CORS is open.
-
Any agent
SKILL.md
https://www.assayonsol.io/agents/ SKILL.md Point your agent at the skill file: when to call, what comes back, the rules. Read SKILL.md.
-
MCP server
Planned
Not published yet. The MCP card lists the planned tools and the HTTP endpoint to use until then.
What comes back
JSON, in a few seconds, read from mainnet when you call. The fields an agent acts on:
| Field | Use it to |
|---|---|
| verdict | Decide: high is a stop, medium is a question for the user, low goes ahead. null means no verdict: read note or summary. |
| summary, flags | Tell the user why, in plain words. |
| linked_share, linked_wallets, linked_source | See how much of the top holders’ tokens sits with one group linked by direct transfers, and who sent them. |
| freeze_authority, mint_authority | Warn before buying a token the issuer can freeze or inflate. |
| coverage | Know what was read. When complete is false, the linked share is a lower bound. |
Planned prices per call
Beta: calls are free; the x402 flow is the planned paid tier and is not enforced.
Use case
Check a token before your agent swaps into it. Treat verdict: "high" as a stop unless the user overrides it.
- assay.launch_risk · live over HTTP GET /api/launch-risk?mint= 0.05 USDCper call, planned · free in beta
- assay.list · planned POST /api/assays 0.30 USDCper wallet, planned
- assay.appeal_status · planned GET /api/appeals/{id} Freeplanned
Planned: pay with x402
Beta: calls are free; the x402 flow is the planned paid tier and is not enforced. When it is, one request gets one price and one receipt:
-
Ask
Call the endpoint with no key. A paid call will answer
402 Payment Requiredwith the terms in thePAYMENT-REQUIREDheader. -
Pay
Sign a USDC transfer on Solana for exactly
amounttopayTo: base units with 6 decimals, so50000is 0.05 USDC. Theexactscheme means the price can’t change between the quote and the payment. -
Resend
Send the same request again with the signed transfer, base64-encoded, in
X-PAYMENT. -
Get the answer and the receipt
A facilitator settles the transfer. The answer comes back with
X-PAYMENT-RESPONSEcarrying the transaction signature: your receipt.
Rules for the agent
The same rules ship in SKILL.md.
- Stop on high.Treat
verdict: "high"as a hard stop for buys unless the user explicitly overrides. - Read the flags.An active freeze authority means the issuer can freeze the user’s tokens after the buy. Say so before you swap.
- Cite, don’t accuse.Linked wallets show transfers, not owners. Never present them as proof against a person; link
explorerinstead. - Mind the coverage.When
coverage.completeis false, the linked share is a lower bound. - Cache for 5 minutes.The API caches each mint for 5 minutes;
checked_atsays when mainnet was read. On429, wait forRetry-After.
Machine-readable files
Static files at the root of the site. Point your agent at any of them.