Is the token safe to trade, and can its liquidity be pulled?
Tax is measured from real trades (what the pool sent versus what the wallet received, which also catches Uniswap v4 hook taxes), backed by simulation of a real buy → transfer → sell sequence at the head block, and static checks of the contract. A fresh simulation on demand (fresh=1) costs 20 credits and needs the Starter plan or higher.
| Endpoint | Method | Plan | Credits |
|---|---|---|---|
| Security checks | GET /v1/{chain}/token/{address}/security |
Anonymous | 1 |
| Liquidity & locks | GET /v1/{chain}/token/{address}/liquidity |
Free | 5 |
Security checks
Section titled “Security checks”GET /v1/{chain}/token/{address}/security
Plan: Anonymous and above (no key needed) · Cost: 1 credit per call
Contract checks (ownership, mint, pause, blacklist, proxy, limits), realized and simulated buy/sell tax, honeypot verdict and, for v4 tokens, the pool hook’s permissions and risk. amount_usd sets the simulated trade size (default 100).
Realized tax (30 d), eth_simulateV1 buy → transfer → sell for V2-routed tokens, owner / proxy / capabilities / limits, hook risk, LP status, flags, score.
Parameters
Section titled “Parameters”| Name | In | Type | Default | Description |
|---|---|---|---|---|
chain |
path, required | string | Chain slug (robinhood) or chain id (4663). |
|
address |
path, required | string | Contract or wallet address, any case (0x…, 20 bytes). |
|
amount_usd |
query | number | 100 |
Simulated trade size in USD. |
fresh |
query | integer | 1 runs a new simulation now (Starter plan and up, 20 credits). |
Request
Section titled “Request”curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/security" \ -H "x-api-key: $CRIUS_API_KEY"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/security", { headers: { "x-api-key": process.env.CRIUS_API_KEY },});const { data, meta } = await res.json();import os, requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/security", headers={"x-api-key": os.environ["CRIUS_API_KEY"]},)body = r.json()print(body["data"])Key response fields
Section titled “Key response fields”risk(low/medium/high) andscore(0–100), plusflagshoneypot.is_honeypot,honeypot.selective(only some wallets can sell),honeypot.reasontax.buy_pct,tax.sell_pctand theirsource;tax.realized(from real trades, with sample counts and the highest sell tax seen) andtax.simulatedtax_history: every tax change with the block it took effectcontract: ownership, mintable, pausable, blacklist, proxy / upgradeable, can change tax or limitshook: the v4 pool hook’s name, permissions, capabilities and riskliquidity.summary: locked, burned and unlocked shares of LP
Example response
Section titled “Example response”Real response captured from the API (arrays trimmed to three items).
{ "data": { "contract": { "blacklist": false, "can_change_limits": false, "can_change_tax": false, "cooldown": false, "implementation": null, "is_proxy": false, "mintable": false, "owner": null, "ownership": "none", "pausable": false, "proxy_kind": null, "self_destruct": false, "trading_switch": false, "upgradeable": false, "verified": null }, "flags": [ "unverified" ], "honeypot": { "is_honeypot": false, "reason": null, "selective": false }, "hook": { "address": "0xe5e702641ea86f4ae6cc3cdaed2b886f976be044", "capabilities": { "can_block_swaps": false, "can_gate_liquidity": false, "can_modify_liquidity_amounts": false, "can_modify_swap_amounts": true }, "name": "PonsV2MemeHook", "permissions": [ "beforeInitialize", "afterSwap", "afterSwapReturnDelta" ], "risk": [ "can_modify_swap_amounts" ] }, "known_asset": false, "limits": {}, "liquidity": { "status": "partially_locked", "summary": { "burned_pct": 0, "locked_pct": 99.8934, "next_unlock_ts": null, "protocol_fee_pct": 0, "unlocked_in_wallets_pct": 0.106605, "weighting": "by pool liquidity_usd" } }, "primary_dex": "uniswap_v4", "risk": "low", "score": 95, "tax": { "buy_pct": 2.99, "confidence": "high", "realized": { "buy_pct": 2.99, "by_wallet_class": { "dev_sell_pct": null, "others_sell_pct": 0 }, "last_sample_ts": 1792705534000, "max_sell_pct_seen": 96.64, "samples": { "buys": 2529, "sells": 1840 }, "sell_pct": 0, "window": "30d" }, "sell_pct": 0, "simulated": null, "source": "realized", "transfer_pct": null }, "tax_history": [ { "from_block": 88385895, "pct": 0, "side": "buy" }, { "from_block": 88387118, "pct": 0, "side": "sell" }, { "from_block": 88461329, "pct": 3, "side": "buy" } ], "tax_history_total": 29, "tax_mode": "dynamic", "token": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8" }, "meta": { "block": 95504416, "block_age_ms": 890, "block_ts": 1792712997000, "chain": "robinhood", "finalized_block": 95493649, "lag_ms": 24, "safe_block": 95497061, "simulation": "no V2 WETH pair: realized tax only" }}Liquidity & locks
Section titled “Liquidity & locks”GET /v1/{chain}/token/{address}/liquidity
Plan: Free and above · Cost: 5 credits per call
Who owns the token’s liquidity, per pool: burned, locked (which locker, until when, who can withdraw) or held by wallets. After an unlock the LP keeps being followed: withdrawn → to whom → removed or still held. Supported lockers include the Pons launch locker, UNCX v2/v3/v4, Team Finance, TitanLocker and HoodLock.
V2 LP-token holders, V3/V4 position NFT owners, decoded locker events (UNCX, Team Finance, Titan, HoodLock, Pons).
Parameters
Section titled “Parameters”| Name | In | Type | Default | Description |
|---|---|---|---|---|
chain |
path, required | string | Chain slug (robinhood) or chain id (4663). |
|
address |
path, required | string | Contract or wallet address, any case (0x…, 20 bytes). |
Request
Section titled “Request”curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/liquidity" \ -H "x-api-key: $CRIUS_API_KEY"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/liquidity", { headers: { "x-api-key": process.env.CRIUS_API_KEY },});const { data, meta } = await res.json();import os, requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/liquidity", headers={"x-api-key": os.environ["CRIUS_API_KEY"]},)body = r.json()print(body["data"])