Integrations
Put preCrime beside a token.
A launchpad, a trading terminal or a bot can show what preCrime has on a token — the open cases, the stake on each side, how each decided case went — and send people to take a side. Both ways in are public, need no key and change nothing.
The widget
One iframe per token, for a sidebar. It lists up to three open cases with the odds the stakes imply and when staking closes, and every link opens preCrime in a new tab. Any HTTPS page may frame it. It runs no script of yours, sets no cookie and has no button that signs anything.
The feed
JSON, callable from a server or straight from a browser on any site. Cached for fifteen seconds. Anonymous callers get the anonymous rate limit; an API key from the Access page raises it.
GET https://api.precrime.bot/v1/feed/token/{address}
Every published case on a token, open ones first.
GET https://api.precrime.bot/v1/feed/cases?since={ISO time}
Every case that changed after a moment, oldest first. Each page ends with a cursor; ask with it next time.
Add lightning=true to either for lightning rounds only, or lightning=false for none of them. Every case carries lightning: the server’s reading of its pool’s own times when it was published: staking and counting each at most 30 minutes, a challenge window of at most an hour, and the deadline under a day after counting stops that only a lightning draft may take.
{
"token": "0x…",
"chainId": 4663,
"summary": { "open": 2, "decided": 5, "guiltyVerdicts": 3 },
"cases": [
{
"id": "…",
"title": "Does the deployer sell half within 24 hours?",
"caseTypeLabel": "Dev dump",
"open": true,
"lightning": false,
"stakeAsset": { "symbol": "USDG", "decimals": 6 },
"pool": { "guilty": "1250", "innocent": "400", "guiltyImpliedBps": 7575 },
"stakeCutoffAt": "…",
"verdict": null,
"url": "https://precrime.bot/c/…"
}
],
"links": { "widget": "https://precrime.bot/embed/token/0x…", "openACase": "https://precrime.bot/cases/open?tokenAddress=0x…" }
}The whole API is described at /v1/openapi.json.