Assay · Powered by Nansen API · Nansen Meridian Buildathon, September 2026

What a Nansen signal is worth, before your agent trades it.

Your agent reads Nansen and sees a flow: fresh wallets piled into WETH, the top PnL wallets sold WBTC. Assay hands it every one of those signals with a measured prior attached, from 12,781 calls of the same endpoint scored against a drift-matched control, and a decision at your cost. Then it reads where the Hyperliquid book actually sits: funding, open interest, the smart-money skew against the crowd, and where the longs and shorts liquidate. A CLI, an MCP server and a Claude plugin, with nothing to install.

assay now · —
— signals. — tradeable.

The day's signals, each with the prior the study measured for it

assay now reads yesterday's flow summary for twenty tokens, one call each, and applies the study's own rule to make signals of them: a segment's net flow of $250k or more, the ten strongest per segment, the sign as the direction. Each signal is joined to the 24-hour prior the study measured for that segment (net of a 12 bps round trip, with its standard error and sample) and to a decision: trade, sized on the error; hold, real but eaten by cost; skip, nothing beyond drift; refuse, never measured.

SegmentTokenChainNet flowSide 24h prior net ± SE, bpsnVerdictDecision

assay positioning · Hyperliquid · —

assay positioning reads the venue-wide screener (every market's funding, open interest and the smart-money book), then pulls the largest positions on the markets with the most open interest and maps where they liquidate. Smart money's skew is the venue's full smart-money book; the crowd's is the largest positions pulled, excluding smart money. Divergence is the gap between them: positive means the informed cohort is longer than the crowd. These are measurements with an age, served as such. The tests that would make them a signal are sealed in PREREGISTRATION-HL.md and score after thirty days of six-hourly samples.

MarketFunding / yrOpen interestSmart-money skew Crowd skewDivergenceLongs liq. within 5%Shorts liq. within 5%

The study behind the priors

Segment24 hours48 hours168 hoursLargest sample

Run it · under ten minutes, Node 18+, no dependencies

The command line

# the study's priors need no key
git clone https://github.com/gryps-finance/assay.git
cd assay
node src/cli.mjs leaderboard
node src/cli.mjs prior "Smart Trader" 48

# live, with a key from app.nansen.ai/api
export NANSEN_API_KEY=...
node src/cli.mjs now           # ~100 credits
node src/cli.mjs positioning   # ~65 credits

npm test                       # the whole instrument, no key

From an agent, over MCP

Twelve tools over stdio. The readers need no key; assay_now and hl_refresh pull live and are capped per call.

claude mcp add assay -- node /path/to/assay/src/mcp-server.mjs

Ask the agent "smart money bought AAVE yesterday, should I go long?" and it gets the flow, the prior measured for that segment, and skip, with the reason. Any MCP client works the same way: docs/USAGE.md.

As a Claude plugin

The repository root is the plugin: .claude-plugin/plugin.json, .mcp.json, and a skill that teaches the agent how to read the answers and what a verdict does and does not license.

Every number the tool serves comes with its provenance: the request id of the call, the credits it cost, the hash of the sealed method, and the sample the prior was measured on.