CRIUS Docs
API status Get API key
Use cases

Robinhood Chain API for risk and compliance

Screen Robinhood Chain tokens and wallets with the Crius API: security checks, insider launches, funding links, developer history and LP locks.

Updated 3 min read

Risk teams on Robinhood Chain (exchanges and launchpads deciding what to list, wallets deciding what to warn about, trust-and-safety teams and researchers investigating a rug) need the same answers again and again: can this token be sold, who bought its launch, who funded those wallets, what has this developer launched before, and can the liquidity be pulled. The Crius API answers each with one call and returns the evidence (wallets, blocks, shares of supply), so a decision can be explained and checked later.

Endpoints a risk review uses

Suggested architecture

  1. Gate everything cheaply. Run /security (1 credit) on every token you might list or show. Reject critical; send high and anything with launch flags to review.

  2. Review in depth only what passes the gate. A full review costs about 31 credits a token: liquidity (5), bundles (10), bubble map (10), developer profile (5) and the security check (1). Bundles, bubble maps and wallet connections need a Starter key.

  3. Follow the money for the wallets that matter. For the dev and the top snipers, call /wallet/{address}/connections (10 credits) to see who funded them and who else that funder paid.

  4. Keep the evidence. Save each response with its meta.block. For decisions that must not be reversed by a reorg, use data whose block is at or below meta.safe_block.

  5. Re-check on change. Taxes, LP and holder concentration change after launch. Subscribe to tax:<token> and lp:<token> on the stream, or re-run the gate on a schedule.

Who bought the launch

An insider launch: four wallets took 61% of the supply

Rebot (0x192b126efea71ca5e7767bc6fc53038d869fbbba) fell 97% within hours. Who bought its first blocks?

GET/v1/robinhood/token/0x192b126efea71ca5e7767bc6fc53038d869fbbba/bundles
curl "https://api.crius.sh/v1/robinhood/token/0x192b126efea71ca5e7767bc6fc53038d869fbbba/bundles" \
-H "x-api-key: $CRIUS_API_KEY"
Real response 200 Captured Oct 28, 2026 · 99 lines (arrays trimmed)
{
"data": {
"bundle_supply_pct": 1,
"bundle_supply_pct_now": 0,
"bundled": true,
"bundles": [
{
"block": 100238938,
"bought": 10000000.000000000905969664,
"cost_eth": 0.0174316,
"funder": null,
"id": "b_1",
"still_holding_pct": 0,
"supply_pct": 1,
"type": "launch_tx_buy",
"wallets": [
"0xa6aeefb9c26ec96eb5fbde3ade8632ab2a8ac864"
]
}
],
"clusters": [],
"dev": {
"address": "0xa6aeefb9c26ec96eb5fbde3ade8632ab2a8ac864",
"bought_in_launch_tx": true,
"first_buy_pct": 1,
"funded_by": null,
"holding_pct": 0
},
"early_buyers_analyzed": 54,
"insider_launch": true,
"launch": {
"flags": [
"insider_launch"
],
"lp_top_wallet": {
"address": "0x6e8244ba97cbb7d136aafc667e8da302140dbc5b",
"liquidity_usd": 5.70259,
"pct": 0.0996139
},
"sniper_supply_pct": 60.9726,
"sniper_top_wallet_pct": 53.1794,
"sniper_wallets": 4,
"sniper_window_blocks": 10,
"uniform_holders": null,
"wallet_farm": null
},
"snipers": {
"count": 4,
"still_holding_pct": 0,
"supply_pct": 60.9726,
"wallets": [
{
"address": "0xa6aeefb9c26ec96eb5fbde3ade8632ab2a8ac864",
"tags": [
"dev",
"sniper"
]
},
{
"address": "0x0f0bb85fddc70f04344bc7704bb940e387ae7762",
"tags": [
"sniper"
]
},
{
"address": "0x5051e45b2dbecf1b2041af3937bd85fc0dc43cd4",
"tags": [
"sniper"
]
},
{
"address": "0x217be8970fa83b0864ca06d3c18ea6d9ac04e3a5",
"tags": [
"sniper"
]
}
],
"window_blocks": 10
},
"trader_funding": {
"bridge": 18,
"dev_linked": 1,
"other_wallets": 21,
"protocol": 3,
"unknown": 6,
"unlabeled_hub": 5
}
},
"meta": {
"block": 100406882,
"block_age_ms": 1103,
"block_ts": 1793225086000,
"chain": "robinhood",
"finalized_block": 100397649,
"lag_ms": 134,
"safe_block": 100401329,
"scope": "first 300 blocks of trading"
}
}

What this tells you

  • insider_launch: true: snipers.count: 4 wallets bought supply_pct: 60.9726 of the supply in the first 10 blocks (window_blocks: 10), and one of them took 53.1794% (launch.sniper_top_wallet_pct).
  • The first sniper, 0xa6aeefb9c26ec96eb5fbde3ade8632ab2a8ac864, is tagged dev and sniper: the developer bought in its own launch transaction (dev.bought_in_launch_tx: true, bundle type launch_tx_buy, 1% of supply).
  • snipers.still_holding_pct: 0 and dev.holding_pct: 0: every sniper has sold. The supply went to the buyers who came after.
  • trader_funding shows where the early traders’ ETH came from: 18 from a bridge, 21 from other wallets, 5 from unlabeled hubs, 1 linked to the dev.
  • meta.scope: "first 300 blocks of trading": the analysis covers the launch window, early_buyers_analyzed: 54 wallets.

The developer’s record

A creator with one token, graduated and not rugged

What else has CHARGE's creator (0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca) launched, and how did it end?

GET/v1/robinhood/dev/0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca
curl "https://api.crius.sh/v1/robinhood/dev/0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca" \
-H "x-api-key: $CRIUS_API_KEY"
Real response 200 Captured Oct 28, 2026 · 61 lines (arrays trimmed)
{
"data": {
"address": "0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca",
"first_seen_ts": 1792283372000,
"funded_by": {
"address": "0xd782268f600403843484b70710daee6846fc0db8",
"amount_eth": 0.008148386337868892,
"label": "bridge:Relay solver"
},
"summary": {
"best_ath_market_cap_usd": 68675.8,
"by_launchpad": {
"pons": 1
},
"graduated": 1,
"graduation_rate_pct": 100,
"median_ath_market_cap_usd": 68675.8,
"rugged": 0,
"tokens_created": 1
},
"tokens": [
{
"address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
"ath_market_cap_usd": 68675.8,
"ath_scope": "all_time",
"created_block": 88385886,
"created_ts": 1791982834000,
"deployed_via": "launchpad",
"dev_sold_pct": null,
"launchpad": "pons",
"launchpad_name": "Pons",
"liquidity_usd": 5611.81,
"logo": "https://api.crius.sh/v1/robinhood/logo/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8.png?size=128",
"market_cap_usd": 3773.42,
"name": "Charge AI",
"rugged": false,
"status": "graduated",
"symbol": "CHARGE"
}
],
"top_tokens": [
{
"address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
"ath_market_cap_usd": 68675.8,
"logo": "https://api.crius.sh/v1/robinhood/logo/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8.png?size=128",
"symbol": "CHARGE"
}
]
},
"meta": {
"block": 100406874,
"block_age_ms": 1212,
"block_ts": 1793225085000,
"chain": "robinhood",
"finalized_block": 100397649,
"lag_ms": 26,
"next_cursor": null,
"rugged_rule": "market cap < 10% of ATH (ATH > $5k) and liquidity < $500",
"safe_block": 100401329
}
}

What this tells you

  • summary.tokens_created: 1, graduated: 1, rugged: 0: one Pons launch (by_launchpad.pons: 1) that graduated.
  • best_ath_market_cap_usd: 68675.8, while the token’s market_cap_usd is now 3773.42. It isn’t counted as rugged because its liquidity (5611.81) is above the $500 in meta.rugged_rule.
  • funded_by is a Relay solver (label: "bridge:Relay solver", amount_eth: 0.008148386337868892): the creator’s first ETH was bridged in, so there is no earlier wallet to trace.
  • A serial rugger looks different: many tokens, several with rugged: true, and a low graduation_rate_pct.
// Two-stage token review: a cheap gate, then the deep checks (Starter key).
const API = "https://api.crius.sh/v1/robinhood";
const get = (p) => fetch(API + p, { headers: { "x-api-key": process.env.CRIUS_API_KEY } }).then((r) => r.json());
async function review(token) {
const sec = await get(`/token/${token}/security`);
if (sec.data.risk === "critical") return { verdict: "reject", why: sec.data.flags, block: sec.meta.block };
const [bundles, liquidity] = await Promise.all([get(`/token/${token}/bundles`), get(`/token/${token}/liquidity`)]);
const reasons = [];
if (bundles.data.insider_launch) reasons.push(`insider launch: snipers took ${bundles.data.snipers.supply_pct}%`);
if (liquidity.data.summary.unlocked_in_wallets_pct > 50) reasons.push("most LP can be withdrawn");
return { verdict: reasons.length ? "review" : "pass", reasons, block: sec.meta.block };
}

Each check has its own guide: snipers and bundles, developer history, connected wallets, bubble maps and LP locks. The score that ties them together is explained in Token security score.

Frequently asked questions

How does Crius decide a token was rugged?

A developer's token counts as rugged when its market cap is under 10% of its all-time high (and that high was above $5,000) and its liquidity is under $500. The rule is returned with every developer profile as meta.rugged_rule, so your reports can quote it.

Can I show what the data looked like when a decision was made?

Yes. Store meta.block with every decision. Holder snapshots (at=block:…) and bubble maps (block=) can be fetched again for that block later, so a reviewer sees the same holders you did.

Does the Crius API do sanctions or identity screening?

No. It is on-chain analytics: contracts, trades, holders, funding links and launch behaviour on Robinhood Chain. It has no sanctions lists and no identity data; use a dedicated provider for those.

Do exchange and bridge deposits link unrelated wallets?

No. Funding from exchanges, bridges and app relayers (one signer paying the same 100+ wallets again and again) never links wallets into a cluster, and exchange wallets are treated as infrastructure, not holders.

Get your free Crius API key

Every example on this page works with a free key: higher rate limits than the anonymous plan, holders, wallets and the WebSocket stream. No card needed.

  • Robinhood Chain (4663) only, from our own archive nodes
  • REST + WebSocket
  • Pay on-chain or by card