Pre-launch

preCrime’s 28 contracts are deployed on Robinhood Chain and their source is verified. They are not audited. Cases open at launch, so every pool reads as empty until then. Nothing here is broken.

What is live
preCrime
Cases

API

The record, as data.

Cases, verdicts, settlements and the attention index, as JSON. An allowance is per account per UTC day, so a nightly job can be pointed at a fixed instant rather than at a rolling window nobody can predict.

Plans

Explorer

Free

Needs no payment.

Trying the API out.

50 requests a day

Builder

$49

30-day validity

A bot or a small terminal.

3,500 requests a day

or lock 25,000 PRECRIME

Research

$249

90-day validity

Analysis and backtesting.

12,000 requests a day

or lock 100,000 PRECRIME

Not on sale yet. A PRECRIME lock still reaches this tier.

Desk

$1,000

90-day validity

A trading desk or a fund.

120,000 requests a day

or lock 500,000 PRECRIME

Not on sale yet. A PRECRIME lock still reaches this tier.

A plan is the account’s for its validity, and buying it again extends it from where it ends. The allowance belongs to the account and is shared by every key it has minted: a second key adds credentials, never capacity. A PRECRIME lock reaches the same tier and the same allowance, without a payment.

Buy a plan

A quote holds its price for 15 minutes and can be paid only from the wallet this session signed in with.

Authentication

Public endpoints need no credential. Authenticated ones take a bearer API key, which you create from a signed-in session.

Without a key, the public reads are limited per address. Send your key on the case, market, feed and search reads and they are limited at your tier’s rate instead, counted against your daily allowance; once that is spent they fall back to the per-address limit.

curl https://api.precrime.bot/v1/cases

curl https://api.precrime.bot/v1/private/positions \
  -H "Authorization: Bearer pc_…"

A key is shown once at creation and stored only as a hash. A key can never create another key: if it could, a leaked read-only key could escalate itself and revoking the original would not contain it.

Money in responses

Token amounts are decimal strings of integer base units, never JSON numbers.

"grossPoolBaseUnits": "100000000000000000000000"

A JSON number is an IEEE-754 double. One PRECRIME at 18 decimals already exceeds what a double can hold exactly, so a number would silently round someone’s stake in transit. Parse these with a big-integer type.

Endpoints

Reported by the running service, so this list cannot drift from what is actually served.

All 122 endpoints
MethodPath
GET/healthpublic
GET/v1/access/tierspublic
POST/v1/auth/challengepublic
POST/v1/auth/telegrampublic
POST/v1/auth/verifypublic
GET/v1/backerspublic
GET/v1/backstoppublic
GET/v1/backstop/:incidentIdpublic
GET/v1/case-factorypublic
GET/v1/case-templatespublic
GET/v1/casespublic
GET/v1/cases/:idpublic
GET/v1/cases/:id/evidencepublic
GET/v1/cases/:id/recordingpublic
GET/v1/cases/:id/resolutionpublic
GET/v1/cases/:id/stake-checkpublic
GET/v1/context/hyperliquidpublic
GET/v1/endpointspublic
GET/v1/feed/casespublic
GET/v1/feed/token/:addresspublic
GET/v1/grants/bondpublic
GET/v1/jarpublic
GET/v1/jar/releasespublic
GET/v1/launchpublic
GET/v1/launchespublic
GET/v1/leaderboardpublic
GET/v1/market-calendarpublic
GET/v1/marketspublic
GET/v1/markets/featuredpublic
GET/v1/markets/relatedpublic
GET/v1/most-wantedpublic
GET/v1/openapi.jsonpublic
GET/v1/payments/cataloguepublic
GET/v1/points/:addresspublic
GET/v1/points/leaderboardpublic
GET/v1/pricespublic
GET/v1/private/api-keysauthenticated
POST/v1/private/api-keysauthenticated
DELETE/v1/private/api-keys/:idauthenticated
POST/v1/private/auth/logoutauthenticated
GET/v1/private/backers/meauthenticated
POST/v1/private/casesauthenticated
GET/v1/private/cases/:idauthenticated
GET/v1/private/cases/:id/evidenceauthenticated
POST/v1/private/cases/:id/evidenceauthenticated
POST/v1/private/cases/:id/evidence/fileauthenticated
POST/v1/private/cases/:id/publishauthenticated
POST/v1/private/cases/:id/report-verdictauthenticated
GET/v1/private/cases/mineauthenticated
POST/v1/private/cases/previewauthenticated
GET/v1/private/entitlementauthenticated
POST/v1/private/grants/bondauthenticated
POST/v1/private/hyperliquid/precheckauthenticated
GET/v1/private/meauthenticated
GET/v1/private/moderation/cases/:caseIdOPERATOR
POST/v1/private/moderation/cases/:caseId/escalateOPERATOR
POST/v1/private/moderation/cases/:caseId/removeOPERATOR
GET/v1/private/moderation/disputes/:disputeIdOPERATOR
GET/v1/private/moderation/disputes/:disputeId/packetOPERATOR
POST/v1/private/moderation/disputes/:disputeId/resolveOPERATOR
GET/v1/private/moderation/queueOPERATOR
GET/v1/private/moderation/reportsOPERATOR
POST/v1/private/moderation/reports/dismissOPERATOR
GET/v1/private/ops/deploymentOPERATOR
GET/v1/private/ops/eventsOPERATOR
POST/v1/private/ops/eventsOPERATOR
POST/v1/private/ops/events/:id/createdOPERATOR
GET/v1/private/ops/events/:id/fileOPERATOR
POST/v1/private/ops/jobs/replayOPERATOR
GET/v1/private/ops/ordersOPERATOR
POST/v1/private/ops/orders/:id/cancelOPERATOR
GET/v1/private/ops/partnersOPERATOR
POST/v1/private/ops/partners/:id/statusOPERATOR
GET/v1/private/ops/queuesOPERATOR
GET/v1/private/ops/resolverOPERATOR
GET/v1/private/ops/slashesOPERATOR
POST/v1/private/ops/slashesOPERATOR
GET/v1/private/ops/sponsorsOPERATOR
POST/v1/private/ops/sponsors/:id/launch-partnerOPERATOR
POST/v1/private/ops/sponsors/:id/statusOPERATOR
GET/v1/private/ops/starsOPERATOR
POST/v1/private/ops/stars/:chargeId/refundOPERATOR
GET/v1/private/ops/verdictsOPERATOR
GET/v1/private/ordersauthenticated
POST/v1/private/ordersauthenticated
GET/v1/private/orders/:idauthenticated
POST/v1/private/orders/:id/submittedauthenticated
POST/v1/private/partners/applyauthenticated
GET/v1/private/partners/meauthenticated
GET/v1/private/positionsauthenticated
GET/v1/private/profileauthenticated
GET/v1/private/referralsauthenticated
GET/v1/private/referrals/campaignsauthenticated
POST/v1/private/referrals/campaignsauthenticated
POST/v1/private/referrals/campaigns/:code/disableauthenticated
GET/v1/private/referrals/commissionsauthenticated
GET/v1/private/referrals/referrerauthenticated
POST/v1/private/sponsors/applyauthenticated
GET/v1/private/sponsors/meauthenticated
DELETE/v1/private/telegram/linkauthenticated
GET/v1/private/telegram/linkauthenticated
POST/v1/private/telegram/linkauthenticated
POST/v1/private/telegram/link/previewauthenticated
GET/v1/private/watchlistauthenticated
POST/v1/private/watchlistauthenticated
DELETE/v1/private/watchlist/:idauthenticated
GET/v1/private/webhooksauthenticated
POST/v1/private/webhooksauthenticated
DELETE/v1/private/webhooks/:idauthenticated
GET/v1/rankspublic
POST/v1/referrals/:code/visitpublic
GET/v1/revenue/distributionspublic
GET/v1/rewards/:addresspublic
GET/v1/rewards/campaignspublic
GET/v1/rewards/files/:dataHashpublic
POST/v1/rpcpublic
GET/v1/searchpublic
GET/v1/sponsorships/livepublic
GET/v1/stakingpublic
GET/v1/suggestpublic
GET/v1/transparencypublic
POST/v1/wakepublic
Manage keysResponse shapes