One API for every execution on Robinhood Chain.
The console is a client of this API — anything you can do in the interface is available programmatically, with the same resources and the same guarantees.
Overview
Designed to be driven by machines.
The console is a client of this API — every figure it shows comes back from one of these routes, with the source attached.
Plain HTTP and JSON
No SDK to install and no client to keep in sync — every route is a documented GET or POST that curl can drive.
Evidence carries its source
Each fact returns with the endpoint it came from, so any figure in a response can be checked against the chain.
Absence is reported, not filled
When a source has nothing to say the response says so. No field is ever populated with a plausible substitute.
Authentication
There isn't any yet.
The service runs locally and accepts every request unauthenticated. Accounts, keys, and tenancy are not built, so nothing here asks you for a token it would only ignore.
# Create a key. It is returned once and stored only as a hash.
curl -X POST http://127.0.0.1:8000/api/v1/keys \
-H "Content-Type: application/json" \
-d '{ "label": "my laptop" }'
# Analyses require it, and are metered against a daily allowance.
curl "http://127.0.0.1:8000/api/v1/token/0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34" \
-H "Authorization: Bearer mk_..."
# Check what is left.
curl http://127.0.0.1:8000/api/v1/keys/me -H "Authorization: Bearer mk_..."Endpoints
The resource surface
Every path below is transcribed from the running service's OpenAPI document. Analysis routes run the pipeline; the rest read chain data or describe the platform.
- POST
/api/v1/tasksSubmit one task. Routes it through the providers this deployment has and returns a structured report, including the steps that did not run and why.
- GET
/api/v1/tasks/{task_id}Retrieve a finished report. Held for 24 hours.
- POST
/api/v1/executeSubmit a free-form request. The router infers the target from the text.
- GET
/api/v1/token/{address}Analyze a token: metadata, holders, price, and risk.
- GET
/api/v1/wallet/{address}Analyze a wallet's holdings and activity.
- GET
/api/v1/contract/{address}Analyze a contract's verification state and source.
- GET
/api/v1/projectA network-level overview of Robinhood Chain.
- GET
/api/v1/siteOff-chain intelligence for a domain: published policies, DNS and mail posture, registration, and archive history.
- GET
/api/v1/streamThe same analysis as server-sent events: stage progress, then the full evidence, then the summary token by token.
- GET
/api/v1/chain/statsLive chain statistics.
- GET
/api/v1/chain/tokensTokens tracked on the chain, with live prices. Pass `q` to search by ticker.
- GET
/api/v1/executionsList recent executions, newest first.
- GET
/api/v1/executions/{execution_id}Retrieve one execution with its pipeline stages.
- GET
/api/v1/executions/{execution_id}/resultThe stored result in full — what a shared link renders, rather than a fresh run against a chain that has moved.
- GET
/api/v1/agentsList the registered agents.
- GET
/api/v1/agents/{agent_id}Retrieve one agent's capabilities.
- GET
/api/v1/watchesYour watchlist. Each entry is re-analysed on a schedule and reports what changed.
- POST
/api/v1/watchesWatch a subject. Every check spends one unit of the key's daily analysis quota.
- POST
/api/v1/keysCreate an API key. Returned once and stored only as a hash — analyses require one.
- GET
/api/v1/keys/meQuota and usage for the key in use, and when the allowance resets.
- GET
/api/v1/pipelinesList the pipelines.
- GET
/api/v1/statusComponent readiness and the live state of every upstream service.
- GET
/healthLiveness probe.
- GET
/versionBuild and environment information.
Usage
Read a response.
There is no published client package. A response carries evidence, the sources behind it, and a summary that declares whether a model produced it.
// No SDK package is published. The API is plain HTTP and JSON.
const response = await fetch(
"http://127.0.0.1:8000/api/v1/token/0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34",
);
const execution = await response.json();
// Evidence is service-derived and each item carries its source.
for (const item of execution.evidence) {
console.log(item.label, item.value, item.source);
}
// The summary is model-generated, and says so when no key is configured.
console.log(execution.summary_status, execution.summary);Status
What is live today.
The engine, the chain and market data, and the AI summaries all run. What is not built is listed as planned rather than left off.
- Operational
Console
Application shell and routing.
- Operational
Documentation
Public reference surface.
- Operational
Execution API
Nine agents registered, six implemented; live chain, market, and web data.
- Operational
AI summaries
Streamed from Claude Sonnet 5 over collected evidence.
- Operational
Persistence
Executions are stored, addressable by URL, and compared run to run.
- Operational
Authentication
API keys with a daily analysis quota. History is scoped to the key that ran it.
- Operational
Monitoring
Watched subjects are re-analysed on a schedule and the differences reported. Off unless MONITOR_ENABLED is set.
- Planned
Alert delivery
An alarming change is written to the log and shown in the console. Nothing emails or messages you yet.