Alpaca Trading API integration for Model Context Protocol (MCP)
Femtos is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Hyperliquid data on HyperCore, HyperEVM, Elysium: balances, prices, trades, token security, bridges
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http femtos-mcp https://api.femtos.xyz/mcp --header 'Authorization: Bearer ${FEMTOS_API_KEY}'
# 2 — ask your agent for something these tools do
# get_status, list_markets, get_candles and 61 more
It needs FEMTOS_API_KEY (Bearer <your Femtos API key>. Free, no browser needed: https://femtos.xyz/agents.md#agent-onboarding): this sends it in the Authorization header from your environment, so export it first — its endpoint answers 401 without it.
Femtos costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it. Claude Code reads FEMTOS_API_KEY (Bearer <your Femtos API key>. Free, no browser needed: https://femtos.xyz/agents.md#agent-onboarding) from your environment each time it connects and sends it in the Authorization header — its endpoint answers 401 without it — so the key stays out of its config: export it in your shell profile (macOS, Linux), or run setx FEMTOS_API_KEY … and open a new terminal (Windows).
claude mcp add --scope user --transport http femtos-mcp https://api.femtos.xyz/mcp --header 'Authorization: Bearer ${FEMTOS_API_KEY}'Reconnect, or start a new session, and the tools appear in the model’s tool list.
It reaches a system of yours, so it needs your own credential rather than the publisher’s: Authorization header — Bearer <your Femtos API key>. Free, no browser needed: https://femtos.xyz/agents.md#agent-onboarding. You set it in your own client’s config, on your machine — this marketplace never holds it.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
64 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
State of each layer (HyperCore, HyperEVM, Elysium): indexed head block and time, lag behind the chain, live or syncing, Elysium network (mainnet), HyperCore <> HyperEVM bridge matching coverage. Check it when an answer looks stale. Free.
No parameter schema on file.
Tradable markets of a layer, most traded first (24 h USD volume). hypercore: perps, spot, HIP-3 dex perps (dex:COIN), outcome markets; id is the coin to pass to get_candles / get_trades (BTC, @107, xyz:TSLA). hyperevm / elysium: DEX pools with price, priceUsd, 24 h volume, mcapUsd (Elysium); id is the pool key to pass to get_candles / get_trades / get_pool. total = markets matching. Next pag
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | Layer |
| q | string | no | Substring of the symbol, base, quote, addresses or protocol |
| limit | integer | no | Rows (default 50, max 200) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| kind | string | no | hypercore only: one kind of market |
OHLCV candles of one market, ascending, UTC-aligned. hypercore: market = coin (BTC, HYPE, @107 spot, xyz:TSLA), down to 1 s. hyperevm / elysium: market = pool key from list_markets; prices in quote plus usd and mcap OHLC (USD price and market cap). Or token instead of market: a token's candles in USD through its reference pool (most liquid; the answer names it), HyperCore: its USDC market. Wit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | Layer |
| market | string | no | hypercore: coin; hyperevm / elysium: pool key (or give token) |
| token | string | no | Instead of market: a token (0x address; hypercore: name HYPE, PURR) |
| tf | string | yes | Candle unit |
| from | integer | no | Start, Unix ms (inclusive) |
| to | integer | no | End, Unix ms (exclusive; default now) |
| limit | integer | no | Candles (default 50, 30 for 1d; max 1000) |
Latest trades of a market, newest first. hypercore: fills of a coin (px, sz, side B = buyer aggressor / A, block time). hyperevm / elysium: DEX swaps of a pool (sender, amounts, px = pool price after the swap, USD value). History (hyperevm / elysium): pass trader (a wallet: every swap it sent), pool or token (more than 20 pools: its priced swaps only, coverage: priced), optionally side, minUsd (
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer (default hypercore) |
| market | string | no | Pair address (pool key) or coin; required without trader / pool / token |
| limit | integer | no | Rows (default 50) |
| trader | string | no | History of a wallet (tx.from of the swaps); a named wallet's handle works too |
| pool | string | no | History of a pool (alias: market) |
| token | string | no | Swaps where this token is base or quote |
| side | string | no | Buys or sells of the base |
| minUsd | no | Smallest USD value (the indexer's, at the swap) | |
| from | no | Window start, Unix ms (inclusive) | |
| to | no | Window end, Unix ms (exclusive) | |
| includeSpam | boolean | no | Swaps of spam tokens too (flagged) |
| cursor | string | no | Next page: next_cursor of the previous answer |
Tokens by symbol, name or address, with their links across layers (Elysium <-> HyperEVM <-> HyperCore), decimals, supply and USD price. Without layer: every layer. An exact address always answers its token (spam flagged).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | One layer (default all) |
| q | string | yes | Symbol, name or address |
| limit | integer | no | Rows (default 20, max 200) |
One token: its links across layers, the markets it trades on (most traded first) and its 5 largest holders. hypercore: id = token name (HYPE), index or token id; hyperevm / elysium: id = 0x address. Price, FDV, liquidity and 5m–24h windows over all its pools: get_token_overview.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | Layer |
| id | string | yes | HyperCore name / index / token id, or 0x address |
Largest holders of a token and its concentration (top-10 share…); system addresses (pools, bridges, launchpad, zero/dead) counted apart. hypercore: token = name (HYPE), kind = balances (spot) or positions (perp open interest of a coin); hyperevm / elysium: token = 0x address. Named wallets carry entity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer (default hypercore) |
| token | string | yes | Token address (Elysium, HyperEVM), token name or perp coin (HyperCore) |
| kind | string | no | HyperCore: spot balances of a token, or perp positions (open interest by account) of a coin (spot / perp: the same). Default: positions for a perp coin, else balances |
| limit | integer | no | Rows (default 50) |
| excludeSystem | boolean | no | 1 / true: pools, PoolManager, hooks, gateways, bridge system addresses, LiquidLaunch curve, zero/dead counted apart; 0 / false: counted with the others (default true) |
Latest token launches, newest first: Elysium launchpad Ascend (default) or HyperEVM LiquidLaunch (launchpad = liquidlaunch). Each: token, pool (pair), creator, priceUsd, mcapUsd, 24 h volume, holders, top-10 / dev share, dev sold, Ascend progress (Elysium). Next page (Elysium): pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| launchpad | string | no | Launchpad name: ascend (Elysium), liquidlaunch (HyperEVM) |
| layer | string | no | hyperevm = LiquidLaunch |
| limit | integer | no | Rows (default 20) |
| creator | string | no | Elysium: launched by this wallet (creator at launch or current creator) |
| quote | string | no | Elysium: quote token of the pool (USDC, an RWA token…) |
| q | string | no | Elysium: symbol or name contains (case ignored) |
| since | integer | no | Elysium: launched at or after (ms) |
| until | integer | no | Elysium: launched before (ms) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| includeSpam | boolean | no | Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default |
| minMcapUsd | string | no | Ascended criterion: minimum market cap, USD (decimal string) |
| minHolders | integer | no | Ascended criterion: minimum unique holders (system excluded) |
| minVolumeUsd | string | no | Ascended criterion: minimum volume since launch, USD |
| maxTop10Share | number | no | Ascended criterion: maximum top-10 share of the supply |
Every ERC-20 created on HyperEVM or Elysium, newest first (not only launchpad launches): creation block / tx / time, creator, the contract it was deployed through, launchpad (ascend, liquidlaunch… or null = direct), first pool (dex, quote, initial liquidity) and, once a pool exists, priceUsd, mcapUsd, liquidityUsd, 24 h volume, holders. Spam tokens left out. Filters: launchpad (name, none, any, 0x
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| limit | integer | no | Rows (default 20) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| includeSpam | boolean | no | Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default |
| launchpad | string | no | ascend, liquidlaunch (a launchpad name), none (no launchpad), any (a launchpad), or a launchpad 0x address |
| hasPool | boolean | no | true: tokens with a pool; false: without |
| minLiquidityUsd | number | no | Minimum USD liquidity of its pools (twice the smaller side) |
| minHolders | integer | no | Minimum holders |
| creator | string | no | Created by this wallet (0x) |
| since | integer | no | Created at or after (Unix ms) |
| sinceBlock | integer | no | Created at or after this block |
| security | string | no | summary: each row gets security = {verdict, reasons (3), asOf, height} of GET /api/tokens/{address}/security when a report is cached (< 10 min), else null (then computed in the background: ask again |
Every new pair / pool of every DEX on HyperEVM or Elysium (V2, V3, V4, PancakeSwap Infinity, LiquidLaunch curves…), newest first: dex, factory, fee tier, hooks, both tokens with symbols and whether each was just created (newToken), creation block / tx / time, initial liquidity, current liquidity (V2 / V3 pools: token balances; V4 / Infinity: virtual reserves; USD = twice the smaller side), price,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| limit | integer | no | Rows (default 20) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| includeSpam | boolean | no | Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default |
| dex | string | no | Protocol (hyperswap_v3, projectx_v3, uniswap_v4, pancake_infinity_cl, liquidlaunch…) |
| token | string | no | Pools of this token, either side (0x) |
| quote | string | no | Pools quoted in this token (0x), e.g. WHYPE |
| minLiquidityUsd | number | no | Minimum current USD liquidity |
| newTokenOnly | boolean | no | Only pools with a new token (newToken not null) |
| newWithinMin | integer | no | A side is new when created at most this many minutes before the pool (default 60) |
| since | integer | no | Created at or after (Unix ms) |
| sinceBlock | integer | no | Created at or after this block |
The story of one launched token: launch event, market cap, volume, holders, dev wallet and its funding, early buyers with flags, coordination signals, fees (exact from the launchpad ledger when indexed), lifecycle stage across layers and, for Ascend, progress toward the "Ascended" criteria. Elysium first, then HyperEVM LiquidLaunch.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | Launched token address |
| earlyWindowSec | integer | no | Early-buyer window after the launch block (default 60) |
| fundingLookbackSec | integer | no | Funding lookback before the launch (default 86400) |
| layer | string | no | Default: Elysium, then HyperEVM LiquidLaunch when Elysium has no launch for the token |
| minMcapUsd | string | no | Ascended criterion: minimum market cap, USD (decimal string) |
| minHolders | integer | no | Ascended criterion: minimum unique holders (system excluded) |
| minVolumeUsd | string | no | Ascended criterion: minimum volume since launch, USD |
| maxTop10Share | number | no | Ascended criterion: maximum top-10 share of the supply |
Replayable life of a launch, oldest first: launch, swaps and transfers with the running holder count and market cap, graduation links (bridge to HyperEVM, HyperCore listing). Long histories are cut to fit (see truncated).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | Launched token address |
| layer | string | no | Default: Elysium, then HyperEVM |
One token from launch to perp across Elysium, HyperEVM and HyperCore: its address on each layer, the stages reached (Elysium launch, listing desk, HyperEVM mirror, HyperCore spot, perps) with chain evidence, and the links between them, each exact or inferred. address: an Elysium / HyperEVM address, core:<index>, a HyperCore token id or name, or a perp coin (dex:COIN).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Elysium / HyperEVM address, core:<index>, HyperCore token id, name or perp coin |
| minMcapUsd | string | no | Ascended criterion: minimum market cap, USD (decimal string) |
| minHolders | integer | no | Ascended criterion: minimum unique holders (system excluded) |
| minVolumeUsd | string | no | Ascended criterion: minimum volume since launch, USD |
| maxTop10Share | number | no | Ascended criterion: maximum top-10 share of the supply |
Is this HyperEVM or Elysium ERC-20 safe to trade: a buy, a transfer and a sell simulated on our node through its most liquid pool (state overrides, nothing sent): canBuy, canSell, buy / sell / transfer tax, gas, revert reason; static checks of its code (owner and renounced, mintable, pausable, blacklist, max tx / wallet, cooldown, tax setters, upgradeable proxy, selfdestruct, ownership reclaim); h
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | EVM layer (default hyperevm) |
| token | string | yes | Token address |
Current USD price of up to 100 tokens in one call, each with its source and provenance: hl_mid (HYPE / WHYPE: HyperCore spot mid; hl_oracle when no mid is recorded), hl_spot (HyperCore tokens and HyperEVM tokens linked to one: last trade of its USDC market), hl_perp, unit (USDC), pool (HyperEVM / Elysium: last swap of the token's reference pool, the most liquid one, with block / tx / logIndex). hy
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm |
| tokens | array | yes | 0x addresses (hyperevm, elysium) or HyperCore names / perp coins |
USD prices in the past. With at (Unix ms): the price of up to 100 tokens at that time (last observation at or before it). With from / to / interval: USD closes per unit (1m 5m 15m 1h 4h 1d) of up to 25 tokens, gap-filled. Same sources as get_prices. Windows over 30 days are billed as heavy calls.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm |
| tokens | array | yes | 0x addresses or HyperCore names |
| at | integer | no | Time (Unix ms): price at or before it |
| from | integer | no | Series start (Unix ms, inclusive, aligned down to the unit) |
| to | integer | no | Series end (Unix ms, exclusive; default now) |
| interval | string | no | Series unit |
| limit | integer | no | Units per token at most (default 200) |
Metadata of up to 100 tokens: symbol, name, decimals, total supply, creator and creation time, logo / description / socials when indexed (launchpad metadata), token family, cross-layer links, spam flag. Unknown addresses come back in missing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm |
| addresses | array | yes | 0x addresses (hypercore: names / token ids) |
One token across all its pools on HyperEVM or Elysium (DexScreener style): USD price and source, FDV, market cap, liquidity, volume / trades / buys / sells / unique buyers, sellers and traders / price change over 5m, 1h, 6h, 24h, holders and top-10 share, pool count, the 5 best pools and the reference one, creator and creation time.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Token address |
| layer | string | no | EVM layer (default hyperevm) |
Who traded a HyperEVM or Elysium token over 1h, 6h or 24h and how they did: per wallet buys / sells, amounts and USD bought / sold, average buy and sell price, current balance, realized, unrealized and total PnL (average cost over the window: realized = min(bought, sold) × (avg sell − avg buy); unrealized = what it still holds of its net buy × (current price − avg buy)), first / last swap, named w
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | EVM layer (default hyperevm) |
| window | string | no | Window ending at the indexed head: 1h, 6h or 24h (default 24h) |
| sort | string | no | pnl (total, highest first), realized (realized PnL) or volume (USD bought + sold) (default pnl) |
| limit | integer | no | Traders (default 20) |
| token | string | yes | Token address |
Bridge movements, newest first, with 24 h stats. route core_evm: HyperCore <> HyperEVM transfers, both legs matched (status, latency, how they were paired); route evm_elysium: HyperEVM <> Elysium (Orbit) deposits and withdrawals. Filter by account to follow one wallet across layers. Medium call.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| route | string | no | Bridge (default core_evm) |
| direction | string | no | Direction |
| token | string | no | Token address (hype for native HYPE) |
| account | string | no | Sender or recipient |
| limit | integer | no | Rows (default 50) |
| system | string | no | Kinetiq system retryables (evm_elysium) (default exclude) |
| includeSpam | boolean | no | evm_elysium: rows of spam parent tokens (HyperEVM tokens.spam), left out by default |
One address on HyperCore, HyperEVM and Elysium at once: HyperCore perp account (value, positions with liquidation price) and spot balances, HyperEVM and Elysium token balances and NFTs with USD values, bridge legs in flight and journeys across the layers, latest events (fills, ledger, swaps, transfers, bridges), each section with its freshness. Medium call; balances alone: get_balances (a REST cal
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | 0x address, or a named wallet's handle <entityId>.<hex> |
| includeSpam | boolean | no | Show spam tokens (tokens.spam: homoglyph, impostor, fake transfers…), flagged spam / spamReason; hidden from lists and USD totals by default |
What an address holds, one flat list: HyperCore spot tokens (live), HyperEVM and Elysium ERC-20s and native HYPE (indexed head), each with raw units, amount, USD price and value, largest first; spam tokens left out; HyperCore perp accounts (account value, withdrawable) apart in perp; totals per layer and overall, each layer with its source, height and asOf. Past balances: block or at (Unix ms) o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | 0x address, or a named wallet's handle <entityId>.<hex> |
| layer | string | no | Layer(s) read (default all) |
| tokens | string | no | Comma list (at most 50; 20 with block / at): EVM token addresses (native = HYPE) and HyperCore coin names; every token asked is listed, held or not (0) |
| minUsd | number | no | Leave out holdings worth less (and unpriced ones) |
| sort | string | no | Order (default usd) |
| limit | integer | no | Rows (default 50) |
| includeSpam | boolean | no | List spam tokens (flagged spam / spamReason); never in the totals |
| block | integer | no | Past balances at this block (one layer; EVM: tokens= required; HyperCore: the snapshot at or before this height) |
| at | integer | no | Past balances at this time (Unix ms): the last block at or before it |
| verify | boolean | no | EVM layers: read the rows answered (at most 50 per layer) again on the node at the same block |
The balance of one token for one address: HyperCore coin name (USDC, HYPE…), or a HyperEVM / Elysium token address (native = HYPE; layer hyperevm unless elysium is given). 0 when not held. block / at for a past balance, verify to compare with the node.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | 0x address, or a named wallet's handle <entityId>.<hex> |
| token | string | yes | EVM token address, native (HYPE), or a HyperCore coin name |
| layer | string | no | Default: hypercore for a coin name, hyperevm for an address |
| block | integer | no | Past balance at this block |
| at | integer | no | Past balance at this time (Unix ms) |
| verify | boolean | no | EVM layers: read it again on the node at the same block |
Daily USD swap volume of an EVM token (both sides of every priced swap), oldest first, up to the indexed head (the last day is partial).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| token | string | yes | Token address |
| days | integer | no | Days (default 30) |
ERC-20 Transfer events, newest first (from, to, amount, block, tx). address: the transfers sent / received by a wallet (direction in, out or any), optionally of one token, in a window (from / to, Unix ms) or above minUsd (amount × current token price); each row with token, symbol, direction and USD value. Without address: the transfers of one token. Filtered pages may hold fewer rows than limit: k
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| token | string | no | Token address (required without address) |
| address | string | no | Transfers from / to this address (a named wallet's handle works too); token then optional |
| direction | string | no | With address: received, sent or both (default any) |
| from | no | With address: window start, Unix ms (inclusive) | |
| to | no | With address: window end, Unix ms (exclusive) | |
| minUsd | no | With address: smallest amount × current token price, USD | |
| includeSpam | boolean | no | With address: transfers of spam tokens too (flagged) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| limit | integer | no | Rows (default 50) |
One DEX pool of HyperEVM or Elysium: dex, factory, fee tier, hooks, tokens with USD prices, creation block / tx, price, liquidity with its USD value and how it is measured (pool balances for V2 / V3; virtual reserves of the in-range liquidity for V4 / Infinity pools: not TVL), depth to ±2 %, trades / buys / sells / USD volume / price change over 5m, 1h, 6h, 24h, and for V2-style pools the largest
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Pool address, or <PoolManager>:<PoolId> |
| layer | string | yes | EVM layer |
One transaction by hash, HyperEVM then Elysium (or layer): status, block, from / to, value, gas and fee (HYPE and USD), decoded ERC-20 transfers, swaps, liquidity events, pools created and NFT transfers, the raw logs we do not decode (from our node), and when it is a bridge leg its legs, matched bridge rows and the cross-layer journey it belongs to. A transaction not indexed yet comes from the nod
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hash | string | yes | Transaction hash (0x + 64 hex) |
| layer | string | no | Only this layer (default: HyperEVM, then Elysium) |
HyperEVM or Elysium gas over 1h, 6h, 24h or 7d: each block's base fee, gas used and limit, transactions and priority fees (p50 / p90 tips), HyperEVM small and big blocks as two series (each has its own base fee). Stats per series (base fee min / median / p90 / p99 / max / mean, typical tips, utilization) and the latest block. Points are every block up to 25000 per series, else buckets with min / m
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | EVM layer (default hyperevm) |
| window | string | no | Window ending now: 1h, 6h, 24h or 7d (default 1h) |
| resolution | string | no | block, 10s, 1m, 5m, 15m or 1h; default auto (every block up to 25000 per series) (default 15m) |
One HyperEVM or Elysium block (a number, or latest): hash, time, small or big block (HyperEVM), gas, base fee, tips, HYPE burnt and fees, and every transaction in order with sender, recipient (named wallets tagged), HYPE sent, function called, status, gas, tip, fee and its decoded swaps, transfers and liquidity changes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| number | yes | Block number, or latest | |
| layer | string | no | EVM layer (default hyperevm) |
One read-only JSON-RPC call on our Elysium mainnet (chain 99901) node, free: eth_chainId, eth_blockNumber, net_version, net_listening, web3_clientVersion, eth_syncing, eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockTransactionCountByNumber, eth_getBlockTransactionCountByHash, eth_getTransactionByHash, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionByBlockHashAndIndex, eth_getTra
| Parameter | Type | Required | Notes |
|---|---|---|---|
| method | string | yes | A method served: eth_chainId, eth_blockNumber, net_version, net_listening, web3_clientVersion, eth_syncing, eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockTransactionCountByNumber, eth_getBlock |
| params | array | no | Its parameters, as the method takes them (absent: none) |
Live L2 order book of one HyperCore market from our own node: bids and asks best first as [px, sz, n] (price, size, order count), and the block it was read at. coin: perp name (BTC), spot @index (@107) or HIP-3 dex:COIN.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | HyperCore coin: BTC, @107, xyz:TSLA |
| depth | integer | no | Levels per side (default 20, max 100) |
Which HyperCore accounts' order book walls hold: per account, its large resting orders placed away from the price (≥ $25k, ≥ 20 bps away), how many the price came to, how many held (filled) and how many were pulled as the price came, with the hold rate. A low hold rate over many tested walls is liquidity that leaves as the price comes: requoting ladders, or spoofing (a record, not a verdict). Filt
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | no | Market (perp name, spot @index, HIP-3 dex:COIN); every market when absent |
| user | string | no | Only this account |
| window | string | no | Window, whole hours ending with the current one: 24h, 7d, or all (since 2026-10-13 15:50 UTC) (default 7d) |
| tier | integer | no | Smallest wall counted: 1 = $25k and more, 2 = $100k and more, 3 = $1M and more (default 1) |
| side | string | no | B bids only, A asks only; both when absent |
| minTested | integer | no | Accounts with at least this many tested walls (default 5) |
| sort | string | no | Order, largest first (holdRate: lowest first) (default pulled) |
| limit | integer | no | Accounts (default 25) |
One HyperCore market's large resting orders that the price came to, one by one, newest first: held (filled) or pulled (cancelled as the price came), with time, price, size, value, life and owner. A wall: a resting limit order (Gtc or Alo, not a trigger) worth at least $25k, placed on its passive side at least 20 bps from the last trade (a bid below, an ask above), resting 24 h at most. Tested: the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | Market (perp name, spot @index, HIP-3 dex:COIN) |
| from | integer | no | From (Unix ms); default to − 24 h |
| to | integer | no | To (Unix ms); default now |
| tier | integer | no | Smallest wall: 1 = $25k and more, 2 = $100k and more, 3 = $1M and more (default 2) |
| limit | integer | no | Events (default 100) |
HyperCore perp liquidations, newest first: one row per account, coin and block (side of the liquidated position, market or backstop, size, notional, average and mark price). Default window: the last 24 h; from older than 7 days (30 with a coin) is clamped, the answer's from says where it starts. Named wallets carry entity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | no | One coin |
| user | string | no | One liquidated account (0x) |
| minNotional | number | no | Smallest notional, USD |
| from | integer | no | Window start (ms) |
| to | integer | no | Window end (ms, exclusive) |
| limit | integer | no | Rows (default 50) |
HyperCore liquidations over a window (1h, 24h, 7d, 30d), every perp or one coin: totals (notional, count, accounts, long / short, market / backstop), per coin, per time bucket, the most liquidated accounts and the largest events.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| window | string | no | Window (default 24h) |
| coin | string | no | One coin |
Open positions of one HyperCore perp, current to a few seconds (the node state rolled forward with every fill, funding payment and ledger update): account, size, side, entry price, notional, unrealized PnL at the mark, leverage, margin mode and liquidation price when known. Sort by notional (default), upnl or liqDistance (closest to liquidation first). Named wallets carry entity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | Perp coin (BTC, xyz:TSLA) |
| side | string | no | One side |
| sort | string | no | Sort (default notional) |
| order | string | no | Order (default: desc, liqDistance asc) |
| limit | integer | no | Rows (default 50) |
Past HyperCore perp position changes of one coin over a notional, one row per account and block (opens, closes, increases, reductions, flips, with size, average price and whether a liquidation moved it): the history of the WS hc.positions channel. Default window: the last 24 h; from older than 30 days is clamped. sort=notional for the largest of the window. Named wallets carry entity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | Perp coin (BTC, xyz:TSLA) |
| minNotional | number | no | Smallest notional, USD (default 100000) |
| from | integer | no | Window start (ms) |
| to | integer | no | Window end (ms, exclusive) |
| sort | string | no | Newest first, or largest first (default time) |
| limit | integer | no | Rows (default 50) |
Open trigger orders (stop-loss and take-profit) of one HyperCore market bucketed by trigger price around the mark (default ±10 %, 20 round-width buckets): per bucket the count, size and notional (size × trigger price) of stops and take-profits, sell (closes longs) and buy (closes shorts), market and limit. Each order counts at what it would execute: a reduce-only order closes at most what is left
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | HyperCore coin: BTC, ETH, xyz:TSLA |
| buckets | integer | no | Most buckets (default 20; the width is rounded up to 1, 2, 2.5 or 5 × 10^k) |
| step | string | no | Bucket width in price units, instead of buckets (at most 400 buckets) |
| rangePct | number | no | Half-width of the grid around the mark, percent (default 10) |
Liquidation prices of the open perp positions of one HyperCore market, bucketed by price around the mark: per bucket the longs (liquidated by a forced sell as price falls to them) and the shorts (forced buy), count, |size| and |size| × liquidation price. Real per-position prices: every account's positions a few seconds old (the node state rolled forward with every fill, funding payment and ledger
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | Perp coin: BTC, ETH, xyz:TSLA |
| buckets | integer | no | Most buckets (default 20; the width is rounded up to 1, 2, 2.5 or 5 × 10^k) |
| step | string | no | Bucket width in price units, instead of buckets (at most 400 buckets) |
| rangePct | number | no | Half-width of the grid around the mark, percent (default 10) |
Open stop-loss / take-profit orders and the liquidation prices of open positions of one HyperCore market on the same price buckets: per bucket the stops by kind and side (each at what it would execute: a reduce-only order at most what is left of its wallet's position, the rest under stops.unbacked), the liquidations by side, the cascade (what fires with the move: sell = sell stop-losses + long liq
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | Perp coin: BTC, ETH, xyz:TSLA |
| buckets | integer | no | Most buckets (default 20; the width is rounded up to 1, 2, 2.5 or 5 × 10^k) |
| step | string | no | Bucket width in price units, instead of buckets (at most 400 buckets) |
| rangePct | number | no | Half-width of the grid around the mark, percent (default 10) |
Stop-loss and take-profit orders of one HyperCore market that fired, newest first: wallet, side, trigger and limit price, size (0 = whole position), the order the trigger placed (its status in the trigger block) and its fills there (size, average price, notional). Window: since / until, default the last hour, at most 24 h per call and 7 days back. Named wallets carry entity. Next page: pass `nex
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | HyperCore coin: BTC, ETH, xyz:TSLA |
| since | integer | no | Window start (Unix ms, default until − 1 h) |
| until | integer | no | Window end (Unix ms, exclusive, default now) |
| limit | integer | no | Rows (default 50) |
| cursor | string | no | Next page: next_cursor of the previous answer |
A wallet's open HyperCore trigger orders (stop-loss / take-profit): coin, side, trigger and limit price, size (0 = whole position), reduce-only, placed at. history: true lists instead every status event of its trigger orders over the last 3 days at most (placed, triggered, canceled, rejected, and the fill or cancel of the order a trigger placed, triggered: true), newest first (a heavy call; next
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | 0x address, or a named wallet's handle <entityId>.<hex> |
| history | boolean | no | Past status events instead of the open orders (heavy call) |
| since | integer | no | history: window start (Unix ms, default until − 24 h, 3 days back at most) |
| until | integer | no | history: window end (Unix ms, exclusive, default now) |
| status | string | no | history: one status (open, triggered, canceled, filled…) |
| limit | integer | no | history: events (default 100, max 1000) |
| cursor | string | no | Next page: next_cursor of the previous answer |
The wallets behind one price band of a HyperCore market (a bucket of get_forced_flow / get_stop_map / get_liquidation_map: px_lo = its pxLo, px_hi = its pxHi): the open stop-loss / take-profit orders triggering in it, each with what it would execute (a reduce-only order at most what is left of its wallet's position; the rest as unbackedSz) and the wallet's position, and the open positions liquidat
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coin | string | yes | HyperCore perp coin: BTC, xyz:TSLA |
| px_lo | string | yes | Band low edge (inclusive), price |
| px_hi | string | yes | Band high edge (exclusive), price, over px_lo |
| limit | integer | no | Orders, and positions, listed (largest first) (default 50) |
Most active NFT collections of an EVM layer over the last 1 h or 24 h before the indexed head: transfers, mints, burns, with each collection's name, symbol, standard and logo.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| window | string | no | Window (default 24h) |
| limit | integer | no | Rows (default 50) |
One NFT collection of an EVM layer: metadata, standards, token ids seen (counted up to 1,000), transfers / mints / burns over the 24 h before the indexed head.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Collection contract |
| layer | string | yes | EVM layer |
Tokens of one collection by token id, ascending: current ERC-721 owner (null for ERC-1155), metadata URI, image URL. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| collection | string | yes | Collection contract |
| cursor | string | no | Next page: next_cursor of the previous answer |
| limit | integer | no | Rows (default 50) |
NFTs an address holds on an EVM layer at the indexed head: ERC-721 tokens and ERC-1155 balances, counted per collection, the tokens listed up to limit.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| owner | string | yes | Holder address |
| limit | integer | no | Tokens listed (default 50) |
Transfers (mints and burns included) of one collection or one of its tokens, newest first: from, to, token id, amount, block, tx. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | yes | EVM layer |
| collection | string | yes | Collection contract |
| tokenId | string | no | One token |
| window | string | no | Window when scope is not all (default 24h) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| limit | integer | no | Rows (default 50) |
Named wallets (KOLs, traders, funds, market makers) and their wallets, from public attribution lists (not verified identities). A named wallet's address is given as its handle <entityId>.<hex>, usable as an address in every tool. Use the entity id with kol_activity. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | Entities: named (people, funds, pseudonyms from public sources), cluster (anonymous smart-money clusters: HyperCore traders selected on their results), all, or a kind it contains (whale, market maker… |
| q | string | no | Name, X handle, alias, wallet address or handle |
| confidence | string | no | Entities with at least one wallet of this confidence |
| via | string | no | Entities with at least one wallet found this way (via of the wallets) |
| sort | string | no | default: the registry order (our research first); wallets: most wallets first; name; pnl: smart-money net PnL first (default default) |
| limit | integer | no | Entities (default 20) |
| cursor | string | no | Next page: next_cursor of the previous answer |
How each wallet of a named entity was attributed: the links (bridges, HyperCore sub-accounts, sends both ways, Farcaster self-declarations) back to the public source, with their proofs (source, time, USD value, chains), and the HyperCore metrics of smart-money wallets. Use it to judge an attribution before relying on it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Entity id |
The HyperCore PnL curve of a named entity (id from search_entities): per hour or day, realized PnL, fees, funding, net and cumulative net, over 7d, 30d, 90d or all history. Realized only: open positions' unrealized PnL is in get_entity's answer.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Entity id |
| window | string | no | UTC days ending today: 7d, 30d, 90d, or all (since dataStart). Default 30d (default 30d) |
| bucket | string | no | Bucket: 1h (window 7d or 30d) or 1d. Default 1d (default 1d) |
Named wallets ranked by their trading on a layer. hypercore: PnL, volume, fills, win rate, open notional (default 7d, sort netPnl). hyperevm / elysium: swaps, transfers, net buy, holdings, bridge legs (default 24h, sort volume).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer (default hypercore) |
| window | string | no | Window (hypercore: 7d by default, EVM layers: 24h) |
| sort | string | no | Sort (per layer, see above; default netPnl / volume) |
| kind | string | no | Entities: named (people, funds, pseudonyms from public sources), cluster (anonymous smart-money clusters: HyperCore traders selected on their results), all, or a kind it contains (whale, market maker… |
| limit | integer | no | Rows (default 25) |
How named wallets (KOLs, funds, market makers; or smart-money clusters with kind=cluster) are positioned on each HyperCore perp: long vs short notional and entity counts, net, average entry and unrealized PnL per side, the named position closest to liquidation, the largest entities per side, and the net change over 1 h and 24 h. One market with coin.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | Entities: named (people, funds, pseudonyms from public sources), cluster (anonymous smart-money clusters), all. Default: named (default named) |
| coin | string | no | One perp market only |
| limit | integer | no | Markets, largest gross notional first (default 20) |
| top | integer | no | Largest entities listed per side (default 3) |
Latest moves of named wallets, newest first: HyperCore fills (minNotional USD, default 1000), HyperEVM / Elysium swaps and transfers. Optionally one entity (id from search_entities). Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer | string | no | Layer (default hypercore) |
| entity | string | no | One entity only |
| minNotional | string | no | Smallest USD value (hypercore: px × sz, default 1000; EVM: none by default) |
| cursor | string | no | Next page: next_cursor of the previous answer |
| limit | integer | no | Rows (default 50) |
HyperCore builder codes ranked over a window (24h, 7d, 30d, 90d, all since 2026-06-01): builder fees earned (USD stablecoins at par, exact per token), volume, fills, distinct users, share of all builder fees, and order outcomes (distinct orders, filled, canceled, rejected; from 2026-10-13 15:50 UTC), and the app behind each code (Phantom, MetaMask…) when known. Sort by fees, volume, fills, users o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| window | string | no | Window, whole hours ending with the current one: 24h, 7d, 30d, 90d, or all (since 2026-06-01) (default 30d) |
| sort | string | no | Order, largest first (default fees) |
| limit | integer | no | Builders (default 25) |
One HyperCore builder code over a window (24h to all since 2026-06-01): fees (USD stablecoins at par, exact per token), volume, fills, users, rank; one row per day; its markets; its orders from 2026-10-13 15:50 UTC by status (fills, cancels, each rejection reason) and the fee rates they charged.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| builder | string | yes | Builder address (0x), as orders name it in builder.b |
| window | string | no | Window, whole hours ending with the current one: 24h, 7d, 30d, 90d, or all (since 2026-06-01) (default 30d) |
Order statuses of one HyperCore builder code, newest first: open, filled, canceled, triggered and every rejection reason, with market, side, type, prices, sizes, account and the fee rate charged. From 2026-10-13 15:50 UTC; window from / to, default 24 h, at most 7 days per call. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| builder | string | yes | Builder address (0x), as orders name it in builder.b |
| from | integer | no | Window start (Unix ms, default to − 24 h) |
| to | integer | no | Window end (Unix ms, exclusive, default now) |
| status | string | no | One status |
| coin | string | no | One market |
| user | string | no | One account |
| limit | integer | no | Rows (default 50) |
| cursor | string | no | Next page: next_cursor of the previous answer |
Fills of one HyperCore builder code, newest first, with the builder fee of each, account, market, price, size, direction, PnL, oid, tid and hash. From 2026-06-01; window from / to, default the last 24 h, at most 24 h per call. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| builder | string | yes | Builder address (0x), as orders name it in builder.b |
| from | integer | no | Window start (Unix ms, default to − 24 h) |
| to | integer | no | Window end (Unix ms, exclusive, default now) |
| coin | string | no | One market |
| user | string | no | One account |
| limit | integer | no | Rows (default 50) |
| cursor | string | no | Next page: next_cursor of the previous answer |
Create an outgoing webhook: we POST the events of its subscriptions to your HTTPS URL (port 443 or 8443, public address), signed (Standard Webhooks: webhook-id, webhook-timestamp, webhook-signature = v1,<base64 HMAC-SHA256 of "id.timestamp.body" with the secret>). Channels (WebSocket vocabulary): bridge.transfers and elysium.bridge (matched bridge legs), wallet (filter.address: up to 100 addresses
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | https, port 443 or 8443, a public address |
| description | no | Your label (<= 200 characters) | |
| subscriptions | array | yes | What to deliver |
Your account's webhooks: URL, state (pending_verification, active, disabled with the reason and how to enable), failures in a row, subscriptions. A rotated key sees the same webhooks. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Webhooks (default 50) |
| cursor | string | no | Next page: next_cursor of the previous answer |
Delete one of your webhooks and its pending deliveries. Cannot be undone.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Webhook id |
Queue a webhook.test delivery to a verified webhook (not billed); its result shows in get_webhook_deliveries within seconds.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Webhook id |
Deliveries of one webhook, newest first (kept 7 days): msgId (the webhook-id header), type, status pending / delivered / dead, and each attempt with its HTTP status, latency, error and the first 4 KiB of your answer. Next page: pass next_cursor as cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Webhook id |
| status | string | no | Only these |
| limit | integer | no | Deliveries (default 20) |
| cursor | string | no | Next page: next_cursor of the previous answer |
Send deliveries again, same webhook-id (dedupe on it): one (msgId, delivered or dead), or every dead one since a time (since, Unix ms within 7 days; status all: delivered ones too).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Webhook id |
| since | integer | no | Unix ms, within the last 7 days |
| status | string | no | dead: the dead deliveries; all: the delivered ones too (default dead) |
| msgId | string | no | One delivery (its msgId) |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Femtos or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| get_status | no tags | |
| list_markets | no tags | |
| get_candles | no tags | |
| get_trades | no tags | |
| search_coins | no tags | |
| get_coin | no tags | |
| get_holders | no tags | |
| list_launches | no tags | |
| list_new_tokens | no tags | |
| list_new_pools | no tags | |
| get_launch | no tags | |
| get_launch_timeline | no tags | |
| get_token_lifecycle | sensitive-source | sensitive-source: keyword "get_token" |
| get_token_security | sensitive-source | sensitive-source: keyword "get_token" |
| get_prices | no tags | |
| get_price_history | no tags | |
| get_tokens | sensitive-source | sensitive-source: keyword "get_token" |
| get_token_overview | sensitive-source | sensitive-source: keyword "get_token" |
| get_token_traders | sensitive-source | sensitive-source: keyword "get_token" |
| get_bridges | no tags | |
| get_wallet | no tags | |
| get_balances | no tags | |
| get_token_balance | sensitive-source | sensitive-source: keyword "get_token" |
| get_token_volume | sensitive-source | sensitive-source: keyword "get_token" |
| get_erc20_transfers | no tags | |
| get_pool | no tags | |
| get_transaction | no tags | |
| get_gas | no tags | |
| get_block | no tags | |
| elysium_rpc | no tags | |
| get_book | no tags | |
| get_walls | no tags | |
| get_wall_events | no tags | |
| get_liquidations | no tags | |
| get_liquidation_stats | no tags | |
| get_positions | no tags | |
| get_position_changes | no tags | |
| get_stop_map | no tags | |
| get_liquidation_map | no tags | |
| get_forced_flow | no tags | |
| get_triggered_stops | no tags | |
| get_wallet_stops | no tags | |
| get_price_level | no tags | |
| list_nft_collections | no tags | |
| get_nft_collection | no tags | |
| get_nft_tokens | no tags | |
| get_nfts_owned | no tags | |
| get_nft_transfers | no tags | |
| search_entities | no tags | |
| get_entity_graph | no tags | |
| get_entity_pnl | no tags | |
| kol_leaderboard | no tags | |
| kol_positioning | no tags | |
| kol_activity | no tags | |
| get_builders | no tags | |
| get_builder | no tags | |
| get_builder_orders | no tags | |
| get_builder_fills | no tags | |
| create_webhook | external-sink | external-sink: keyword "webhook", declares readOnlyHint: false, openWorldHint: true |
| list_webhooks | no tags | |
| delete_webhook | external-sinkstate-write | external-sink: keyword "webhook"; state-write: declares readOnlyHint: false, destructiveHint: true |
| test_webhook | external-sink | external-sink: keyword "webhook", declares readOnlyHint: false, openWorldHint: true |
| get_webhook_deliveries | no tags | |
| replay_webhook | external-sink | external-sink: keyword "webhook", declares readOnlyHint: false, openWorldHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.2.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Femtos can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.