robinhood-chain-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| chain_infoA | Get Robinhood Chain network identity and live head: chain ID, RPC, explorer, native currency, latest block, gas price. |
| get_blockB | Get a block by number ('latest', 'earliest', a decimal height, or a hex height). |
| gas_priceA | Current gas price, with an EIP-1559 fee breakdown when the chain provides one. |
| estimate_gasB | Estimate gas for a call without sending it. |
| get_balanceC | Native ETH balance for an address. |
| get_nonceC | Transaction count (nonce) for an address. |
| is_contractC | Whether an address holds contract code, and how much. |
| get_token_balanceB | ERC-20 balance for an address. Accepts a known symbol (e.g. USDG) or a token address. |
| list_token_holdingsA | All token balances held by an address, via the explorer index. Mainnet only. |
| read_contractA | Call a read-only contract function using a human-readable signature, e.g. 'function balanceOf(address) view returns (uint256)'. |
| raw_callA | Low-level eth_call with hand-built calldata. Returns raw returndata, and identifies the revert selector when the call reverts — useful for probing whether a function exists on a Diamond. |
| build_transactionA | Build an UNSIGNED transaction for external signing. This server never holds keys and cannot broadcast. |
| get_transactionC | Get a transaction by hash. |
| get_receiptC | Get a transaction receipt, including status and logs. |
| address_transactionsB | Recent transactions for an address, via the explorer index. Mainnet only. |
| get_logsC | Query event logs by address and/or topics. |
| list_tokensA | List ERC-20 tokens on Robinhood Chain, most-held first, via the explorer index. Mainnet only. |
| known_assetsA | Curated Robinhood Chain assets with verified metadata, including which support EIP-3009 / EIP-2612. |
| token_infoA | Detailed token info from the explorer: supply, holders, market data. Mainnet only. |
| chain_statsA | Explorer-level chain statistics: block time, gas prices, total transactions, market data. Mainnet only. |
| probe_token_capabilitiesA | Detect whether a token supports EIP-3009 (gasless transferWithAuthorization) and EIP-2612 (permit). Works correctly on EIP-2535 Diamonds, where scanning proxy bytecode reports false negatives. |
| usdg_infoA | USDG (Global Dollar) details: address, decimals, supply, and its verified EIP-712 domain. |
| check_authorizationA | Check whether an EIP-3009 authorization nonce has already been used. EIP-3009 nonces are random bytes32, not sequential. |
| build_transfer_authorizationB | Build the EIP-712 payload for a gasless EIP-3009 transfer, ready for external signing. Returns the typed-data struct — this server never signs. |
| arb_block_numberA | L2 block number from the ArbSys precompile. This is the value eth_blockNumber returns — distinct from the block.number a contract observes. |
| block_number_contextA | Explain the three different 'block numbers' on this chain: the L2 height from eth_blockNumber, the L1 height a contract sees via block.number, and ArbSys.arbBlockNumber(). Getting these confused is the most common Orbit integration bug. |
| arb_chain_idA | Chain ID reported by the ArbSys precompile, cross-checked against eth_chainId. |
| arbos_versionA | ArbOS version running on this chain. |
| arb_gas_pricesA | Full gas price breakdown from ArbGasInfo: per-L2-tx, per-L1-calldata-byte, per storage allocation, and the base fee components. |
| arb_l1_base_feeA | Current L1 base fee estimate used for data-availability pricing. |
| arb_min_gas_priceB | Minimum gas price (floor) enforced by the chain. |
| arb_gas_accountingA | Speed limit, gas pool size, and max transaction gas from ArbGasInfo. |
| arb_l1_pricingB | L1 pricing internals: surplus, per-batch gas charge, and the amortized cost cap. |
| estimate_l1_componentB | Estimate the L1 data-availability component of a transaction's cost via the NodeInterface precompile — the part a plain eth_estimateGas does not show. |
| precompile_statusA | Which Arbitrum precompiles are actually usable on this chain. Probes each with a real call rather than trusting that a canonical address implies a working precompile. |
| build_l2_to_l1_withdrawalA | Build an UNSIGNED ArbSys.withdrawEth call to start an L2->L1 ETH withdrawal. Returns calldata only; this server never signs. Note the multi-day challenge period before the L1 claim can be executed. |
| keccak_hashB | keccak256 of a UTF-8 string or hex bytes. |
| function_selectorA | Compute the 4-byte selector for a function signature, e.g. 'transfer(address,uint256)'. |
| event_topicA | Compute the topic0 hash for an event signature, e.g. 'Transfer(address,address,uint256)'. |
| checksum_addressB | Validate an address and return its EIP-55 checksummed form. |
| encode_abiA | ABI-encode values against a parameter signature, e.g. params='address,uint256'. |
| decode_abiC | ABI-decode a hex blob against a parameter signature. |
| decode_calldataA | Decode calldata against a known function signature, splitting selector from arguments. |
| to_weiC | Convert a decimal amount to base units without floating-point rounding. |
| from_weiC | Convert base units to a decimal amount. |
| hex_convertC | Convert between hex, decimal, and UTF-8 string. |
| random_nonceA | Generate a random 32-byte nonce, suitable for an EIP-3009 authorization. EIP-3009 nonces are random, not sequential. |
| token_metadataA | Read name, symbol, decimals and total supply directly from a token contract. Tolerates tokens that return bytes32 instead of string. |
| token_allowanceC | ERC-20 allowance an owner has granted a spender. |
| multi_token_balanceA | Read one address's balance across several tokens in a single Multicall3 round-trip. |
| build_token_transferA | Build UNSIGNED calldata for an ERC-20 transfer. Amount is parsed against the token's real decimals; over-precise amounts are refused rather than truncated. |
| build_token_approveB | Build UNSIGNED calldata for an ERC-20 approve. Set unlimited=true for the max-uint256 allowance. |
| decode_transfer_logC | Decode an ERC-20 Transfer event log into from/to/value. |
| token_transfer_historyC | ERC-20 transfer events involving an address, read from chain logs rather than the explorer, so it works on any network. |
| nft_ownerC | ERC-721 ownerOf for a token ID. |
| nft_token_uriC | ERC-721 tokenURI, with inline data: URIs decoded when present. |
| nft_balanceB | ERC-721 balanceOf — how many NFTs from a collection an address holds. |
| nft_collection_infoC | ERC-721 collection name, symbol, and total supply where exposed. |
| erc1155_balanceC | ERC-1155 balanceOf for an (account, id) pair. |
| detect_token_standardB | Detect whether a contract is ERC-20, ERC-721, or ERC-1155, using ERC-165 supportsInterface with an ERC-20 fallback. |
| address_nftsC | NFTs held by an address, via the explorer index. Mainnet only. |
| verify_authorization_signatureA | Verify an EIP-3009 signature offline: does it recover to the claimed signer, for this exact token and chain? Catches wrong-domain and cross-chain-replay signatures before they cost gas. |
| build_receive_authorizationA | Build the EIP-712 payload for receiveWithAuthorization. Unlike transferWithAuthorization, only the payee may submit it — which closes the front-running window where anyone can relay a valid authorization. |
| build_cancel_authorizationB | Build the EIP-712 payload to cancel an unused EIP-3009 authorization before it can be redeemed. |
| build_permitB | Build an EIP-2612 permit payload (gasless approval). Requires the token's current nonce, which is read on-chain. |
| build_transfer_authorization_calldataC | Assemble the final transferWithAuthorization CALLDATA from a signed authorization, ready for a relayer to submit. |
| list_eip3009_assetsA | Assets on this chain known to support EIP-3009, and therefore usable for gasless, relayer-submitted payments. |
| authorization_digestA | Compute the EIP-712 digest a wallet will be asked to sign for a given authorization, without signing it. |
| verify_domain_separatorA | Recompute a token's EIP-712 DOMAIN_SEPARATOR from its stored domain and compare it against the live contract. A mismatch means the contract was upgraded and stored signatures would be rejected. |
| address_infoC | Explorer summary for an address: balance, contract status, verification, transaction count. |
| address_token_transfersC | Token transfers involving an address, from the explorer index. |
| address_internal_transactionsB | Internal transactions (contract-initiated value transfers) for an address. |
| contract_sourceB | Verified source code and ABI for a contract, if the explorer has it. |
| contract_abiA | Fetch just the ABI of a verified contract — feed it to read_contract to call methods without knowing signatures in advance. |
| explorer_searchB | Search the explorer for an address, token, transaction, or block. |
| token_holdersC | Largest holders of a token, from the explorer index. |
| token_transfersC | Recent transfers of a specific token. |
| latest_blocksC | Most recent blocks with transaction counts and gas usage. |
| block_transactionsC | All transactions in a given block, from the explorer index. |
| verified_contractsC | Contracts with verified source on this chain — a quick map of what is actually deployed and public. |
| x402_network_idA | The CAIP-2 network identifier for this chain, as x402 payloads must express it. |
| x402_build_payment_requirementsC | Build the paymentRequirements object a resource server returns in its HTTP 402 response. |
| x402_build_payment_payloadB | Assemble the x402 paymentPayload from a signed EIP-3009 authorization, ready to send in the X-PAYMENT header. |
| x402_check_facilitatorA | Query an x402 facilitator's /supported endpoint and report whether it can settle for this chain. Defaults to the hosted facilitator, which does not support Robinhood Chain. |
| x402_decode_payment_headerA | Decode a base64 X-PAYMENT header into its payload, and sanity-check it against this chain. |
| verify_stock_tokenA | Determine whether a contract is a GENUINE Robinhood Stock Token or a ticker-squatting copy. The explorer lists multiple contracts per ticker and Robinhood publishes no registry to check against; this probes uiMultiplier(), which only the real tokens implement. |
| stock_token_infoA | Full state of a Robinhood Stock Token: metadata, the corporate-action multiplier, raw vs multiplier-adjusted supply, and every pause flag. |
| stock_balanceA | Balance of a Stock Token, reported BOTH raw and multiplier-adjusted. After any corporate action these differ, and the adjusted figure is the one representing economic exposure — reading balanceOf alone is the standard integration bug. |
| check_corporate_actionA | Check for a scheduled dividend or split on a Stock Token: the pending multiplier, when it takes effect, and how it will change holdings. Balances will not move — the multiplier does. |
| check_address_blockedA | Check whether an address is blocked by the Stock Token AccessControlsRegistry. Blocked addresses cannot transfer, so a transfer that looks fine will revert. |
| stock_token_registryB | The Stock Token AccessControlsRegistry: address, pause state, and its role. It also serves as the EIP-1967 beacon behind every Stock Token proxy. |
| list_stock_tokensA | Find genuine Robinhood Stock Tokens by scanning explorer-indexed tokens and keeping only those implementing uiMultiplier(). There is no on-chain enumeration, so this is a scan, not a registry read. |
| stock_token_termsC | Legal terms URI published on-chain by a Stock Token. These are securities issued by Robinhood Assets (Jersey) Limited and are restricted in several jurisdictions. |
| uniswap_contractsA | Uniswap v4 deployment addresses on Robinhood Chain, each checked for deployed code. Reports which periphery contracts are actually usable. |
| uniswap_pool_idA | Compute the Uniswap v4 poolId from a PoolKey. Currencies are sorted automatically — an unsorted key yields a different, non-existent poolId, which is the usual reason a pool 'cannot be found'. |
| uniswap_pool_stateA | Read a v4 pool's slot0 via StateView: current sqrt price, tick, protocol fee and LP fee. Accepts a poolId, or a PoolKey to derive one. |
| uniswap_pool_liquidityC | Current in-range liquidity for a v4 pool. |
| uniswap_fee_growthB | Global fee growth accumulators for a v4 pool — the basis for computing accrued LP fees. |
| uniswap_find_poolB | Search for an initialised v4 pool across the standard fee tiers for a token pair, since v4 pools are not enumerable on-chain. |
| price_feed_registryA | Configuration of the PriceFeedRegistry: feed decimals, default staleness bound, and L2 sequencer-uptime protection status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ExpertVagabond/robinhood-chain-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server