# LogicNodes (remote · logicnodes.io)

Verified EVM, Aptos and finance tools for AI agents; gas for 14 chains. Pay per call (x402).

- Trust score: 61/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- remote · `logicnodes.io`: 61/100 (this document), [markdown](https://verifymcp.io/servers/io-logicnodes-tools/mcp-v2.md), [page](https://verifymcp.io/servers/io-logicnodes-tools/mcp-v2)

## Channel facts

- Endpoint: `https://logicnodes.io/mcp/v2`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 2 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 6071 tokens (~144/item across 42 items; 42 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 79/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 38% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 42 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 42 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the LogicNodes MCP server?

LogicNodes is a hosted endpoint at https://logicnodes.io/mcp/v2, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-logicnodes-tools 'https://logicnodes.io/mcp/v2'
```

### Cursor

```json
{
  "mcpServers": {
    "io-logicnodes-tools": {
      "url": "https://logicnodes.io/mcp/v2"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-logicnodes-tools": {
      "type": "http",
      "url": "https://logicnodes.io/mcp/v2"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-logicnodes-tools]
url = "https://logicnodes.io/mcp/v2"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-logicnodes-tools": {
      "type": "remote",
      "url": "https://logicnodes.io/mcp/v2",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-logicnodes-tools --url 'https://logicnodes.io/mcp/v2' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-logicnodes-tools:
    url: "https://logicnodes.io/mcp/v2"
```

### Netclaw

```json
{
  "McpServers": {
    "io-logicnodes-tools": {
      "Transport": "http",
      "Url": "https://logicnodes.io/mcp/v2"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-logicnodes-tools -t streamable-http -u 'https://logicnodes.io/mcp/v2'
```

### Other

```json
{
  "mcpServers": {
    "io-logicnodes-tools": {
      "type": "http",
      "url": "https://logicnodes.io/mcp/v2"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-23 (score 61, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-22 (score 60)

First indexed and scored.

## MCP tools (42)

### `get_gas_prices` (~163 tokens)

Get gas prices

Current gas price estimates for an EVM chain in Blocknative-compatible format (gwei). Default chain is Ethereum (1). Supported chain IDs: 1, 8453, 42161, 10, 137, 56, 43114, 59144, 534352, 324, 100, 81457, 5000, 42220.

Input parameters:

- `chainId` (integer): EVM chain ID, e.g. 1 (Ethereum), 8453 (Base). Default 1.
- `chainid` (integer): Alias of chainId (the REST spelling).
- `confidenceLevels` (array): Confidence levels to return. Default 99, 95, 90, 80, 70.

### `list_supported_chains` (~22 tokens)

List supported chains

EVM chains with live gas data, with chain IDs.

### `chain_info` (~97 tokens)

Chain info

Describes a supported chain: CAIP-2 id, display name, native currency, block explorers, and exactly which operations it supports. Omit `chain` to list every supported chain.

Input parameters:

- `chain` (string|number): CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like "base" are refused.

### `gas_estimate` (~165 tokens)

Gas / fee estimate

[PAID $0.001 USDC per call via x402] Current fee tiers for a chain as decimal strings with explicit units. EVM: confidence levels (default 99/95/90/80/70) in gwei with base fee, priority fee and max fee. Aptos: deprioritized/regular/prioritized gas unit prices in octas per gas unit. Data older than its freshness budget is an error, never a stale answer.

Input parameters:

- `chain` (string|number, required): CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like "base" are refused.
- `confidenceLevels` (array): EVM only

### `address_validate` (~124 tokens)

Validate an address

Validates an address for a chain and returns its canonical form. EVM: EIP-55 (a wrong checksum is refused, never corrected). Aptos: AIP-40 strict form. Says only what can be known offline; it never guesses what kind of account an address is.

Input parameters:

- `address` (string, required)
- `chain` (string|number, required): CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like "base" are refused.

### `token_amount_convert` (~183 tokens)

Convert token amounts

Converts between a human decimal amount and integer base units without ever rounding: too many decimals is an error. Decimals are never assumed: pass `decimals`, or an `asset` whose decimals are read from the chain (EVM: "native" or an ERC-20 token address, whose decimals() is read live from the chain; Aptos: any asset, with live decimals; an ambiguous symbol such as USDC returns AMBIGUOUS_INPUT with every option).

Input parameters:

- `amount` (string, required)
- `asset` (string)
- `chain` (string|number, required): CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like "base" are refused.
- `decimals` (integer)
- `direction` (string, required)

### `tx_status` (~116 tokens)

Transaction status

[PAID $0.001 USDC per call via x402] Whether a transaction is committed, failed, pending or not found, with a plain-English explanation. 'Not found' is reported as such and is not proof the transaction never existed.

Input parameters:

- `chain` (string|number, required): CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like "base" are refused.
- `hash` (string, required)

### `aptos_address_validate` (~175 tokens)

Validate an Aptos address

Validates an address against the Aptos address standard (AIP-40) and returns its canonical form: special addresses (0x0-0xf) as short form, all others as 0x + 64 digits. Strict by default; mode=relaxed also accepts a missing 0x or a few dropped leading zeros, and says which spelling you used (a truncated-looking address is always refused). With lookup=true it checks the chain to say whether the address is an account, an object, or neither, at one ledger version.

Input parameters:

- `address` (string, required)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `lookup` (boolean)
- `mode` (string)

### `aptos_name_resolve` (~150 tokens)

Resolve an Aptos name (.apt)

[PAID $0.001 USDC per call via x402] name -> address, or address -> primary name (give exactly one). A name resolves to its TARGET address, which can differ from its owner; a registered name with no target resolves to nothing (NOT_FOUND) and its owner is never substituted. An address's primary name is returned only if that name resolves forward to the same address, so a spoofed reverse record is never trusted.

Input parameters:

- `address` (string)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `name` (string)

### `aptos_asset_resolve` (~161 tokens)

Resolve an Aptos asset

[PAID $0.001 USDC per call via x402] Turns a symbol, registry id, fungible-asset address or coin type into one asset, with its on-chain symbol/name/decimals read live. Several different assets share the symbols USDC and USDT (Circle/Tether native vs LayerZero-bridged); those return AMBIGUOUS_INPUT with every candidate, its issuer and how to select it. Assets outside the registry are returned with verified:false, never silently trusted.

Input parameters:

- `caseSensitive` (boolean)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `query` (string, required)

### `aptos_amount_convert` (~118 tokens)

Convert an Aptos amount

Converts between a human decimal amount and integer base units, using the asset's decimals read LIVE from the chain (never assumed from a symbol). Refuses to round: more decimal places than the asset has is an error. An ambiguous symbol returns AMBIGUOUS_INPUT.

Input parameters:

- `amount` (string, required)
- `asset` (string, required)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `direction` (string, required)

### `aptos_balance_get` (~190 tokens)

Aptos balances at a ledger version

[PAID $0.002 USDC per call via x402] Balances of an address for APT and fungible assets, all read at ONE ledger version (stated, or the current one pinned). Amounts are exact integer strings plus decimal strings. Default assets: APT and every verified asset; pass `assets` (symbols, ids, addresses, coin types) to choose. An ambiguous symbol fails the whole call. An address with no account and all-zero balances is reported honestly, not as an empty account.

Input parameters:

- `address` (string, required)
- `assets` (array)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `ledgerVersion`: read the chain exactly as of this ledger version (default: the current one, pinned for consistency)

### `aptos_fee_estimate` (~152 tokens)

Aptos fee estimate

[PAID $0.005 USDC per call via x402] Gas unit price tiers (deprioritized/regular/prioritized) plus the cost of common transactions in octas, APT and USD. Gas units are MEASURED by simulating real transfers now, not taken from a table. USD comes only from two independent exchanges that agree; otherwise USD is explicitly unavailable. Transaction types: apt_transfer, apt_transfer_new_account; for anything else use aptos_tx_simulate.

Input parameters:

- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `txTypes` (array)

### `aptos_tx_simulate` (~212 tokens)

Simulate an Aptos transaction

[PAID $0.005 USDC per call via x402] Runs an UNSIGNED entry-function transaction through the node's own simulator (no key needed, nothing is submitted) and returns success or the abort decoded in plain English, exact gas and fee, balance changes, and events. Arguments are type-checked against the module ABI first. Balance changes count only the framework's Withdraw/Deposit events, so assets that re-emit them (like USDC) are never double-counted. A simulation runs against the node's current state and cannot be pinned to an older ledger version.

Input parameters:

- `arguments` (array)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `function` (string, required)
- `gasUnitPrice`
- `maxGasAmount`
- `sender` (string, required)
- `sequenceNumber`
- `typeArguments` (array)

### `aptos_tx_decode` (~149 tokens)

Decode an Aptos entry-function call

[PAID $0.002 USDC per call via x402] Explains what an entry-function payload would do, in plain English, with every argument type-checked against the module ABI and amounts shown using the asset's live decimals. Known patterns (transfers, batch transfers, key rotation, code publishing) carry a risk flag from a fixed table; no flag means 'not recognised', never 'safe'.

Input parameters:

- `arguments` (array)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `function` (string, required)
- `typeArguments` (array)

### `aptos_tx_status` (~120 tokens)

Aptos transaction status

[PAID $0.001 USDC per call via x402] Committed, failed, pending or not found for a transaction hash, with the VM status explained in plain English (Move aborts decoded to module, error name, code and category; the raw status is always included). Fee is computed from the VM's own fee statement.

Input parameters:

- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `hash` (string, required)

### `aptos_view` (~196 tokens)

Call an Aptos view function

[PAID $0.002 USDC per call via x402] Calls a Move #[view] function read-only, after checking every type argument and argument against the module's ABI: u64/u128/u256 must be decimal strings, vector<u8> a 0x hex string, Option<T> written {"vec":[]} or {"vec":[value]}, addresses in AIP-40 form. A wrong argument is a specific error from us, never an opaque node error. Optionally reads at a stated ledger version.

Input parameters:

- `arguments` (array)
- `chain` (string): Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)
- `function` (string, required)
- `ledgerVersion`: read the chain exactly as of this ledger version (default: the current one, pinned for consistency)
- `typeArguments` (array)

### `decimal_calc` (~133 tokens)

Exact decimal arithmetic

Add, subtract, multiply, divide, raise to an integer power, compare, or take a percentage, on decimal STRINGS with exact arithmetic (no floating point). The result is rounded only to the scale and rule you choose, and the response says whether rounding changed the value. JSON numbers are refused because they lose precision. Division by zero is an error.

Input parameters:

- `a` (string, required)
- `b` (string, required)
- `op` (string, required)
- `rounding` (string): rounding rule; default half_up (ties away from zero). half_even is banker's rounding
- `scale` (integer)

### `slippage_bounds` (~104 tokens)

Slippage bounds in base units

[PAID $0.001 USDC per call via x402] From a quoted amount in base units (integer string) and a slippage tolerance in basis points, computes the minimum you should accept (min_out, rounded down) or the maximum you should pay (max_in, rounded up). Integer arithmetic only; the rounding direction is stated.

Input parameters:

- `amount` (string, required)
- `direction` (string, required)
- `slippageBps` (integer, required)

### `swap_price_impact` (~125 tokens)

Constant-product swap output and price impact

[PAID $0.001 USDC per call via x402] For a Uniswap-V2-style pool, computes the exact output of a swap (the router's integer formula), the total cost versus the spot price including the fee, and the part due to trade size alone, in basis points. Inputs are reserves and amounts in base units. Does not know any pool: you supply the reserves.

Input parameters:

- `amountIn` (string, required)
- `feeBps` (integer)
- `reserveIn` (string, required)
- `reserveOut` (string, required)

### `money_calc` (~181 tokens)

Currency-aware money math

[PAID $0.001 USDC per call via x402] Rounds, adds, subtracts, multiplies, or splits an amount of an ISO 4217 currency, using that currency's real number of minor units (JPY 0, USD 2, KWD 3). A currency not in the list is refused, never assumed to have 2 decimals. split divides a total into equal parts or by ratios so the parts always add back to the total exactly.

Input parameters:

- `amount` (string, required)
- `currency` (string, required)
- `factor` (string)
- `op` (string, required)
- `other` (string)
- `parts` (integer)
- `ratios` (array)
- `rounding` (string): rounding rule; default half_up (ties away from zero). half_even is banker's rounding

### `interest_calc` (~143 tokens)

Simple and compound interest

[PAID $0.001 USDC per call via x402] Exact simple or compound interest for a principal, an annual percentage rate and a term in years, compounded annually, semiannually, quarterly, monthly, weekly or daily. The number of periods must be whole; fractional periods are refused, not approximated. Also returns the effective annual rate.

Input parameters:

- `compounding` (string, required)
- `principal` (string, required)
- `ratePercent` (string, required)
- `rounding` (string): rounding rule; default half_up (ties away from zero). half_even is banker's rounding
- `scale` (integer)
- `years` (string, required)

### `loan_calc` (~123 tokens)

Level-payment loan

[PAID $0.001 USDC per call via x402] Monthly payment, total interest and total paid for a fixed-rate amortizing loan, in exact arithmetic. The payment is rounded once to the currency scale and the final payment absorbs the rounding so the balance ends at exactly zero.

Input parameters:

- `annualRatePercent` (string, required)
- `principal` (string, required)
- `rounding` (string): rounding rule; default half_up (ties away from zero). half_even is banker's rounding
- `scale` (integer)
- `termMonths` (integer, required)

### `unit_convert` (~129 tokens)

Exact unit conversion

Converts length, mass, volume, time, data, energy, area, speed and temperature using exact definitions (an inch is exactly 0.0254 m). Ambiguous names (oz, gal, pt, KB) return AMBIGUOUS_INPUT with the choices instead of picking one. Reports whether the result is exact or rounded.

Input parameters:

- `from` (string, required)
- `rounding` (string): rounding rule; default half_up (ties away from zero). half_even is banker's rounding
- `scale` (integer)
- `to` (string, required)
- `value` (string, required)

### `address_format_check` (~108 tokens)

Cross-chain address format check

Checks whether a string is a well-formed address for EVM (EIP-55 checksum), Solana, Aptos (AIP-40) or Bitcoin (base58check, bech32, bech32m). With family "auto" it lists every family the string could be, and never picks one. A valid format is not evidence an address is safe, owned, or the one you meant.

Input parameters:

- `address` (string, required)
- `family` (string, required)

### `time_convert` (~91 tokens)

Time zone conversion

Converts an ISO 8601 instant, or a local time plus its IANA zone, to another IANA zone. A local time skipped by a daylight-saving jump is refused; one that occurs twice returns AMBIGUOUS_INPUT with both instants. Zone abbreviations such as EST are refused.

Input parameters:

- `fromZone` (string)
- `time` (string, required)
- `toZone` (string, required)

### `business_days` (~120 tokens)

Business-day arithmetic

[PAID $0.001 USDC per call via x402] Counts business days between two dates, adds business days to a date, or tests whether a date is a business day. Weekends are configurable. NO holidays are assumed: pass the holidays you want observed. Dates are calendar dates (YYYY-MM-DD) with no time zone.

Input parameters:

- `days` (integer)
- `from` (string, required)
- `holidays` (array)
- `op` (string, required)
- `to` (string)
- `weekend` (string)

### `evm_balance` (~213 tokens)

EVM balances at one block

[PAID $0.002 USDC per call via x402] Native and ERC-20 balances of an address, ALL read at one stated block (number and hash returned). Token decimals are read from the token contract, never assumed; an address with no code, or a contract that is not a standard ERC-20, is an error and is never reported as a zero balance. Amounts are exact strings.

Input parameters:

- `address` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `assets` (array): "native" and/or token contract addresses; default ["native"]
- `block` (string): "latest" (default), "safe", "finalized", or a decimal block number. Every value in the answer is read at this one block
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.

### `evm_nonce` (~149 tokens)

EVM account nonce

[PAID $0.001 USDC per call via x402] The transaction count of an address at one stated block. Pending-pool transactions are not counted, and the answer says so.

Input parameters:

- `address` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `block` (string): "latest" (default), "safe", "finalized", or a decimal block number. Every value in the answer is read at this one block
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.

### `evm_block` (~138 tokens)

EVM block summary

[PAID $0.001 USDC per call via x402] Number, hash, timestamp, base fee (gwei), gas used/limit and transaction count of one block. Use block "finalized" for a block that can no longer reorganize.

Input parameters:

- `block` (string): "latest" (default), "safe", "finalized", or a decimal block number. Every value in the answer is read at this one block
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.

### `evm_tx_receipt` (~114 tokens)

EVM transaction receipt

[PAID $0.002 USDC per call via x402] Status (success / reverted / pending), block, gas used and the exact fee in wei and native units for a transaction hash. 'Not found' is reported as such and is not proof the transaction never existed.

Input parameters:

- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
- `hash` (string, required)

### `evm_token_metadata` (~172 tokens)

ERC-20 token metadata

[PAID $0.002 USDC per call via x402] Name, symbol, decimals and total supply of an ERC-20 read from its contract at one block. Handles tokens whose name/symbol are bytes32. If decimals() is missing, it is an error: decimals are never assumed.

Input parameters:

- `block` (string): "latest" (default), "safe", "finalized", or a decimal block number. Every value in the answer is read at this one block
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
- `token` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)

### `evm_allowance` (~208 tokens)

ERC-20 allowance

[PAID $0.002 USDC per call via x402] How much a spender may take from an owner for a token, at one block, in exact base units and human units, flagging 'unlimited' approvals.

Input parameters:

- `block` (string): "latest" (default), "safe", "finalized", or a decimal block number. Every value in the answer is read at this one block
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
- `owner` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `spender` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `token` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)

### `evm_contract_type` (~192 tokens)

Classify an EVM address

[PAID $0.003 USDC per call via x402] Says what is at an address using on-chain evidence: empty account, EIP-7702 delegated account, EIP-1167 minimal proxy, EIP-1967 proxy (with implementation and admin), Safe wallet (with owners and threshold), or other contract. Each classification lists the evidence. It is not a safety verdict.

Input parameters:

- `address` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `block` (string): "latest" (default), "safe", "finalized", or a decimal block number. Every value in the answer is read at this one block
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.

### `evm_logs` (~156 tokens)

EVM event logs (bounded)

[PAID $0.003 USDC per call via x402] Logs emitted by one contract in a block range of at most 2000 blocks, optionally filtered by topics. Refuses (rather than truncates) when more than 1000 logs match, so an answer is always complete.

Input parameters:

- `address` (string, required): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
- `fromBlock` (string, required)
- `toBlock` (string, required)
- `topics` (array)

### `evm_calldata_decode` (~124 tokens)

Decode calldata with your ABI

[PAID $0.001 USDC per call via x402] Decodes transaction calldata against an ABI that YOU supply and returns the function, its signature and each argument. If the selector is not in your ABI it says so and lists the selectors it does have; it does not guess from a selector database. An ABI that does not belong to the target contract can decode to plausible nonsense.

Input parameters:

- `abi` (array, required): JSON ABI objects, or human-readable signatures such as "function transfer(address to, uint256 amount)"
- `data` (string, required)

### `evm_log_decode` (~112 tokens)

Decode an event log with your ABI

[PAID $0.001 USDC per call via x402] Decodes one event log (its topics and data) against an ABI that YOU supply and returns the event name and arguments. If no event in your ABI matches topic0 it says so rather than guessing from a database of known events.

Input parameters:

- `abi` (array, required): JSON ABI objects, or human-readable signatures such as "function transfer(address to, uint256 amount)"
- `data` (string, required)
- `topics` (array, required)

### `payment_verify` (~222 tokens)

Verify a token payment from a receipt

[PAID $0.002 USDC per call via x402] Given a transaction hash, lists the ERC-20 transfers in its receipt and, if you give expectations (payee, asset, amount, payer), says whether a successful transaction contains a matching transfer. Use it to check an x402 or other USDC payment. A match proves tokens moved; it does not prove what the payment was for.

Input parameters:

- `amount` (string): base units
- `asset` (string): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
- `hash` (string, required)
- `payTo` (string): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)
- `payer` (string): 0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)

### `random_from_block` (~137 tokens)

Verifiable randomness from a finalized block

[PAID $0.002 USDC per call via x402] Deterministic, publicly recomputable random integers derived from a FINALIZED block hash and a salt. Refuses a block that is not yet final. Not secret and not for cases where the salt can be chosen after seeing the block.

Input parameters:

- `block` (string, required)
- `chain` (string, required): EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.
- `count` (integer, required)
- `max` (integer, required)
- `salt` (string, required)

### `erc8004_agent` (~96 tokens)

ERC-8004 agent identity

Reads an agent from the ERC-8004 identity registry on Base: its owner address and the registration URI it points to, at one stated block. The URI is reported, not fetched (fetching arbitrary URLs for you is not this tool's job). An id that was never minted is NOT_FOUND.

Input parameters:

- `agentId` (string, required): ERC-8004 agent id (decimal string)
- `block` (string)

### `erc8004_reputation` (~133 tokens)

ERC-8004 reputation evidence

Summarises the feedback posted about an agent in the ERC-8004 reputation registry on Base, at one block: number of distinct clients, number of feedback entries, the registry's own summary value, and each client's latest entry (value, tags, revoked). It is EVIDENCE, not a verdict: anyone can post feedback from any address, so many clients is not proof of many people, and tag text is free text written by the client (shown as untrusted).

Input parameters:

- `agentId` (string, required): ERC-8004 agent id (decimal string)
- `block` (string)

### `evm_spend_report` (~155 tokens)

Wallet token spend report (CSV)

[PAID $0.005 USDC per call via x402] Every transfer of one ERC-20 token out of (or into) a wallet across a block range of up to 20,000 blocks, with exact amounts, per-counterparty totals, per-UTC-day totals, and an accounting CSV. Reads public chain data only. The range is queried in full 2000-block pieces and the report refuses (rather than truncates) when more than 2000 transfers match.

Input parameters:

- `chain` (string, required)
- `direction` (string)
- `fromBlock` (string, required)
- `toBlock` (string, required)
- `token` (string, required)
- `wallet` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-logicnodes-tools/mcp-v2#diagnostics

## Score history

- 2026-10-23: 61
- 2026-10-22: 60

## Common questions

### What is the LogicNodes MCP server?

LogicNodes is an MCP server listed in the public MCP registry as io.logicnodes/tools. Verified EVM, Aptos and finance tools for AI agents; gas for 14 chains. Pay per call (x402). This page covers its hosted endpoint (https://logicnodes.io/mcp/v2).

### Is the LogicNodes MCP server safe to use?

LogicNodes scores 61 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the LogicNodes MCP server expose?

LogicNodes exposes 42 tools: get_gas_prices, list_supported_chains, chain_info, gas_estimate, address_validate, and 37 more. Their descriptions and schemas cost roughly 6,071 tokens of context every time the server is loaded.

### Does the LogicNodes MCP server require authentication?

No. We connected to LogicNodes without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the LogicNodes MCP server still maintained?

LogicNodes is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://logicnodes.io/mcp/v2
- Website: https://logicnodes.io/
- Changelog RSS feed: https://verifymcp.io/servers/io-logicnodes-tools/mcp-v2.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-logicnodes-tools/mcp-v2.json
- HTML version of this page: https://verifymcp.io/servers/io-logicnodes-tools/mcp-v2
