Whitepaper

Structural risk intelligence for Robinhood Chain

Apiro: a pre-trade filter API for trading bots and AI agents.

11 sectionsAbout 14 min read

Abstract

Robinhood Chain processes millions of transactions a day, and a large share of the tokens launched on it are engineered to take money from automated buyers. The raw market data that bots consume — price, volume, liquidity — describes these tokens and legitimate ones in the same vocabulary, and frequently makes the dangerous ones look more attractive, because manufactured volume reads as demand.

Apiro is an API that sits between market data and your execution logic. It answers a single question in the milliseconds before you commit capital: is this token structurally a trap? It does not predict price. It identifies the specific, measurable conditions under which a token cannot be exited — thin pools, manufactured volume, activity that has silently stopped — and returns a score, a verdict, and itemized reasoning that both rule-based bots and reasoning agents can act on.

This document explains the problem, the methodology, the signal design, the API surface, and how to integrate it into an existing bot or an MCP-connected trading agent.

1. The problem: raw data describes traps and healthy tokens identically

A bot evaluating a new token on Robinhood Chain typically has access to the same fields everyone else does: current price, 24-hour volume, pooled liquidity, market capitalisation, transaction counts. These come from public indexers and they are accurate. They are also, on their own, close to useless for distinguishing a viable trade from a designed loss.

Consider two tokens observed on Robinhood Chain on the same day.

FieldToken AToken B
24h volume$3,157,360$662,519
24h transactions7,6584,821
Price change (24h)−7.96%+7.30%

On the fields a typical bot reads, Token B looks like the better opportunity: strong volume, thousands of participants, and price moving up while Token A drifts down. A momentum filter would favour B. A volume-threshold filter would pass B. A “don’t buy the dip” heuristic would prefer B.

Token A is CASHCAT, a token with $9.6M of pooled liquidity that has traded for months. Token B is ROBINTWINE, which at that moment had $5,622 of total liquidity and a market capitalisation of $2,817.

That last pair of numbers is what the standard fields do not surface. Token B’s $662,519 of daily volume was running against a pool of $5,622 — a turnover of 117.8× — and against a total market capitalisation of $2,817, meaning the reported volume was 235× the value of every token in existence. Every coin would have had to change hands two hundred and thirty-five times in one day to produce that figure honestly.

It did not. Seventeen hours later, ROBINTWINE recorded zero transactions in an hour, against 4,819 in the preceding day. Its six-hour and twenty-four-hour figures had become byte-identical: every trade it ever had arrived in a single burst, and then the activity stopped completely. The price never crashed — it is still nominally up. There is simply no longer a bid. Anyone holding it owns a position they cannot sell at any size.

This is not an exotic failure mode. It is the dominant one, and the raw data actively camouflages it.

2. Why more data is not the answer

The instinct is to buy a better data feed. That instinct is wrong, for a structural reason.

Robinhood Chain is an Arbitrum Orbit EVM chain. Within weeks of its July 2026 launch, every major indexing provider had it covered. Raw trade, token, and liquidity data for this chain is a commodity, available at commodity prices from multiple vendors with real SLAs. No new entrant is going to out-index them, and buying from them gets you the same fields that were insufficient in section 1.

The second instinct is to buy a signal feed — alerts when a whale buys, notifications when a token launches. This is worse, and the reason is worth stating precisely, because it governs Apiro’s entire design.

Directional signals decay in proportion to their adoption. If a feed tells a thousand subscribers that a whale just bought a token, those thousand subscribers race each other into the same position. The information advantage is consumed by the race. Documented copy-trading outcomes show the pattern clearly: the originating trader captures a move while followers reacting to the same signal capture a fraction of it, the gap being pure execution lag. The more successful such a product becomes, the less value it delivers per subscriber — and it adds slippage to the very trades it recommends. You cannot build a durable product on an edge that your own distribution destroys.

Structural signals do not behave this way. If Apiro tells a thousand subscribers that a pool holds $5,622 against $662,519 of claimed volume, that fact is equally true and equally actionable for the thousandth subscriber as the first. Nobody’s avoidance of a trap makes the trap less of a trap. There is no race, because the output is not “buy this before others do” — it is “this specific token cannot be exited.” That property is what makes the product worth paying for indefinitely rather than for the few weeks before the edge is arbitraged away.

Apiro therefore consumes commodity data and sells judgement. It is deliberately positioned one layer above the indexers rather than competing with them.

3. Methodology: ten structural signals

Each signal below is computed from public DEX pool state. None requires privileged access, a latency advantage, or a co-located node. Each is scored on a severity band and contributes a weighted penalty to a score that starts at 100 and descends.

3.1 Liquidity depth thin_liquidity

Absolute pooled liquidity in USD, aggregated across every pool for the token. This is the single most common precondition for an unexitable position: below roughly $50,000, any position of meaningful size moves the price materially against you on the way out, regardless of what the token does. Below $10,000, exit is effectively theoretical.

3.2 Turnover ratio extreme_turnover

24-hour volume divided by pooled liquidity. A healthy, actively traded token recycles its pool depth somewhere under three times a day. Observed values on Robinhood Chain’s established tokens: CASHCAT 0.7×, PONS 0.3×.

Values above 20× are not achievable by organic trading — a pool cannot honestly recycle its entire depth twenty times in a day. Observed values on the tokens that subsequently failed: 45.7×, 94.8×, 117.8×. This is the highest-signal single metric in the system, and it is invisible unless you deliberately compute the ratio.

3.3 Volume against market capitalisation volume_exceeds_mcap

24-hour volume divided by total market capitalisation. Where turnover catches manufactured volume relative to the pool, this catches it relative to the asset itself. A ratio above 10× means every token in existence would need to trade ten times over in a day. Observed: 160.2× and 235.2× on failed tokens.

3.4 Pool age newly_launched

Hours since the earliest pool was created. A token hours old has no track record and the deployer retains every option, including withdrawing liquidity entirely. This is not a claim that new tokens are scams; it is a statement that new tokens carry an irreducible unknown that older ones have partially resolved.

3.5 Price collapse price_collapse

24-hour price change. A drawdown beyond 50% on a token days old is usually not a dip — it is the event itself, in progress.

3.6 Sell pressure sell_pressure

Sells as a proportion of total transactions. Sustained imbalance beyond 70% indicates distribution rather than accumulation.

3.7 Micro-trade signature micro_trade_signature

Average trade size against transaction count. Automated volume generation produces a characteristic fingerprint: very high transaction counts at near-uniform, very small sizes. Human demand does not distribute this way. A token showing thousands of transactions at an average size under $20 is describing a machine, not a market.

3.8 Cross-pool price dispersion price_dispersion

Spread between the highest and lowest price across the token’s pools. In a liquid market, arbitrage closes this gap within blocks. A persistent spread means the pools are too thin or too fragmented for arbitrage to be worth executing — which tells you your own trade will be priced just as badly.

3.9 Activity cessation activity_cessation

Transactions in the last hour against transactions in the last 24 hours. This signal exists because live testing exposed a state the other nine could not see.

A token can display six figures of 24-hour volume and thousands of transactions while having had zero trades in the last hour. Read through 24-hour aggregates alone, it looks liquid. In reality the manufactured volume has switched off and there is no bid at all. The signal fires severe when hourly activity reaches zero on a token with meaningful daily flow, high when it collapses below 0.5% of daily flow, and moderate when all of a day’s volume proves to have landed inside a single six-hour window with nothing since.

This is the difference between a bot that reports a healthy market and a bot that tells you the market has quietly ended.

3.10 Liquidity concentration liquidity_concentration

Share of total liquidity held in a single pool. Concentration is a single point of failure: one withdrawal removes the entire market.

4. Worked example

A live request against ROBINTWINE, abbreviated:

GET /v1/tokens/0xC711…470F/risk
{
  "address": "0xC7110dd6343fb126865DB673284D5B67F247470F",
  "symbol": "ROBINTWINE",
  "score": 0.0,
  "verdict": "critical",
  "flags": [
    {
      "name": "extreme_turnover",
      "severity": "severe",
      "value": 117.84,
      "detail": "24h volume is 117.8x pooled liquidity. A pool cannot organically recycle its entire depth this many times in a day; this pattern is consistent with wash trading or a small set of wallets cycling the same inventory."
    },
    {
      "name": "volume_exceeds_mcap",
      "severity": "severe",
      "value": 235.19,
      "detail": "24h volume is 235.2x the token's entire market cap ($662.5k traded against a $2.8k cap). Every coin in existence would have to change hands several times over to produce this honestly."
    },
    {
      "name": "activity_cessation",
      "severity": "severe",
      "value": 0,
      "detail": "Zero trades in the last hour against 4,819 over 24h. Activity has stopped dead. Volume that switches off this abruptly was being generated, not demanded -- and with it off there is no bid to exit into at any size."
    }
  ],
  "metrics": {
    "raw_penalty": 158.0,
    "total_liquidity_usd": 5622.15,
    "volume_h24_usd": 662519.47,
    "market_cap_usd": 2817.0,
    "turnover_ratio": 117.84,
    "volume_to_mcap_ratio": 235.19,
    "pool_age_hours": 16.8,
    "txns_h24": 4821,
    "txns_h1": 0,
    "avg_trade_size_usd": 137.42
  },
  "caveats": [
    "Wash-trading signals are statistical proxies, not proof of intent.",
    "Structural risk only: this score does not predict price direction.",
    "Derived from public DEX pool state; it cannot see contract-level traps."
  ]
}

Note raw_penalty. The score clamps at zero, but the uncapped penalty preserves ordering past the clamp — two tokens can both score 0 while one is substantially worse than the other. Bots that want granular ranking below the critical threshold should sort on this field.

Note also the caveats array, returned on every response. Apiro states the limits of its own output in-band, so that an agent reasoning over the result weighs it correctly rather than over-trusting it.

5. Design principles

Structural, not directional. Apiro will never tell you what to buy. A bad score is a reason to skip or size down; it is explicitly not a short signal, and the API says so in every response. Tokens scored critical sometimes recover — the claim is about exit risk, not price path.

Slow signals, deliberately. Because the signals are structural, being a few seconds behind costs nothing. Apiro therefore does not compete on latency, recomputes on a cadence of minutes rather than milliseconds, and stays out of the infrastructure arms race entirely. This keeps operating costs low and passes through as pricing.

Explanations, not just numbers. Every flag carries the value that triggered it and a plain-language explanation of why it matters. A rule-based bot ignores the prose and thresholds on the number. A reasoning agent uses the prose to weigh the finding against a user’s stated risk tolerance. Both are first-class consumers.

Honest about proxies. Manufactured-volume signals are statistical patterns, not proof of intent. Apiro labels them as “consistent with” rather than asserting fraud. This matters for accuracy and it matters for your liability.

6. API

Base URL: https://api.apiro.io/v1 (indicative)

GET /v1/tokens/{address}/risk

Full structural risk report: score, verdict, itemized flags with reasoning, computed metrics, caveats.

Verdicts: acceptable (≥70) · caution (45–69) · high_risk (25–44) · critical (<25)

GET /v1/tokens/{address}/tradeable?min_score=45

A one-bit gate for bots that want a pre-trade check without parsing a full report.

response.json
{
  "address": "0xC711...",
  "symbol": "ROBINTWINE",
  "tradeable": false,
  "score": 0.0,
  "verdict": "critical",
  "blocking_flags": ["thin_liquidity", "extreme_turnover", "volume_exceeds_mcap"],
  "reason": "Total pooled liquidity is $5.6k..."
}

POST /v1/tokens/risk

Batch scoring, up to 30 addresses per call, for screening candidate sets.

GET /v1/health

Liveness and version.

7. Integration

7.1 Rule-based bots

One call, one branch, placed immediately before order submission:

pre_trade.py
import httpx

def should_trade(address: str, min_score: int = 45) -> bool:
    r = httpx.get(
        f"https://api.apiro.io/v1/tokens/{address}/tradeable",
        params={"min_score": min_score},
        headers={"Authorization": f"Bearer {API_KEY}"},
        timeout=2.0,
    )
    return r.json()["tradeable"]

if should_trade(token_address):
    execute_buy(token_address, size)

Because the underlying signals move slowly, responses are safely cacheable for a minute or more, so this adds negligible latency to a hot path and negligible cost to a high-frequency strategy.

7.2 AI trading agents via MCP

This is where Apiro fits most naturally, and it is worth explaining why.

Robinhood’s Agentic Trading connects third-party AI agents to a dedicated brokerage account through MCP (Model Context Protocol) — a user pastes one configuration URL and the agent is wired up to trade equities, options, and crypto. Apiro ships as an MCP server, which means it drops into that same configuration alongside the trading tools. The agent holds both: the ability to trade, and the ability to check what it is about to trade.

MCP configuration
{
  "mcpServers": {
    "apiro": {
      "url": "https://mcp.apiro.io/sse",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}

Two tools are exposed:

  • assess_token_risk — structural assessment of one token before trading it.
  • screen_tokens — up to 30 candidates, returned ranked safest-first with blocking flags, for choosing between options rather than checking one already picked.

The advantage over a REST integration is not convenience, it is capability. A rule-based bot can only threshold on a number; everything qualitative in the response is wasted on it. An agent reads “the deployer’s pool is sixteen hours old, volume is 235× the entire market cap, and trading stopped an hour ago” and can weigh that against the user’s instructions — perhaps proceeding with a reduced size on a token scored 50, and refusing outright on one scored 20, without a human having hard-coded either threshold. The richer output is the product working as designed.

7.3 Screening pipelines

For strategies that generate candidate sets — new-launch monitors, trending scans — batch scoring filters the set before any deeper analysis runs, removing the majority of candidates at a fraction of the cost of evaluating them individually.

8. Roadmap

Everything in this section describes planned capability, not current features.

Contract-level risk analysis. Planned Pool state cannot see mint authority, transfer blacklists, honeypot logic, or proxy upgradeability. These are the traps that catch traders who correctly avoided the thin-liquidity ones. Integrating contract scanning closes the largest remaining blind spot in the signal set.

Deployer reputation graph. Planned Tracking every token a deployer address has launched, and what happened to each, turns a one-off assessment into a historical judgement: this address has launched fourteen tokens and nine went to zero.

Wallet clustering. Planned Funding-source analysis and circular-trade detection to move manufactured-volume detection from ratio-based proxies to direct graph evidence — identifying the specific wallet sets cycling inventory.

Listing-catalyst intelligence. Planned Robinhood’s addition of a Robinhood Chain token to its retail app functions as a listing event, in the way a major exchange listing does elsewhere. Tracking these events, their price signatures, and the characteristics that precede them is a data product only obtainable by watching Robinhood’s own product behaviour alongside chain state.

Historical scoring API. Planned Point-in-time scores for backtesting, so a strategy can be evaluated against what Apiro would have said at the moment of each historical trade.

Webhooks. Planned Push notification on score threshold crossings and status changes, for portfolio monitoring rather than pre-trade checks.

9. Pricing

Indicative structure, subject to change at launch.

TierIntended forIncludes
FreeEvaluation and low-volume botsRate-limited risk scoring, full flag detail, community support
DeveloperIndividual bot operatorsHigher limits, batch endpoint, MCP access, webhooks Planned
ProfessionalTrading desks, multi-agent operatorsProduction limits, historical scoring Planned, deployer graph Planned, SLA, priority support
EnterprisePlatform integratorsCustom limits, dedicated infrastructure, white-label, direct support channel

Pricing is flat by tier rather than metered per call, because unpredictable per-call billing is hostile to strategies operating on thin margins and discourages exactly the defensive checking the product exists to encourage.

10. Frequently asked questions

Does this predict which tokens will go up?
No, and any product claiming to do so reliably is either mistaken or selling something. Apiro identifies exit risk. A token can score well and still fall; the score describes whether you can get out, not where the price goes.

Why not just check liquidity myself?
You can, and you should. Apiro’s value is the combination — ten signals computed consistently, cross-referenced, updated continuously, delivered in a form your bot or agent consumes in one call. The turnover and volume-to-market-cap ratios in particular are trivial arithmetic that almost nobody actually performs at decision time, which is exactly why manufactured volume works as well as it does.

How is this different from a token scanner?
General EVM scanners focus on contract-level traps — honeypots, mint functions — across many chains. Apiro focuses on market-structure traps specific to Robinhood Chain’s dynamics. The two are complementary, and contract analysis is on the roadmap precisely because the combination is stronger than either alone.

What if the data source is wrong or stale?
The activity_cessation signal exists in part to catch this class of problem: when a feed’s figures stop moving while claiming high volume, that state is surfaced rather than silently passed through as a healthy market.

Can I run it against other chains?
The methodology generalises to any DEX-based chain. Robinhood Chain is the initial focus because it is new enough that the tooling gap is real and specific.

11. Getting started

  1. Request an API key.
  2. Score a token you already have an opinion about — the fastest way to calibrate trust in the output.
  3. Add the tradeable gate to one strategy and compare outcomes against your unfiltered baseline.
  4. For agent-based trading, add the MCP endpoint to your configuration alongside your existing trading tools.

Try it on a real token.

The live report replays ROBINTWINE’s response — flags, metrics and caveats.