# Agent Data Tools > 569 pay-per-call tools for AI agents over HTTP or MCP, from $0.002 a call, most at $0.01. Every caller gets 25 free calls; then pay per call in USDC via x402 (Base, Polygon, Arbitrum, Solana) or by card with prepaid credits from /credits. No account needed; failed calls are never charged; per-tool reliability is public at /status. Crypto: token prices and wallet portfolios from Uniswap v3, chain reads on Base, Ethereum, Arbitrum, Optimism and Polygon, OFAC sanctions screening. Web: Read public static documentation, pages, PDFs and RSS feeds as clean text, plus link previews and sitemaps. Business: company profiles, domain and email checks. Also Bitcoin, FX, weather, holidays, geocoding, AI text, and JSON, date and validation utilities. All endpoints are GET (a POST with a flat JSON body of the same inputs works too), return JSON, and cost a fixed price per successful call. An unpaid request returns HTTP 402 with a PAYMENT-REQUIRED header (x402 v2, exact scheme, USDC on Base) and a WWW-Authenticate: Payment challenge (MPP: evm/charge with USDC on Base, or tempo/charge with USDC.e on Tempo). Pay with x402 (sign and retry with PAYMENT-SIGNATURE) or with MPP (an mppx client answers the challenge in Authorization: Payment; the receipt comes back in Payment-Receipt). With mppx, tempo({ account }) pays the Tempo challenge as is; the evm method needs the token named, because a challenge cannot carry its EIP-712 name: charge({ account, currencies: [assets.base.USDC], networks: [8453] }) from mppx/evm/client. Failed calls (4xx/5xx) are not charged on either path. Free calls: every caller gets 25 free successful calls (failed calls do not count). Over MCP they are used automatically before any payment; over HTTP add trial=1 to a GET request. Not for the AI, rendering, screenshot, transcription and search tools, and at most 2,000 free calls a day in total. When they run out, a card key from /credits continues the same URLs (api_key=adt_… in the URL for clients that cannot set headers). The operator can switch this off. Guides by job (what to call, the request in every way an agent can make it): PDF to text API: https://tools.funwords.eu/guides/pdf-to-text-api.md; URL to Markdown API: https://tools.funwords.eu/guides/url-to-markdown-api.md; OFAC wallet screening API: https://tools.funwords.eu/guides/ofac-wallet-screening-api.md; News headlines API: https://tools.funwords.eu/guides/news-headlines-api.md; Describe image API: https://tools.funwords.eu/guides/describe-image-api.md; Chat completions API, pay per call: https://tools.funwords.eu/guides/chat-completions-api.md; Token price API: https://tools.funwords.eu/guides/token-price-api.md; Web search API, pay per call: https://tools.funwords.eu/guides/web-search-api.md; Weather forecast API: https://tools.funwords.eu/guides/weather-forecast-api.md; Company lookup API: https://tools.funwords.eu/guides/company-lookup-api.md; Email verification API: https://tools.funwords.eu/guides/email-verification-api.md; Domain WHOIS and DNS lookup API: https://tools.funwords.eu/guides/domain-whois-dns-lookup-api.md; Wallet balance API, multi-chain: https://tools.funwords.eu/guides/wallet-balance-api.md; Gas price API: https://tools.funwords.eu/guides/gas-price-api.md; SEC filings API: https://tools.funwords.eu/guides/sec-filings-api.md; Hyperliquid funding rate API: https://tools.funwords.eu/guides/hyperliquid-funding-rate-api.md; Currency exchange rate API: https://tools.funwords.eu/guides/currency-exchange-rate-api.md; Public holidays API: https://tools.funwords.eu/guides/public-holidays-api.md; Website screenshot API: https://tools.funwords.eu/guides/website-screenshot-api.md; Speech to text API: https://tools.funwords.eu/guides/speech-to-text-api.md; Text embeddings API: https://tools.funwords.eu/guides/text-embeddings-api.md; Sitemap parser API: https://tools.funwords.eu/guides/sitemap-parser-api.md; Crypto fear and greed index API: https://tools.funwords.eu/guides/crypto-fear-and-greed-index-api.md; Bitcoin fee estimate API: https://tools.funwords.eu/guides/bitcoin-fee-estimate-api.md; Token honeypot check API: https://tools.funwords.eu/guides/token-honeypot-check-api.md; New DEX pools API, new token pairs: https://tools.funwords.eu/guides/new-dex-pools-api.md; Host a web page API for AI agents: https://tools.funwords.eu/guides/host-web-page-api.md. Index: https://tools.funwords.eu/guides. No USDC wallet? Pay by card instead: buy prepaid credits at https://tools.funwords.eu/credits ($1 = 1,000 credits, $5 = 5,000, $20 = 22,000, $100 = 125,000; 1 credit = $0.001, the same prices as x402). You get an API key; send it as `Authorization: Bearer adt_…` or `X-API-Key` on any tool call or on the MCP server, or as `api_key=adt_…` in the tool URL when your client can only fetch a URL, and no x402 payment is needed. Failed calls are refunded. Balance: https://tools.funwords.eu/credits/balance. A key that travels in URLs can end up in logs; rotate it at POST https://tools.funwords.eu/credits/rotate if it was shared. Start here: https://tools.funwords.eu/guides/web-reading.md (static web reading, capped HTTP and x402-capable MCP examples, $0.002 per call). Bitcoin fees: https://tools.funwords.eu/guides/bitcoin-fees.md ($0.002). OpenAI-compatible chat: POST https://tools.funwords.eu/v1/chat/completions with the usual {"messages":[...]} body (model @cf/meta/llama-3.1-8b-instruct-fp8, no streaming), same price and payment paths as /ai/chat ($0.002); model "llama-3.3-70b" or "gpt-oss-120b" routes to /ai/chat-large ($0.01); POST https://tools.funwords.eu/v1/embeddings (one input string, BGE-M3, 1,024 dimensions) is the same front for /ai/embed ($0.01). POST https://tools.funwords.eu/v1/responses takes the OpenAI Responses shape (input, instructions, max_output_tokens) for the same models and prices. GET https://tools.funwords.eu/v1/models is free. Each of the three also answers GET with the same inputs in the query (prompt= or input=, plus system/instructions, model, max_tokens, temperature) for clients that cannot POST. Proven recipe with the official SDK: new OpenAI({ baseURL: "https://tools.funwords.eu/v1", apiKey: "x402", fetch: wrapFetchWithPayment(fetch, client) }) with the @x402/fetch client from the example below; or set apiKey to a card-credit key (adt_…) from https://tools.funwords.eu/credits and no wrapper is needed. Smaller answers: add only= to any tool (for example /btc-fees?only=fastestFee); unknown keys are ignored and no match returns the full result. Local MCP adapter: https://tools.funwords.eu/guides/local-mcp.md; download https://tools.funwords.eu/clients/reader/1.7.6/reader-mcp.mjs. Quotes only by default; explicit paid mode requires a bounded session allowance and per-call maxUsdc. No automatic retries. Portable buyer skill: https://tools.funwords.eu/skills/spellzcode-x402-reader/SKILL.md. Read https://tools.funwords.eu/skills/index.json for installation context; publishing it does not install or authorize spending. Read a specific HTML heading/container with optional section= on /extract, --section on the CLI, or section in local/remote MCP. Scope is explicit in result.section. URL fragments alone do not select. Missing/ambiguous targets fail before settlement. Cached proof: https://tools.funwords.eu/examples/extract/section-result.json. Discover documentation URLs first: https://tools.funwords.eu/guides/sitemap.md. The current standalone client supports quote-sitemap and buy-sitemap with --contains, --max-urls and --offset; each explicit buy remains capped at $0.002. Secondary Bitcoin fee-data entry: node reader-client.mjs quote-btc-fees, then an authorized buy-btc-fees --max-usdc 0.002. No URL or Bitcoin key. Local MCP uses btc_fees_quote/btc_fees_buy under the same process cap as reader/sitemap calls. This buys data in Base USDC, never sends Bitcoin. Guide: https://tools.funwords.eu/guides/bitcoin-fees.md. Dependency audit buying guide: https://tools.funwords.eu/guides/dependency-audit.md (up to 10 pinned package versions, $0.01 USDC per successful request; dedicated capped client included). ## Buy a static page with the standalone Node CLI Download: https://tools.funwords.eu/clients/reader/1.7.6/reader-client.mjs Verify just the CLI download: https://tools.funwords.eu/clients/reader/1.7.6/reader-client.mjs.sha256. Instructions: https://tools.funwords.eu/guides/web-reading.md. The complete SHA256SUMS list covers all artifacts and requires those files when checked in full. Inspect real cached outputs first: https://tools.funwords.eu/examples/extract/manifest.json (demonstrations, not customer receipts). Requires Node.js 20.19 or newer. No package installation or TypeScript required. ```sh node reader-client.mjs quote https://example.com --format both node reader-client.mjs buy https://example.com --max-usdc 0.002 --format both ``` Quote needs no key and never signs. Buy requires an existing funded Base wallet via X402_PRIVATE_KEY and an explicit positive cap of at most 0.002 USDC. Both support --format text|markdown|both and --max-chars 500..100000. The client pins this service, recipient, native Base USDC and exact payment terms. At most one authorization per invocation; never automatically retry an unknown payment outcome. Keys remain on the buyer device. Static public HTML/plain text only; no JavaScript rendering, login or paywall access. Input limit 2 MiB, default output 20,000 characters with explicit truncation. Ordinary MCP discovery does not pay automatically. ## Advanced TypeScript x402 client The example below pins Base, this service's PAY_TO recipient and Base USDC, and caps each payment at $0.01, the ordinary per-call price, so it pays for every tool priced at $0.01 or less (/extract costs $0.002). Most tools cost $0.01; packs cost $0.03 and /dex/new-pools $0.05, so raise the cap to call those. It never sends trial=1. Install with `npm install @x402/fetch @x402/evm viem` and `npm install --save-dev typescript tsx @types/node`. Save as `client.ts` and run `npx tsx client.ts`. Set `X402_PRIVATE_KEY` in a secret manager or process environment; never paste it into source or commit it. ```typescript // Save as client.ts; set X402_PRIVATE_KEY in your environment, never in source. import { ExactEvmScheme } from "@x402/evm"; import { wrapFetchWithPayment, x402Client } from "@x402/fetch"; import { privateKeyToAccount } from "viem/accounts"; const rawPrivateKey = process.env.X402_PRIVATE_KEY; if (!rawPrivateKey || !/^0x[0-9a-fA-F]{64}$/.test(rawPrivateKey)) { throw new Error("Set X402_PRIVATE_KEY in a secret manager or process environment."); } const account = privateKeyToAccount(rawPrivateKey as `0x${string}`); const serviceOrigin = "https://tools.funwords.eu"; const expectedPayTo = "0x2074c40346ae2a90e0e4a391bcee6f16bf5277f5"; const baseUsdc = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"; const maxUsdcAtomic = 10000n; // $0.01 USDC, the ordinary per-call price (/extract costs $0.002) const client = new x402Client() .register("eip155:8453", new ExactEvmScheme(account)) .setSpendControls({ maxAmountPerPayment: "$0.01" }) .registerPolicy((_version, requirements) => requirements.filter((requirement) => { if (requirement.network !== "eip155:8453" || requirement.scheme !== "exact") return false; if (requirement.payTo.toLowerCase() !== expectedPayTo) return false; if (requirement.asset.toLowerCase() !== baseUsdc.toLowerCase()) return false; return /^\d+$/.test(requirement.amount) && BigInt(requirement.amount) <= maxUsdcAtomic; }), ); const fetchWithPayment = wrapFetchWithPayment(fetch, client); const response = await fetchWithPayment(new URL("/extract?url=https%3A%2F%2Fexample.com", serviceOrigin)); if (!response.ok) throw new Error(`API returned HTTP ${response.status}`); console.log(await response.json()); ``` ## Start here - GET https://tools.funwords.eu/ai/chat ($0.002): Chat completions (LLM): Llama 4 Scout - GET https://tools.funwords.eu/ai/chat-large ($0.01): LLM inference, large model: Llama 3.3 70B or gpt-oss-120b - GET https://tools.funwords.eu/ai/embed ($0.01): OpenAI compatible embeddings: BGE-M3, 1,024 dimensions - GET https://tools.funwords.eu/transcribe ($0.01): Speech to text, transcribe audio: Whisper transcription of an audio file - GET https://tools.funwords.eu/ai/speech ($0.01): Text to speech (TTS): turn text into an audio file - GET https://tools.funwords.eu/image ($0.01): Image generation, generate image from a text prompt: create a picture from a description with an AI image model - GET https://tools.funwords.eu/describe ($0.01): Describe image, ask about it: ask what is in an image or photo at a URL and get a text description or answer - GET https://tools.funwords.eu/search ($0.01): Web search results: search the web for a query and get the top pages with title, URL and snippet as JSON - GET https://tools.funwords.eu/pack/web-research ($0.03): Web research: search and read the top pages - GET https://tools.funwords.eu/news ($0.01): News headlines, latest news: search current news articles (Brave) - GET https://tools.funwords.eu/ai/summarize-text ($0.01): Summarize text: shorten long text into a few sentences and key points - GET https://tools.funwords.eu/ai/translate ($0.01): Translate text, translation API: translate text into another language, about 100 languages ## Endpoints ### Prices and DeFi #### GET /token-report — $0.01 Check a Base token before you swap into it: a high/medium/low risk verdict with named red flags (paused transfers, blacklist, owner-set fees or tax, a mint selector with a live owner, upgradeable proxy, no or thin liquidity, a pair under 7 days old, buys but no sells as a honeypot sign) plus live DexScreener price, liquidity, volume and FDV. Heuristic screening, not a safety guarantee. Use before swapping into an unfamiliar Base token. Details: One call for a Base token: heuristic risk tier and flags, on-chain owner/paused/proxy facts and selector checks, plus live DEX price, 24h volume/change, liquidity, FDV, pair count, top-liquidity-pair age and 24h buys/sells. marketDataSource identifies DexScreener; marketRetrievedAt is the retrieval timestamp or null when market data is unavailable. Example market values and timestamp are illustrative. A mint selector is not proof of callable minting; mintability is reported only with a confirmed nonzero owner, otherwise unverified. Flags no-liquidity, thin liquidity, new top pairs and no-sell patterns. Not a guarantee. - `address` (string, required): Token contract address on Base (0x...) Example: https://tools.funwords.eu/token-report?address=0x4200000000000000000000000000000000000006 #### GET /token — $0.01 Base only (other chains: _token_info). Live on-chain facts for an ERC-20 token on Base: name, symbol, decimals, total supply, owner and whether ownership is renounced, paused state, proxy detection (EIP-1967, minimal proxy) with implementation and admin, and bytecode heuristics for mint, pause, blacklist and fee-setter functions. Use for token due diligence and rug-pull or honeypot screening before a swap. - `address` (string, required): Token contract address on Base (0x...) Example: https://tools.funwords.eu/token?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /wallet-audit — $0.01 Screen a Base address for fresh or throwaway-wallet signals: a high/medium/low heuristic risk tier with named flags (no or one outgoing transaction, a near-empty balance with few transactions), plus ETH, USDC, WETH, cbBTC and DAI balances and the account nonce. Address type is reported separately and does not affect the tier; token contracts are not audited. Use to screen a Base address; OFAC and other chains: check_counterparty. - `address` (string, required): Base chain wallet address, 0x-prefixed 20-byte hex Example: https://tools.funwords.eu/wallet-audit?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /contract-risk — $0.01 Check a Base contract before you approve or call it: a low to critical risk tier with named flags (proxy, proxy with no implementation, tiny bytecode, zero token supply), plus bytecode size, the EIP-1967 implementation slot and ERC-20 owner, renounced and paused reads. Unreadable reads are null; EOAs return not-applicable. Limited heuristics, not a full security audit. Use before approving a spender or calling an unfamiliar Base contract. Details: Base contract bytecode size and EIP-1967 slot check (a confirmed zero slot returns isProxy false; an empty/unreadable slot response returns null; RPC failures return 502). A nonzero slot with a zero implementation flags proxy-impl-unset. ERC-20 property reads run only for 500–50,000-byte contracts; individual unsupported/reverting reads are null, while multicall transport failures return 502. Zero supply requires a successful zero read; ownershipRenounced is true only for zero owner, false for nonzero, else null; paused is null if unsupported. Risk tiers are limited bytecode/proxy/zero-supply heuristics, not a full audit; empty slots cannot identify uninitialized proxies. EOAs return not-applicable. - `address` (string, required): Base chain contract address, 0x-prefixed 20-byte hex Example: https://tools.funwords.eu/contract-risk?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /liquidity-pool-audit — $0.01 Check a Base DEX pool before you trade: give a pair address and get the verified DEX, both tokens, reported liquidity, 24h volume and trades, and pair age from DexScreener, or read on Base when it is unavailable, with source and retrieval time. Missing fields are null; an unknown pair returns 404. Market data only, no risk assessment. Use to confirm a pair is real and deep enough before trading; token red flags: token_report. Details: Looks up a pair address on Base through DexScreener and returns the verified DEX, pair URL, token details, liquidity, volume, 24-hour trades, and pair age when supplied by the source. source identifies DexScreener and retrievedAt is the retrieval timestamp. Missing source fields are null; this endpoint does not assess pool security or investment risk. When DexScreener is unavailable, source is Base on-chain: the tokens and DEX (by factory) are read from the pool contract, liquidityUsd is twice the balance of a USD-stablecoin side (null otherwise), and price, volume, trades and age are null. Returns 404 when no matching Base pair is found. Example market values and timestamp are illustrative snapshots, not live guarantees. - `address` (string, required): DEX pair address on Base, 0x-prefixed 20-byte hex Example: https://tools.funwords.eu/liquidity-pool-audit?address=0x98c7A2338336d2d354663246F64676009c7bDa97 #### GET /price/token — $0.01 Token price in USD for a crypto token by symbol (ETH, BTC, USDC, AERO, ARB, OP, LINK…), coin name, CoinGecko id or ERC-20 0x address on Base, Ethereum, Arbitrum or Optimism, from the deepest Uniswap v3 pool against USDC or WETH, read live. Returns the pool, fee tier, quote reserve and a thin-liquidity flag. Spot price, not a time average. No pool returns 404, uncharged. Use to value a token or check a quote before a swap or payment. - `symbol` (string): Ticker such as ETH, BTC, USDC, AERO, ARB, OP or LINK (instead of address; ETH and BTC mean the wrapped tokens) - `address` (string): 0x ERC-20 token contract address (instead of symbol) - `chain` (string): Network: base (default), eth, arb or op Example: https://tools.funwords.eu/price/token?symbol=ETH #### GET /price/tokens — $0.005 USD prices for up to 20 crypto tokens in one call, by ticker (ETH, BTC, USDC, AERO…) or ERC-20 0x address, on Base, Ethereum, Arbitrum or Optimism, each from its deepest Uniswap v3 pool against USDC or WETH, read live from the chain, with pool, reserve and a thin-liquidity flag. Tokens without a pool are listed under unpriced instead of failing the call. Spot prices. Use to value a basket of tokens or refresh a watchlist in one paid call. - `symbols` (string): Comma-separated tickers such as ETH,BTC,AERO (with or instead of addresses; 1-20 tokens in all) - `addresses` (string): Comma-separated 0x ERC-20 token addresses (with or instead of symbols; 1-20 tokens in all) - `chain` (string): Network: base (default), eth, arb or op Example: https://tools.funwords.eu/price/tokens?symbols=ETH%2CBTC%2CAERO #### GET /wallet/portfolio — $0.005 USD value of a wallet on Base, Ethereum, Arbitrum or Optimism: native ETH plus major tokens (USDC and WETH everywhere, the common Base tokens on Base) and up to 20 tokens you add, each priced from its deepest Uniswap v3 pool, read live from the chain. Returns holdings, total and anything that could not be priced. Not a full token inventory. Use to check what a wallet is worth before trading, lending or paying. - `address` (string, required): 0x wallet address - `chain` (string): Network: base (default), eth, arb or op - `tokens` (string): Optional extra comma-separated 0x token addresses (up to 20) Example: https://tools.funwords.eu/wallet/portfolio?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /hyperliquid/market — $0.01 Live Hyperliquid perpetual futures data for a coin (BTC, ETH, SOL, HYPE…): mark, oracle and mid price, hourly funding rate and its APR, premium, open interest in coins and USD, 24-hour volume and price change, and max leverage. Without a coin, the 20 most traded markets by 24-hour volume. Read from Hyperliquid's public API. Use for funding-rate checks, basis trades, derivatives dashboards and market context. - `coin` (string): Coin symbol such as BTC, ETH, SOL or HYPE (default: the 20 most traded markets) Example: https://tools.funwords.eu/hyperliquid/market?coin=BTC #### GET /pack/token-analysis — $0.03 One call to analyse an ERC-20 token: name, symbol, decimals and supply, USD price from the deepest Uniswap v3 pool, whether it is an upgradeable proxy and who can upgrade it, and on Base the honeypot and contract risk checks (paused transfers, blacklist, owner fees, mint rights, liquidity). Give a ticker or 0x address and the network (base, eth, arb, op or polygon). Use before buying, listing or accepting an unknown token. - `token` (string, required): Token: a ticker such as USDC or a 0x ERC-20 contract address - `chain` (string): Network: base (default), eth, arb, op or polygon Example: https://tools.funwords.eu/pack/token-analysis?token=0x4200000000000000000000000000000000000006 #### GET /pack/crypto-market — $0.03 Market sentiment, prices and signals in one call: the Fear & Greed index with its 7-day change (alternative.me, attributed), the 10 most traded Hyperliquid perpetuals with price, 24-hour change, funding and open interest, technical readings (RSI, MACD, moving averages) for up to three coins, and Bitcoin fee rates. Cheaper than the five tools bought one by one. Use for a daily market brief, a trading agent's context or a dashboard. - `coins` (string): Up to 3 coins for technical readings, comma separated (default BTC,ETH,SOL) Example: https://tools.funwords.eu/pack/crypto-market?coins=BTC%2CETH%2CSOL #### GET /pack/coin-research — $0.03 One call to research a single coin traded on Hyperliquid (BTC, ETH, SOL, HYPE and about 200 more): price, 24-hour change, volume and open interest, the funding rate now and over the last 3 days, order-book depth and spread, technical readings on the 4-hour and daily charts (RSI, MACD, moving averages, Bollinger, volatility), and market-wide sentiment (Fear & Greed, attributed). Use before a trade or for a coin brief. - `coin` (string): Coin symbol such as BTC, ETH, SOL or HYPE (default BTC) Example: https://tools.funwords.eu/pack/coin-research?coin=ETH #### GET /btc-price — $0.01 Current Bitcoin (BTC) spot price in USD, EUR, GBP, CAD, CHF, AUD and JPY, averaged across major exchanges, with the number of satoshis per US dollar and the time of the price. Use to convert between sats and fiat, to value a Bitcoin or Lightning payment, or to check the BTC price before a trade. - `currency` (string): Optional: also price BTC in this currency; the seven listed ones come from the source, others (SEK, NOK, INR, BRL and about 25 more) are converted from USD at the ECB reference rate Example: https://tools.funwords.eu/btc-price?currency=SEK #### GET /trade-insight — $0.01 Combines the Base token-report risk tier and flags, available DEX market data, and wallet-audit risk tier, flags, account nonce, and native balance. Returns the underlying indicators separately; it does not generate buy/sell recommendations or calibrated confidence, and does not evaluate holder concentration. The account nonce is not full transaction, token-transfer, or trading history. Use as one input before a Base trade. - `token` (string, required): Token contract address on Base, 0x-prefixed 20-byte hex - `wallet` (string, required): Wallet address to evaluate, 0x-prefixed 20-byte hex Example: https://tools.funwords.eu/trade-insight?token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&wallet=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /mev-simulator — $0.01 Estimates Base gas costs from current fees and priority-fee presets. Fixed gas units (100k simple, 250k complex, 180k liquidity) are typical assumptions, not transaction-specific estimates or quotes. Valid values: standard, high-mev (3x priority fee), low-gas (half); invalid values return HTTP 400 without charge. No transaction simulation, mempool observation, or MEV/sandwich-risk measurement. Use to budget gas for a Base transaction. - `scenario` (string): One of standard, high-mev, low-gas (default: standard) Example: https://tools.funwords.eu/mev-simulator?scenario=standard #### GET /fx — $0.01 Foreign exchange rates from the European Central Bank for about 30 major currencies (USD, EUR, GBP, JPY, CHF, SEK, CAD, AUD, CNY, INR, BRL and more). Give a base currency, optionally the target currencies and an amount, and get the rates, the converted amounts and the date the rates apply to. Use for currency conversion, invoice and price calculations, and reporting in another currency. - `from` (string, required): Base currency as a three-letter ISO 4217 code, e.g. USD - `to` (string): Optional comma-separated target currency codes, e.g. EUR,GBP; default is all available currencies - `amount` (number): Optional amount of the base currency to convert (default 1) Example: https://tools.funwords.eu/fx?from=USD #### GET /token/supply — $0.01 Total supply of any ERC-20 token on Ethereum, Base, Arbitrum, Optimism or Polygon, read live from the contract: raw and decimal-adjusted supply, decimals, name and symbol. Give a 0x address or a known ticker (USDC, USDT, WETH, DAI…). Use to check a token's circulating maximum or compare supply across chains. - `token` (string, required): Token 0x address or ticker - `chain` (string): ethereum (default), base, arbitrum, optimism or polygon Example: https://tools.funwords.eu/token/supply?token=USDC #### GET /hyperliquid/orderbook — $0.01 Live order book of a Hyperliquid perpetual (BTC, ETH, SOL, HYPE…): the best bid and ask levels with price, size and order count, the mid price, the spread in USD and basis points, and the summed depth on each side. Up to 20 levels a side (default 10). Read from Hyperliquid's public API. Use to judge liquidity and slippage before a trade, or for market-making and arbitrage checks. - `coin` (string): Coin symbol such as BTC, ETH, SOL or HYPE (default BTC) - `levels` (integer): Levels per side, 1-20 (default 10) Example: https://tools.funwords.eu/hyperliquid/orderbook?coin=BTC #### GET /hyperliquid/candles — $0.01 Historical price candles (OHLCV) of a Hyperliquid perpetual such as BTC, ETH or SOL: open, high, low, close, volume in coins and trade count per bar, newest last. Intervals 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w and more; up to 500 bars (default 50). Read from Hyperliquid's public API. Use for charts, backtests, volatility and trend checks, or as context for a trading agent. - `coin` (string): Coin symbol such as BTC, ETH, SOL or HYPE (default BTC) - `interval` (string): Bar length: 1m, 3m, 5m, 15m, 30m, 1h (default), 2h, 4h, 8h, 12h, 1d, 3d or 1w - `bars` (integer): Number of bars, 1-500 (default 50) Example: https://tools.funwords.eu/hyperliquid/candles?coin=BTC #### GET /hyperliquid/funding-history — $0.01 Past hourly funding rates of a Hyperliquid perpetual (BTC, ETH, SOL…): each rate with its premium and time, plus the average rate and its annualised APR over the window. Up to 500 hours back (default 24). Read from Hyperliquid's public API. Use to compare carry over time, spot funding regime changes, or backtest basis and funding-arbitrage strategies; for the current rate use hyperliquid_market. - `coin` (string): Coin symbol such as BTC, ETH, SOL or HYPE (default ETH) - `hours` (integer): Hours of history, 1-500 (default 24) Example: https://tools.funwords.eu/hyperliquid/funding-history?coin=ETH #### GET /hyperliquid/indicators — $0.01 Technical indicators for a Hyperliquid perpetual (BTC, ETH, SOL…) on closed candles of any interval from 1m to 1w: RSI 14, MACD 12/26/9, SMA 20/50/200, EMA 12/26/50, Bollinger bands 20/2 with %B, ATR 14, annualised realised volatility, and plain readings such as overbought or above the 200 SMA. Computed from Hyperliquid's public candles. Use as context for a trading agent or a market dashboard; not investment advice. - `coin` (string): Coin symbol such as BTC, ETH, SOL or HYPE (default BTC) - `interval` (string): Candle length: 1m, 5m, 15m, 30m, 1h, 4h (default), 1d, 1w and others Example: https://tools.funwords.eu/hyperliquid/indicators?coin=BTC #### GET /hyperliquid/prices — $0.01 Current mid prices of every Hyperliquid perpetual in one call (BTC, ETH, SOL, HYPE and about 200 more), as a coin-to-price map, or only the coins you name. Read live from Hyperliquid's public API. Use for a quick price snapshot of many coins at once, portfolio marks or a price ticker; for funding and open interest use hyperliquid_market. - `coins` (string): Optional comma-separated symbols such as BTC,ETH,SOL (default: every perpetual) Example: https://tools.funwords.eu/hyperliquid/prices?coins=BTC%2CETH%2CSOL #### GET /crypto/fear-greed — $0.01 The Crypto Fear & Greed Index (0 = extreme fear, 100 = extreme greed) from alternative.me: today's value and label, the change against 1, 7 and 30 days ago, the low, high and average over the window, and the daily history (up to 90 days, default 30). Updated once a day. Use as a market-sentiment input for a trading agent, a dashboard or a daily brief; for live prices use price_token. - `days` (integer): Days of history, 1-90 (default 30) Example: https://tools.funwords.eu/crypto/fear-greed?days=30 ### Chain data #### GET /wallet/balances — $0.005 Read a wallet's native coin and USDC balances on Base, Ethereum, Arbitrum, Optimism and Polygon in one call, live from each network, plus the USDC total. Use to find where a wallet's funds are before a payment or bridge; for one token on one network use _token_balance, for all tokens on Base use wallet_portfolio. A network whose nodes do not answer is listed with an error instead of failing the call. - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/wallet/balances?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /whale/transfers — $0.01 Large stablecoin transfers in the last minutes, read live from the network: every USDC and USDT transfer of at least min USD (default 100,000) on Ethereum, Base, Arbitrum, Optimism or Polygon, largest first, with sender, receiver, transaction and block, mints and burns marked. Covers up to 15 minutes on Ethereum and 3 on Base (busiest). Addresses are not labelled. Use to watch whale flows, treasury moves or stablecoin mints. - `chain` (string): ethereum (default), base, arbitrum, optimism or polygon - `token` (string): USDC, USDT or stablecoins (both, default) - `min` (string): Smallest transfer in USD, 10000 or more (default 100000) - `minutes` (string): How far back, 1 to 15 minutes (default 5; Base covers at most 3) Example: https://tools.funwords.eu/whale/transfers?chain=ethereum #### GET /dex/new-pools — $0.05 Newest liquidity pools on Uniswap v3, Uniswap v2 and (on Base) Aerodrome, read live from the factories' PoolCreated and PairCreated events on Base, Ethereum, Arbitrum, Optimism or Polygon: pool address, both tokens with symbol and decimals, fee tier or stable flag, block, transaction and approximate age, newest first. Use to spot new token listings, watch pool launches or feed a new-pair screener; check token_report before trading. - `chain` (string): base (default), ethereum, arbitrum, optimism or polygon - `dex` (string): all (default), uniswap-v3, uniswap-v2 or aerodrome (Base only) - `blocks` (string): How many recent blocks to scan, 100 to 20000 (default 3000: about 100 minutes on Base, 10 hours on Ethereum) - `limit` (string): Most pools to return, 1 to 30 (default 20) Example: https://tools.funwords.eu/dex/new-pools?chain=base #### GET /pack/wallet-profile — $0.03 One call to profile an EVM wallet: native and USDC balances on Base, Ethereum, Arbitrum, Optimism and Polygon, transaction counts on Base and Ethereum, whether it is a contract or a plain wallet, its recent USDC transfers on Base, and an OFAC sanctions screen. Cheaper than the tools bought one by one. Use before paying, onboarding or trusting a counterparty wallet; for a single risk verdict use check_counterparty. - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/pack/wallet-profile?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /pack/tx-explain — $0.03 Explain an EVM transaction in plain words: success or revert, sender and contract, ETH value, fee, the function called (decoded for common ERC-20, ERC-721, WETH, permit and multicall calls), and every token transfer, mint, burn and approval it emitted with amounts and symbols, plus one-line summaries. Base, Ethereum, Arbitrum, Optimism or Polygon. Use to check what a payment or contract call really did before trusting it or reporting it. - `hash` (string, required): 0x transaction hash - `chain` (string): Network: base (default), eth, arb, op or polygon Example: https://tools.funwords.eu/pack/tx-explain?hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0 #### GET /pack/nft-analysis — $0.03 One call to analyse an NFT: its current owner, its metadata (name, description, image, traits from data:, https or ipfs), how many NFTs of the collection that owner holds, and the collection contract (name, symbol, whether it is an upgradeable proxy). ERC-721 on Base, Ethereum, Arbitrum, Optimism or Polygon. Cheaper than the tools bought one by one. Use before buying, listing or verifying an NFT. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number - `chain` (string): Network: eth (default), base, arb, op or polygon Example: https://tools.funwords.eu/pack/nft-analysis?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /pack/evm-toolbox — $0.03 One call that works out what an EVM value is and converts it every useful way: an address gets its EIP-55 checksum and bytes32 form; a signature its 4-byte selector and event topic; calldata is decoded (ERC-20, NFT, permit, EIP-3009); a bytes32 becomes uint256, address and units; a number converts between wei, gwei, ether (or any decimals) and hex; text gets keccak256. Local, no network. Use for building or debugging contracts and agents. - `input` (string, required): An address, signature, calldata, hex value, number or text - `decimals` (string): Token decimals for unit conversions (default 18) Example: https://tools.funwords.eu/pack/evm-toolbox?input=transfer(address%2Cuint256) #### GET /pack/gas-tracker — $0.03 One call for current gas prices on Base, Ethereum, Arbitrum, Optimism and Polygon: gas price, base fee and priority fee in gwei and what a plain transfer costs in the native coin and, for the ETH chains, in US dollars (Uniswap ETH price), sorted cheapest first, plus Bitcoin fee rates in sat/vB. Cheaper than the tools bought one by one. Use to pick the cheapest chain, time a transaction or show fees in a wallet. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/pack/gas-tracker?format=json #### GET /btc-fees — $0.002 Current Bitcoin network fee rates in sat/vB for next-block, half-hour, one-hour and economy confirmation, the estimated cost in sats of a typical payment, mempool size and total pending fees, and the latest block height. Use before sending a Bitcoin transaction or to decide whether to wait for lower fees. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/btc-fees?format=json #### GET /eth/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Ethereum at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use eth_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/eth/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /eth/gas — $0.01 Current gas price on Ethereum (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use eth_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/eth/gas?format=json #### GET /base-gas — $0.002 Live gas prices on Base (chain 8453) read from the latest block: base fee and priority fee in gwei, suggested maxFeePerGas and maxPriorityFeePerGas in wei for an EIP-1559 transaction, how full the latest block is, and the estimated execution fee in ETH for an ETH transfer and an ERC-20 transfer. Use before sending a transaction on Base or to decide whether to wait for lower fees. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/base-gas?format=json #### GET /wallet — $0.005 Base only (all 5 chains: wallet_balances; USD values: wallet_portfolio). An address on Base: ETH and major token balances (USDC, WETH, cbBTC, DAI, USDbC, cbETH, AERO, EURC) plus up to 20 token addresses you pass, the account nonce, and whether it is an EOA, a contract or an EIP-7702 account. The nonce counts outgoing transactions only; not transfer or trading history. Use to check a counterparty's holdings. - `address` (string, required): Wallet or contract address on Base (0x...) - `tokens` (string): Optional comma-separated extra ERC-20 addresses to check (max 20) Example: https://tools.funwords.eu/wallet?address=0x4200000000000000000000000000000000000006 #### GET /btc-address — $0.01 Bitcoin address balance and activity for any mainnet address (legacy, P2SH or bech32): confirmed balance in sats and BTC, unconfirmed pending amount, total received and sent, and transaction counts. Use for payment verification, checking whether a deposit arrived, and wallet monitoring. - `address` (string, required): Bitcoin mainnet address (1..., 3... or bc1...) Example: https://tools.funwords.eu/btc-address?address=bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh #### GET /ln-invoice — $0.01 Decode a BOLT11 Lightning Network invoice without paying it: network, amount in sats and BTC, description, payment hash, creation time, expiry time and whether it has already expired. Use to check what an invoice asks for before an agent pays it. - `invoice` (string, required): BOLT11 invoice string starting with ln (lnbc... for mainnet) Example: https://tools.funwords.eu/ln-invoice?invoice=lnbc2500u1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpu9qrsgquk0rl77nj30yxdy8j9vdx85fkpmdla2087ne0xh8nhedh8w27kyke0lp53ut353s06fv3qfegext0eh0ymjpf39tuven09sam30g4vgpfna3rh #### GET /base-tx — $0.003 Look up any transaction on Base by hash: whether it succeeded, reverted or is still pending, sender and receiver, ETH value, called method id, block number and time, number of confirmations, gas used, gas price and the execution fee paid, and whether it created a contract. Use to confirm that a payment or contract call went through before acting on it. - `hash` (string, required): Transaction hash on Base: 0x followed by 64 hex characters Example: https://tools.funwords.eu/base-tx?hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0 #### GET /base-allowance — $0.002 Check how much of a wallet's ERC-20 token a spender contract is approved to move on Base: the raw and formatted allowance, the token symbol and decimals, and whether the approval is unlimited. Use before a swap or deposit to see if an approve transaction is needed, and to audit a wallet for risky unlimited approvals. - `token` (string, required): ERC-20 token contract address on Base (0x...) - `owner` (string, required): Wallet address that holds the token (0x...) - `spender` (string, required): Address allowed to spend, usually a router or protocol contract (0x...) Example: https://tools.funwords.eu/base-allowance?token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owner=0x4200000000000000000000000000000000000006&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /ens — $0.01 Resolve an Ethereum Name Service name such as vitalik.eth to its wallet address and avatar, or look up the primary ENS name of an address (reverse resolution). Read live from Ethereum mainnet. Use to turn a human-readable name into a payable address, or to show a readable name for a counterparty address. - `name` (string, required): An ENS name such as vitalik.eth, or an address (0x...) for reverse lookup Example: https://tools.funwords.eu/ens?name=vitalik.eth #### GET /base/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Base at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use base_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/base/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /base/token-balance — $0.01 ERC-20 token balance of a wallet on Base (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use base_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/base/token-balance?token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /base/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Base, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use base_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/base/token-info?token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /base/block — $0.01 Latest block number and block details on Base, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use base_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/base/block?number=latest #### GET /base/receipt — $0.01 Transaction receipt on Base (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use base_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/base/receipt?hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0 #### GET /base/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Base, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use base_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/base/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /base/is-contract — $0.01 Check whether a 0x address on Base is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/base/is-contract?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /base/logs — $0.01 Recent contract event logs on Base (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use base_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/base/logs?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /base/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Base, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use base_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Base) Example: https://tools.funwords.eu/base/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /base/nft-owner — $0.01 Owner of an NFT on Base: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use base_nft_balance, for the token's metadata base_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/base/nft-owner?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&tokenId=1 #### GET /base/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Base (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use base_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/base/nft-balance?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /base/nft-metadata — $0.01 NFT metadata on Base: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use base_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/base/nft-metadata?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&tokenId=1 #### GET /base/storage — $0.01 Read one raw storage slot of a contract on Base (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use base_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/base/storage?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /base/proxy — $0.01 Find the implementation behind a proxy contract on Base: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/base/proxy?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 #### GET /base/call — $0.01 Read-only contract call on Base (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/base/call?to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&data=0x18160ddd #### GET /base/estimate-gas — $0.01 Estimate the gas a transaction would use on Base (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use base_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/base/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /base/gas-history — $0.01 Gas price history on Base (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use base_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/base/gas-history?blocks=20 #### GET /eth/token-balance — $0.01 ERC-20 token balance of a wallet on Ethereum (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use eth_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/eth/token-balance?token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /eth/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Ethereum, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use eth_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/eth/token-info?token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 #### GET /eth/block — $0.01 Latest block number and block details on Ethereum, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use eth_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/eth/block?number=latest #### GET /eth/tx — $0.01 Look up an Ethereum transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use eth_receipt, for emitted events eth_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/eth/tx?hash=0x9531467e03a57bbb5cd080439ac3b10c0cefed147282eb2ff709b02c897afcbf #### GET /eth/receipt — $0.01 Transaction receipt on Ethereum (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use eth_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/eth/receipt?hash=0x9531467e03a57bbb5cd080439ac3b10c0cefed147282eb2ff709b02c897afcbf #### GET /eth/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Ethereum, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use eth_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/eth/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /eth/is-contract — $0.01 Check whether a 0x address on Ethereum is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/eth/is-contract?address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 #### GET /eth/logs — $0.01 Recent contract event logs on Ethereum (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use eth_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/eth/logs?address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 #### GET /eth/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Ethereum, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use eth_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 6.7 hours on Ethereum) Example: https://tools.funwords.eu/eth/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /eth/nft-owner — $0.01 Owner of an NFT on Ethereum: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use eth_nft_balance, for the token's metadata eth_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/eth/nft-owner?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /eth/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Ethereum (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use eth_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/eth/nft-balance?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /eth/nft-metadata — $0.01 NFT metadata on Ethereum: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use eth_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/eth/nft-metadata?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /eth/storage — $0.01 Read one raw storage slot of a contract on Ethereum (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use eth_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/eth/storage?address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 #### GET /eth/proxy — $0.01 Find the implementation behind a proxy contract on Ethereum: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/eth/proxy?address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 #### GET /eth/call — $0.01 Read-only contract call on Ethereum (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/eth/call?to=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&data=0x18160ddd #### GET /eth/estimate-gas — $0.01 Estimate the gas a transaction would use on Ethereum (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use eth_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/eth/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /eth/gas-history — $0.01 Gas price history on Ethereum (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use eth_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/eth/gas-history?blocks=20 #### GET /eth/allowance — $0.01 ERC-20 token allowance on Ethereum: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use eth_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/eth/allowance?token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /arb/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Arbitrum One at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use arb_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/arb/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /arb/token-balance — $0.01 ERC-20 token balance of a wallet on Arbitrum One (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use arb_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/arb/token-balance?token=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /arb/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Arbitrum One, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use arb_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/arb/token-info?token=0xaf88d065e77c8cC2239327C5EDb3A432268e5831 #### GET /arb/block — $0.01 Latest block number and block details on Arbitrum One, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use arb_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/arb/block?number=latest #### GET /arb/gas — $0.01 Current gas price on Arbitrum One (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use arb_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/arb/gas?format=json #### GET /arb/tx — $0.01 Look up an Arbitrum One transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use arb_receipt, for emitted events arb_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/arb/tx?hash=0xf03682db039f7b1b72ddf4d17572738f142cf63ecb36c90afa570430ea9774c4 #### GET /arb/receipt — $0.01 Transaction receipt on Arbitrum One (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use arb_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/arb/receipt?hash=0xf03682db039f7b1b72ddf4d17572738f142cf63ecb36c90afa570430ea9774c4 #### GET /arb/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Arbitrum One, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use arb_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/arb/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /arb/is-contract — $0.01 Check whether a 0x address on Arbitrum One is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/arb/is-contract?address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831 #### GET /arb/logs — $0.01 Recent contract event logs on Arbitrum One (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use arb_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/arb/logs?address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831 #### GET /arb/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Arbitrum One, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use arb_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 8 minutes on Arbitrum One) Example: https://tools.funwords.eu/arb/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /arb/nft-owner — $0.01 Owner of an NFT on Arbitrum One: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use arb_nft_balance, for the token's metadata arb_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/arb/nft-owner?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /arb/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Arbitrum One (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use arb_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/arb/nft-balance?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /arb/nft-metadata — $0.01 NFT metadata on Arbitrum One: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use arb_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/arb/nft-metadata?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /arb/storage — $0.01 Read one raw storage slot of a contract on Arbitrum One (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use arb_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/arb/storage?address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831 #### GET /arb/proxy — $0.01 Find the implementation behind a proxy contract on Arbitrum One: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/arb/proxy?address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831 #### GET /arb/call — $0.01 Read-only contract call on Arbitrum One (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/arb/call?to=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&data=0x18160ddd #### GET /arb/estimate-gas — $0.01 Estimate the gas a transaction would use on Arbitrum One (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use arb_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/arb/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /arb/gas-history — $0.01 Gas price history on Arbitrum One (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use arb_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/arb/gas-history?blocks=20 #### GET /arb/allowance — $0.01 ERC-20 token allowance on Arbitrum One: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use arb_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/arb/allowance?token=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /op/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Optimism at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use op_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/op/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /op/token-balance — $0.01 ERC-20 token balance of a wallet on Optimism (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use op_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/op/token-balance?token=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /op/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Optimism, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use op_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/op/token-info?token=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 #### GET /op/block — $0.01 Latest block number and block details on Optimism, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use op_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/op/block?number=latest #### GET /op/gas — $0.01 Current gas price on Optimism (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use op_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/op/gas?format=json #### GET /op/tx — $0.01 Look up an Optimism transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use op_receipt, for emitted events op_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/op/tx?hash=0x721f3e9a996da49e2a8929bd2dd42e0f51344c11d7ca7bc3328fda349cdfae89 #### GET /op/receipt — $0.01 Transaction receipt on Optimism (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use op_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/op/receipt?hash=0x721f3e9a996da49e2a8929bd2dd42e0f51344c11d7ca7bc3328fda349cdfae89 #### GET /op/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Optimism, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use op_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/op/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /op/is-contract — $0.01 Check whether a 0x address on Optimism is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/op/is-contract?address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 #### GET /op/logs — $0.01 Recent contract event logs on Optimism (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use op_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/op/logs?address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 #### GET /op/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Optimism, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use op_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Optimism) Example: https://tools.funwords.eu/op/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /op/nft-owner — $0.01 Owner of an NFT on Optimism: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use op_nft_balance, for the token's metadata op_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/op/nft-owner?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /op/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Optimism (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use op_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/op/nft-balance?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /op/nft-metadata — $0.01 NFT metadata on Optimism: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use op_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/op/nft-metadata?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /op/storage — $0.01 Read one raw storage slot of a contract on Optimism (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use op_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/op/storage?address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 #### GET /op/proxy — $0.01 Find the implementation behind a proxy contract on Optimism: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/op/proxy?address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 #### GET /op/call — $0.01 Read-only contract call on Optimism (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/op/call?to=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85&data=0x18160ddd #### GET /op/estimate-gas — $0.01 Estimate the gas a transaction would use on Optimism (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use op_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/op/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /op/gas-history — $0.01 Gas price history on Optimism (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use op_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/op/gas-history?blocks=20 #### GET /op/allowance — $0.01 ERC-20 token allowance on Optimism: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use op_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/op/allowance?token=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /polygon/balance — $0.01 Native POL balance (eth_getBalance) of any 0x wallet address on Polygon PoS at the latest block, in wei and in POL. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use polygon_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/polygon/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /polygon/token-balance — $0.01 ERC-20 token balance of a wallet on Polygon PoS (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use polygon_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/polygon/token-balance?token=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /polygon/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Polygon PoS, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use polygon_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/polygon/token-info?token=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 #### GET /polygon/block — $0.01 Latest block number and block details on Polygon PoS, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use polygon_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/polygon/block?number=latest #### GET /polygon/gas — $0.01 Current gas price on Polygon PoS (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain POL transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use polygon_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/polygon/gas?format=json #### GET /polygon/tx — $0.01 Look up a Polygon PoS transaction by hash: sender, recipient, value in POL, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use polygon_receipt, for emitted events polygon_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/polygon/tx?hash=0x23e86c30c46638b2e9798692fe89327a66aa8569a5d4a566125f655aeb8f80c7 #### GET /polygon/receipt — $0.01 Transaction receipt on Polygon PoS (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in POL, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use polygon_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/polygon/receipt?hash=0x23e86c30c46638b2e9798692fe89327a66aa8569a5d4a566125f655aeb8f80c7 #### GET /polygon/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Polygon PoS, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use polygon_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/polygon/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /polygon/is-contract — $0.01 Check whether a 0x address on Polygon PoS is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/polygon/is-contract?address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 #### GET /polygon/logs — $0.01 Recent contract event logs on Polygon PoS (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use polygon_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/polygon/logs?address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 #### GET /polygon/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Polygon PoS, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use polygon_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Polygon PoS) Example: https://tools.funwords.eu/polygon/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /polygon/nft-owner — $0.01 Owner of an NFT on Polygon PoS: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use polygon_nft_balance, for the token's metadata polygon_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/polygon/nft-owner?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /polygon/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Polygon PoS (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use polygon_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/polygon/nft-balance?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /polygon/nft-metadata — $0.01 NFT metadata on Polygon PoS: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use polygon_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/polygon/nft-metadata?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1 #### GET /polygon/storage — $0.01 Read one raw storage slot of a contract on Polygon PoS (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use polygon_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/polygon/storage?address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 #### GET /polygon/proxy — $0.01 Find the implementation behind a proxy contract on Polygon PoS: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/polygon/proxy?address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 #### GET /polygon/call — $0.01 Read-only contract call on Polygon PoS (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/polygon/call?to=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359&data=0x18160ddd #### GET /polygon/estimate-gas — $0.01 Estimate the gas a transaction would use on Polygon PoS (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and POL. Give to, plus value in POL and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use polygon_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of POL to send, in POL (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/polygon/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /polygon/gas-history — $0.01 Gas price history on Polygon PoS (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use polygon_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/polygon/gas-history?blocks=20 #### GET /polygon/allowance — $0.01 ERC-20 token allowance on Polygon PoS: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use polygon_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/polygon/allowance?token=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /avax/balance — $0.01 Native AVAX balance (eth_getBalance) of any 0x wallet address on Avalanche at the latest block, in wei and in AVAX. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use avax_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/avax/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /avax/token-balance — $0.01 ERC-20 token balance of a wallet on Avalanche (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use avax_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/avax/token-balance?token=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /avax/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Avalanche, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use avax_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/avax/token-info?token=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E #### GET /avax/block — $0.01 Latest block number and block details on Avalanche, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use avax_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/avax/block?number=latest #### GET /avax/gas — $0.01 Current gas price on Avalanche (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain AVAX transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use avax_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/avax/gas?format=json #### GET /avax/tx — $0.01 Look up an Avalanche transaction by hash: sender, recipient, value in AVAX, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use avax_receipt, for emitted events avax_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/avax/tx?hash=0x186570f66bdbd9565ee4f5fe7ef9fc110ec5417f5838c3e7e322967cd1a7d3e2 #### GET /avax/receipt — $0.01 Transaction receipt on Avalanche (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in AVAX, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use avax_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/avax/receipt?hash=0x186570f66bdbd9565ee4f5fe7ef9fc110ec5417f5838c3e7e322967cd1a7d3e2 #### GET /avax/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Avalanche, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use avax_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/avax/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /avax/is-contract — $0.01 Check whether a 0x address on Avalanche is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/avax/is-contract?address=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E #### GET /avax/logs — $0.01 Recent contract event logs on Avalanche (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use avax_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/avax/logs?address=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E #### GET /avax/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Avalanche, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use avax_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 32 minutes on Avalanche) Example: https://tools.funwords.eu/avax/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /avax/nft-owner — $0.01 Owner of an NFT on Avalanche: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use avax_nft_balance, for the token's metadata avax_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/avax/nft-owner?contract=0x655C406EBFa14EE2006250925e54ec43AD184f8B&tokenId=1 #### GET /avax/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Avalanche (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use avax_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/avax/nft-balance?contract=0x655C406EBFa14EE2006250925e54ec43AD184f8B&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /avax/nft-metadata — $0.01 NFT metadata on Avalanche: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use avax_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/avax/nft-metadata?contract=0x655C406EBFa14EE2006250925e54ec43AD184f8B&tokenId=1 #### GET /avax/storage — $0.01 Read one raw storage slot of a contract on Avalanche (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use avax_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/avax/storage?address=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E #### GET /avax/proxy — $0.01 Find the implementation behind a proxy contract on Avalanche: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/avax/proxy?address=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E #### GET /avax/call — $0.01 Read-only contract call on Avalanche (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/avax/call?to=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E&data=0x18160ddd #### GET /avax/estimate-gas — $0.01 Estimate the gas a transaction would use on Avalanche (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and AVAX. Give to, plus value in AVAX and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use avax_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of AVAX to send, in AVAX (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/avax/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /avax/gas-history — $0.01 Gas price history on Avalanche (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use avax_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/avax/gas-history?blocks=20 #### GET /avax/allowance — $0.01 ERC-20 token allowance on Avalanche: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use avax_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/avax/allowance?token=0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /gnosis/balance — $0.01 Native xDAI balance (eth_getBalance) of any 0x wallet address on Gnosis at the latest block, in wei and in xDAI. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use gnosis_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/gnosis/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /gnosis/token-balance — $0.01 ERC-20 token balance of a wallet on Gnosis (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use gnosis_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/gnosis/token-balance?token=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /gnosis/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Gnosis, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use gnosis_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/gnosis/token-info?token=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0 #### GET /gnosis/block — $0.01 Latest block number and block details on Gnosis, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use gnosis_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/gnosis/block?number=latest #### GET /gnosis/gas — $0.01 Current gas price on Gnosis (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain xDAI transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use gnosis_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/gnosis/gas?format=json #### GET /gnosis/tx — $0.01 Look up a Gnosis transaction by hash: sender, recipient, value in xDAI, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use gnosis_receipt, for emitted events gnosis_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/gnosis/tx?hash=0x2b56c1dabbef9c9a07d0f94c6ff931c3e1f93cc398fa06296ff79770d4a4487f #### GET /gnosis/receipt — $0.01 Transaction receipt on Gnosis (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in xDAI, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use gnosis_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/gnosis/receipt?hash=0x2b56c1dabbef9c9a07d0f94c6ff931c3e1f93cc398fa06296ff79770d4a4487f #### GET /gnosis/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Gnosis, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use gnosis_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/gnosis/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /gnosis/is-contract — $0.01 Check whether a 0x address on Gnosis is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/gnosis/is-contract?address=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0 #### GET /gnosis/logs — $0.01 Recent contract event logs on Gnosis (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use gnosis_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/gnosis/logs?address=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0 #### GET /gnosis/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Gnosis, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use gnosis_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 2.8 hours on Gnosis) Example: https://tools.funwords.eu/gnosis/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /gnosis/storage — $0.01 Read one raw storage slot of a contract on Gnosis (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use gnosis_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/gnosis/storage?address=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0 #### GET /gnosis/proxy — $0.01 Find the implementation behind a proxy contract on Gnosis: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/gnosis/proxy?address=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0 #### GET /gnosis/call — $0.01 Read-only contract call on Gnosis (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/gnosis/call?to=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0&data=0x18160ddd #### GET /gnosis/estimate-gas — $0.01 Estimate the gas a transaction would use on Gnosis (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and xDAI. Give to, plus value in xDAI and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use gnosis_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of xDAI to send, in xDAI (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/gnosis/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /gnosis/gas-history — $0.01 Gas price history on Gnosis (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use gnosis_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/gnosis/gas-history?blocks=20 #### GET /gnosis/allowance — $0.01 ERC-20 token allowance on Gnosis: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use gnosis_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/gnosis/allowance?token=0x2a22f9c3b484c3629090FeED35F17Ff8F88f76F0&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /linea/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Linea at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use linea_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/linea/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /linea/token-balance — $0.01 ERC-20 token balance of a wallet on Linea (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use linea_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/linea/token-balance?token=0x176211869cA2b568f2A7D4EE941E073a821EE1ff&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /linea/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Linea, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use linea_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/linea/token-info?token=0x176211869cA2b568f2A7D4EE941E073a821EE1ff #### GET /linea/block — $0.01 Latest block number and block details on Linea, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use linea_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/linea/block?number=latest #### GET /linea/gas — $0.01 Current gas price on Linea (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use linea_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/linea/gas?format=json #### GET /linea/tx — $0.01 Look up a Linea transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use linea_receipt, for emitted events linea_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/linea/tx?hash=0x638169f15ccab7f5491b46b3a883fa1aa5b5399ba5c56fa0110355d47a526a93 #### GET /linea/receipt — $0.01 Transaction receipt on Linea (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use linea_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/linea/receipt?hash=0x638169f15ccab7f5491b46b3a883fa1aa5b5399ba5c56fa0110355d47a526a93 #### GET /linea/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Linea, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use linea_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/linea/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /linea/is-contract — $0.01 Check whether a 0x address on Linea is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/linea/is-contract?address=0x176211869cA2b568f2A7D4EE941E073a821EE1ff #### GET /linea/logs — $0.01 Recent contract event logs on Linea (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use linea_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/linea/logs?address=0x176211869cA2b568f2A7D4EE941E073a821EE1ff #### GET /linea/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Linea, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use linea_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 2.4 hours on Linea) Example: https://tools.funwords.eu/linea/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /linea/storage — $0.01 Read one raw storage slot of a contract on Linea (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use linea_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/linea/storage?address=0x176211869cA2b568f2A7D4EE941E073a821EE1ff #### GET /linea/proxy — $0.01 Find the implementation behind a proxy contract on Linea: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/linea/proxy?address=0x176211869cA2b568f2A7D4EE941E073a821EE1ff #### GET /linea/call — $0.01 Read-only contract call on Linea (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/linea/call?to=0x176211869cA2b568f2A7D4EE941E073a821EE1ff&data=0x18160ddd #### GET /linea/estimate-gas — $0.01 Estimate the gas a transaction would use on Linea (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use linea_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/linea/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /linea/gas-history — $0.01 Gas price history on Linea (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use linea_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/linea/gas-history?blocks=20 #### GET /linea/allowance — $0.01 ERC-20 token allowance on Linea: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use linea_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/linea/allowance?token=0x176211869cA2b568f2A7D4EE941E073a821EE1ff&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /zksync/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on zkSync Era at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use zksync_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/zksync/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /zksync/token-balance — $0.01 ERC-20 token balance of a wallet on zkSync Era (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use zksync_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/zksync/token-balance?token=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /zksync/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on zkSync Era, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use zksync_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/zksync/token-info?token=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4 #### GET /zksync/block — $0.01 Latest block number and block details on zkSync Era, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use zksync_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/zksync/block?number=latest #### GET /zksync/gas — $0.01 Current gas price on zkSync Era (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use zksync_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/zksync/gas?format=json #### GET /zksync/tx — $0.01 Look up a zkSync Era transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use zksync_receipt, for emitted events zksync_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/zksync/tx?hash=0xc0003ffe194dfc1be40e1b1e6dfdf7609f89cc1393ff774dcd657f226558c5b3 #### GET /zksync/receipt — $0.01 Transaction receipt on zkSync Era (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use zksync_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/zksync/receipt?hash=0xc0003ffe194dfc1be40e1b1e6dfdf7609f89cc1393ff774dcd657f226558c5b3 #### GET /zksync/nonce — $0.01 Read the transaction count (nonce) of a 0x address on zkSync Era, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use zksync_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/zksync/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /zksync/is-contract — $0.01 Check whether a 0x address on zkSync Era is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/zksync/is-contract?address=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4 #### GET /zksync/logs — $0.01 Recent contract event logs on zkSync Era (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use zksync_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/zksync/logs?address=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4 #### GET /zksync/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on zkSync Era, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use zksync_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 33 minutes on zkSync Era) Example: https://tools.funwords.eu/zksync/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /zksync/nft-owner — $0.01 Owner of an NFT on zkSync Era: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use zksync_nft_balance, for the token's metadata zksync_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/zksync/nft-owner?contract=0x0616e5762c1E7Dc3723c50663dF10a162D690a86&tokenId=1 #### GET /zksync/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on zkSync Era (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use zksync_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/zksync/nft-balance?contract=0x0616e5762c1E7Dc3723c50663dF10a162D690a86&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /zksync/nft-metadata — $0.01 NFT metadata on zkSync Era: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use zksync_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/zksync/nft-metadata?contract=0x0616e5762c1E7Dc3723c50663dF10a162D690a86&tokenId=1 #### GET /zksync/storage — $0.01 Read one raw storage slot of a contract on zkSync Era (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use zksync_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/zksync/storage?address=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4 #### GET /zksync/proxy — $0.01 Find the implementation behind a proxy contract on zkSync Era: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/zksync/proxy?address=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4 #### GET /zksync/call — $0.01 Read-only contract call on zkSync Era (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/zksync/call?to=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4&data=0x18160ddd #### GET /zksync/gas-history — $0.01 Gas price history on zkSync Era (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use zksync_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/zksync/gas-history?blocks=20 #### GET /zksync/allowance — $0.01 ERC-20 token allowance on zkSync Era: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use zksync_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/zksync/allowance?token=0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /scroll/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Scroll at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use scroll_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/scroll/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /scroll/token-balance — $0.01 ERC-20 token balance of a wallet on Scroll (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use scroll_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/scroll/token-balance?token=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /scroll/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Scroll, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use scroll_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/scroll/token-info?token=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4 #### GET /scroll/block — $0.01 Latest block number and block details on Scroll, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use scroll_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/scroll/block?number=latest #### GET /scroll/gas — $0.01 Current gas price on Scroll (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use scroll_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/scroll/gas?format=json #### GET /scroll/tx — $0.01 Look up a Scroll transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use scroll_receipt, for emitted events scroll_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/scroll/tx?hash=0x0176fb42be8ea0058d1ac56cb253f0df883ba4b564489e71b83fb7e27e912abd #### GET /scroll/receipt — $0.01 Transaction receipt on Scroll (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use scroll_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/scroll/receipt?hash=0x0176fb42be8ea0058d1ac56cb253f0df883ba4b564489e71b83fb7e27e912abd #### GET /scroll/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Scroll, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use scroll_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/scroll/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /scroll/is-contract — $0.01 Check whether a 0x address on Scroll is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/scroll/is-contract?address=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4 #### GET /scroll/logs — $0.01 Recent contract event logs on Scroll (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use scroll_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/scroll/logs?address=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4 #### GET /scroll/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Scroll, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use scroll_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 4.3 hours on Scroll) Example: https://tools.funwords.eu/scroll/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /scroll/storage — $0.01 Read one raw storage slot of a contract on Scroll (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use scroll_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/scroll/storage?address=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4 #### GET /scroll/proxy — $0.01 Find the implementation behind a proxy contract on Scroll: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/scroll/proxy?address=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4 #### GET /scroll/call — $0.01 Read-only contract call on Scroll (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/scroll/call?to=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4&data=0x18160ddd #### GET /scroll/estimate-gas — $0.01 Estimate the gas a transaction would use on Scroll (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use scroll_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/scroll/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /scroll/gas-history — $0.01 Gas price history on Scroll (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use scroll_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/scroll/gas-history?blocks=20 #### GET /scroll/allowance — $0.01 ERC-20 token allowance on Scroll: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use scroll_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/scroll/allowance?token=0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /mantle/balance — $0.01 Native MNT balance (eth_getBalance) of any 0x wallet address on Mantle at the latest block, in wei and in MNT. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use mantle_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/mantle/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /mantle/token-balance — $0.01 ERC-20 token balance of a wallet on Mantle (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use mantle_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/mantle/token-balance?token=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /mantle/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Mantle, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use mantle_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/mantle/token-info?token=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9 #### GET /mantle/block — $0.01 Latest block number and block details on Mantle, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use mantle_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/mantle/block?number=latest #### GET /mantle/gas — $0.01 Current gas price on Mantle (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain MNT transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use mantle_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/mantle/gas?format=json #### GET /mantle/tx — $0.01 Look up a Mantle transaction by hash: sender, recipient, value in MNT, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use mantle_receipt, for emitted events mantle_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/mantle/tx?hash=0xa93012fcae16a5b4b9d6f7c7469ed2838cd27eb387b28e7334678add918d174f #### GET /mantle/receipt — $0.01 Transaction receipt on Mantle (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in MNT, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use mantle_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/mantle/receipt?hash=0xa93012fcae16a5b4b9d6f7c7469ed2838cd27eb387b28e7334678add918d174f #### GET /mantle/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Mantle, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use mantle_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/mantle/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /mantle/is-contract — $0.01 Check whether a 0x address on Mantle is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/mantle/is-contract?address=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9 #### GET /mantle/logs — $0.01 Recent contract event logs on Mantle (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use mantle_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/mantle/logs?address=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9 #### GET /mantle/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Mantle, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use mantle_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Mantle) Example: https://tools.funwords.eu/mantle/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /mantle/storage — $0.01 Read one raw storage slot of a contract on Mantle (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use mantle_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/mantle/storage?address=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9 #### GET /mantle/proxy — $0.01 Find the implementation behind a proxy contract on Mantle: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/mantle/proxy?address=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9 #### GET /mantle/call — $0.01 Read-only contract call on Mantle (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/mantle/call?to=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9&data=0x18160ddd #### GET /mantle/estimate-gas — $0.01 Estimate the gas a transaction would use on Mantle (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and MNT. Give to, plus value in MNT and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use mantle_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of MNT to send, in MNT (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/mantle/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /mantle/gas-history — $0.01 Gas price history on Mantle (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use mantle_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/mantle/gas-history?blocks=20 #### GET /mantle/allowance — $0.01 ERC-20 token allowance on Mantle: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use mantle_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/mantle/allowance?token=0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /celo/balance — $0.01 Native CELO balance (eth_getBalance) of any 0x wallet address on Celo at the latest block, in wei and in CELO. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use celo_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/celo/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /celo/token-balance — $0.01 ERC-20 token balance of a wallet on Celo (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use celo_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/celo/token-balance?token=0xcebA9300f2b948710d2653dD7B07f33A8B32118C&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /celo/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Celo, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use celo_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/celo/token-info?token=0xcebA9300f2b948710d2653dD7B07f33A8B32118C #### GET /celo/block — $0.01 Latest block number and block details on Celo, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use celo_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/celo/block?number=latest #### GET /celo/gas — $0.01 Current gas price on Celo (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain CELO transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use celo_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/celo/gas?format=json #### GET /celo/tx — $0.01 Look up a Celo transaction by hash: sender, recipient, value in CELO, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use celo_receipt, for emitted events celo_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/celo/tx?hash=0xc6a38b860427aa5bd7f65f8a879a7d369e77b3767200c68cde4002014ad50444 #### GET /celo/receipt — $0.01 Transaction receipt on Celo (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in CELO, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use celo_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/celo/receipt?hash=0xc6a38b860427aa5bd7f65f8a879a7d369e77b3767200c68cde4002014ad50444 #### GET /celo/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Celo, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use celo_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/celo/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /celo/is-contract — $0.01 Check whether a 0x address on Celo is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/celo/is-contract?address=0xcebA9300f2b948710d2653dD7B07f33A8B32118C #### GET /celo/logs — $0.01 Recent contract event logs on Celo (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use celo_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/celo/logs?address=0xcebA9300f2b948710d2653dD7B07f33A8B32118C #### GET /celo/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Celo, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use celo_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 33 minutes on Celo) Example: https://tools.funwords.eu/celo/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /celo/nft-owner — $0.01 Owner of an NFT on Celo: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use celo_nft_balance, for the token's metadata celo_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/celo/nft-owner?contract=0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A&tokenId=1 #### GET /celo/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Celo (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use celo_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/celo/nft-balance?contract=0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /celo/nft-metadata — $0.01 NFT metadata on Celo: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use celo_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/celo/nft-metadata?contract=0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A&tokenId=1 #### GET /celo/storage — $0.01 Read one raw storage slot of a contract on Celo (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use celo_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/celo/storage?address=0xcebA9300f2b948710d2653dD7B07f33A8B32118C #### GET /celo/proxy — $0.01 Find the implementation behind a proxy contract on Celo: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/celo/proxy?address=0xcebA9300f2b948710d2653dD7B07f33A8B32118C #### GET /celo/call — $0.01 Read-only contract call on Celo (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/celo/call?to=0xcebA9300f2b948710d2653dD7B07f33A8B32118C&data=0x18160ddd #### GET /celo/estimate-gas — $0.01 Estimate the gas a transaction would use on Celo (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and CELO. Give to, plus value in CELO and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use celo_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of CELO to send, in CELO (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/celo/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /celo/gas-history — $0.01 Gas price history on Celo (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use celo_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/celo/gas-history?blocks=20 #### GET /celo/allowance — $0.01 ERC-20 token allowance on Celo: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use celo_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/celo/allowance?token=0xcebA9300f2b948710d2653dD7B07f33A8B32118C&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /sonic/balance — $0.01 Native S balance (eth_getBalance) of any 0x wallet address on Sonic at the latest block, in wei and in S. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use sonic_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/sonic/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sonic/token-balance — $0.01 ERC-20 token balance of a wallet on Sonic (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use sonic_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/sonic/token-balance?token=0x29219dd400f2Bf60E5a23d13Be72B486D4038894&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sonic/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Sonic, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use sonic_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/sonic/token-info?token=0x29219dd400f2Bf60E5a23d13Be72B486D4038894 #### GET /sonic/block — $0.01 Latest block number and block details on Sonic, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use sonic_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/sonic/block?number=latest #### GET /sonic/gas — $0.01 Current gas price on Sonic (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain S transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use sonic_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/sonic/gas?format=json #### GET /sonic/tx — $0.01 Look up a Sonic transaction by hash: sender, recipient, value in S, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use sonic_receipt, for emitted events sonic_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/sonic/tx?hash=0xcc6a5594962b5211496391d0e1e9082f5060f218fad60f907a23e85a7b02bf85 #### GET /sonic/receipt — $0.01 Transaction receipt on Sonic (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in S, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use sonic_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/sonic/receipt?hash=0xcc6a5594962b5211496391d0e1e9082f5060f218fad60f907a23e85a7b02bf85 #### GET /sonic/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Sonic, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use sonic_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/sonic/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sonic/is-contract — $0.01 Check whether a 0x address on Sonic is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/sonic/is-contract?address=0x29219dd400f2Bf60E5a23d13Be72B486D4038894 #### GET /sonic/logs — $0.01 Recent contract event logs on Sonic (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use sonic_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/sonic/logs?address=0x29219dd400f2Bf60E5a23d13Be72B486D4038894 #### GET /sonic/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Sonic, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use sonic_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 64 minutes on Sonic) Example: https://tools.funwords.eu/sonic/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sonic/storage — $0.01 Read one raw storage slot of a contract on Sonic (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use sonic_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/sonic/storage?address=0x29219dd400f2Bf60E5a23d13Be72B486D4038894 #### GET /sonic/proxy — $0.01 Find the implementation behind a proxy contract on Sonic: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/sonic/proxy?address=0x29219dd400f2Bf60E5a23d13Be72B486D4038894 #### GET /sonic/call — $0.01 Read-only contract call on Sonic (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/sonic/call?to=0x29219dd400f2Bf60E5a23d13Be72B486D4038894&data=0x18160ddd #### GET /sonic/estimate-gas — $0.01 Estimate the gas a transaction would use on Sonic (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and S. Give to, plus value in S and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use sonic_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of S to send, in S (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/sonic/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /sonic/gas-history — $0.01 Gas price history on Sonic (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use sonic_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/sonic/gas-history?blocks=20 #### GET /sonic/allowance — $0.01 ERC-20 token allowance on Sonic: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use sonic_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/sonic/allowance?token=0x29219dd400f2Bf60E5a23d13Be72B486D4038894&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /unichain/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Unichain at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use unichain_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/unichain/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /unichain/token-balance — $0.01 ERC-20 token balance of a wallet on Unichain (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use unichain_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/unichain/token-balance?token=0x078D782b760474a361dDA0AF3839290b0EF57AD6&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /unichain/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Unichain, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use unichain_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/unichain/token-info?token=0x078D782b760474a361dDA0AF3839290b0EF57AD6 #### GET /unichain/block — $0.01 Latest block number and block details on Unichain, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use unichain_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/unichain/block?number=latest #### GET /unichain/gas — $0.01 Current gas price on Unichain (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use unichain_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/unichain/gas?format=json #### GET /unichain/tx — $0.01 Look up an Unichain transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use unichain_receipt, for emitted events unichain_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/unichain/tx?hash=0xefe004f02c8907dc61735fe378eb5d2f3730d66cd8d4f385ef13076ad1eacdce #### GET /unichain/receipt — $0.01 Transaction receipt on Unichain (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use unichain_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/unichain/receipt?hash=0xefe004f02c8907dc61735fe378eb5d2f3730d66cd8d4f385ef13076ad1eacdce #### GET /unichain/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Unichain, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use unichain_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/unichain/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /unichain/is-contract — $0.01 Check whether a 0x address on Unichain is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/unichain/is-contract?address=0x078D782b760474a361dDA0AF3839290b0EF57AD6 #### GET /unichain/logs — $0.01 Recent contract event logs on Unichain (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use unichain_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/unichain/logs?address=0x078D782b760474a361dDA0AF3839290b0EF57AD6 #### GET /unichain/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Unichain, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use unichain_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 33 minutes on Unichain) Example: https://tools.funwords.eu/unichain/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /unichain/nft-owner — $0.01 Owner of an NFT on Unichain: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use unichain_nft_balance, for the token's metadata unichain_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/unichain/nft-owner?contract=0x943e6e07a7E8E791dAFC44083e54041D743C46E9&tokenId=1 #### GET /unichain/nft-balance — $0.01 How many NFTs of one ERC-721 collection a wallet holds on Unichain (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use unichain_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. - `contract` (string, required): 0x ERC-721 collection contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/unichain/nft-balance?contract=0x943e6e07a7E8E791dAFC44083e54041D743C46E9&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /unichain/nft-metadata — $0.01 NFT metadata on Unichain: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use unichain_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. - `contract` (string, required): 0x ERC-721 collection contract address - `tokenId` (string, required): Token id, a whole number Example: https://tools.funwords.eu/unichain/nft-metadata?contract=0x943e6e07a7E8E791dAFC44083e54041D743C46E9&tokenId=1 #### GET /unichain/storage — $0.01 Read one raw storage slot of a contract on Unichain (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use unichain_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/unichain/storage?address=0x078D782b760474a361dDA0AF3839290b0EF57AD6 #### GET /unichain/proxy — $0.01 Find the implementation behind a proxy contract on Unichain: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/unichain/proxy?address=0x078D782b760474a361dDA0AF3839290b0EF57AD6 #### GET /unichain/call — $0.01 Read-only contract call on Unichain (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/unichain/call?to=0x078D782b760474a361dDA0AF3839290b0EF57AD6&data=0x18160ddd #### GET /unichain/estimate-gas — $0.01 Estimate the gas a transaction would use on Unichain (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use unichain_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/unichain/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /unichain/gas-history — $0.01 Gas price history on Unichain (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use unichain_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/unichain/gas-history?blocks=20 #### GET /unichain/allowance — $0.01 ERC-20 token allowance on Unichain: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use unichain_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/unichain/allowance?token=0x078D782b760474a361dDA0AF3839290b0EF57AD6&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /hyperevm/balance — $0.01 Native HYPE balance (eth_getBalance) of any 0x wallet address on HyperEVM at the latest block, in wei and in HYPE. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use hyperevm_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/hyperevm/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /hyperevm/token-balance — $0.01 ERC-20 token balance of a wallet on HyperEVM (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use hyperevm_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/hyperevm/token-balance?token=0xb88339CB7199b77E23DB6E890353E22632Ba630f&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /hyperevm/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on HyperEVM, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use hyperevm_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/hyperevm/token-info?token=0xb88339CB7199b77E23DB6E890353E22632Ba630f #### GET /hyperevm/block — $0.01 Latest block number and block details on HyperEVM, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use hyperevm_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/hyperevm/block?number=latest #### GET /hyperevm/gas — $0.01 Current gas price on HyperEVM (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain HYPE transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use hyperevm_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/hyperevm/gas?format=json #### GET /hyperevm/tx — $0.01 Look up a HyperEVM transaction by hash: sender, recipient, value in HYPE, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use hyperevm_receipt, for emitted events hyperevm_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/hyperevm/tx?hash=0xdcf371c993312e793176e32cdfa78af2101b4aa54df88f8f0051c3fe463e374a #### GET /hyperevm/receipt — $0.01 Transaction receipt on HyperEVM (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in HYPE, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use hyperevm_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/hyperevm/receipt?hash=0xdcf371c993312e793176e32cdfa78af2101b4aa54df88f8f0051c3fe463e374a #### GET /hyperevm/nonce — $0.01 Read the transaction count (nonce) of a 0x address on HyperEVM, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use hyperevm_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/hyperevm/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /hyperevm/is-contract — $0.01 Check whether a 0x address on HyperEVM is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/hyperevm/is-contract?address=0xb88339CB7199b77E23DB6E890353E22632Ba630f #### GET /hyperevm/logs — $0.01 Recent contract event logs on HyperEVM (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use hyperevm_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/hyperevm/logs?address=0xb88339CB7199b77E23DB6E890353E22632Ba630f #### GET /hyperevm/storage — $0.01 Read one raw storage slot of a contract on HyperEVM (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use hyperevm_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/hyperevm/storage?address=0xb88339CB7199b77E23DB6E890353E22632Ba630f #### GET /hyperevm/proxy — $0.01 Find the implementation behind a proxy contract on HyperEVM: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/hyperevm/proxy?address=0xb88339CB7199b77E23DB6E890353E22632Ba630f #### GET /hyperevm/call — $0.01 Read-only contract call on HyperEVM (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/hyperevm/call?to=0xb88339CB7199b77E23DB6E890353E22632Ba630f&data=0x18160ddd #### GET /hyperevm/estimate-gas — $0.01 Estimate the gas a transaction would use on HyperEVM (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and HYPE. Give to, plus value in HYPE and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use hyperevm_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of HYPE to send, in HYPE (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/hyperevm/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /hyperevm/gas-history — $0.01 Gas price history on HyperEVM (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use hyperevm_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/hyperevm/gas-history?blocks=20 #### GET /hyperevm/allowance — $0.01 ERC-20 token allowance on HyperEVM: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use hyperevm_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/hyperevm/allowance?token=0xb88339CB7199b77E23DB6E890353E22632Ba630f&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /bera/balance — $0.01 Native BERA balance (eth_getBalance) of any 0x wallet address on Berachain at the latest block, in wei and in BERA. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use bera_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/bera/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /bera/token-balance — $0.01 ERC-20 token balance of a wallet on Berachain (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use bera_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/bera/token-balance?token=0x549943e04f40284185054145c6E4e9568C1D3241&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /bera/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Berachain, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use bera_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/bera/token-info?token=0x549943e04f40284185054145c6E4e9568C1D3241 #### GET /bera/block — $0.01 Latest block number and block details on Berachain, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use bera_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/bera/block?number=latest #### GET /bera/gas — $0.01 Current gas price on Berachain (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain BERA transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use bera_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/bera/gas?format=json #### GET /bera/tx — $0.01 Look up a Berachain transaction by hash: sender, recipient, value in BERA, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use bera_receipt, for emitted events bera_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/bera/tx?hash=0x19db8c305092673a73e777b690469a0962145d4289a2608e8f62881c3a9ac18a #### GET /bera/receipt — $0.01 Transaction receipt on Berachain (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in BERA, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use bera_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/bera/receipt?hash=0x19db8c305092673a73e777b690469a0962145d4289a2608e8f62881c3a9ac18a #### GET /bera/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Berachain, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use bera_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/bera/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /bera/is-contract — $0.01 Check whether a 0x address on Berachain is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/bera/is-contract?address=0x549943e04f40284185054145c6E4e9568C1D3241 #### GET /bera/logs — $0.01 Recent contract event logs on Berachain (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use bera_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/bera/logs?address=0x549943e04f40284185054145c6E4e9568C1D3241 #### GET /bera/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Berachain, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use bera_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Berachain) Example: https://tools.funwords.eu/bera/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /bera/storage — $0.01 Read one raw storage slot of a contract on Berachain (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use bera_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/bera/storage?address=0x549943e04f40284185054145c6E4e9568C1D3241 #### GET /bera/proxy — $0.01 Find the implementation behind a proxy contract on Berachain: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/bera/proxy?address=0x549943e04f40284185054145c6E4e9568C1D3241 #### GET /bera/call — $0.01 Read-only contract call on Berachain (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/bera/call?to=0x549943e04f40284185054145c6E4e9568C1D3241&data=0x18160ddd #### GET /bera/estimate-gas — $0.01 Estimate the gas a transaction would use on Berachain (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and BERA. Give to, plus value in BERA and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use bera_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of BERA to send, in BERA (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/bera/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /bera/gas-history — $0.01 Gas price history on Berachain (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use bera_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/bera/gas-history?blocks=20 #### GET /bera/allowance — $0.01 ERC-20 token allowance on Berachain: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use bera_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/bera/allowance?token=0x549943e04f40284185054145c6E4e9568C1D3241&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /ink/balance — $0.01 Native ETH balance (eth_getBalance) of any 0x wallet address on Ink at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use ink_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/ink/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /ink/token-balance — $0.01 ERC-20 token balance of a wallet on Ink (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use ink_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/ink/token-balance?token=0xF1815bd50389c46847f0Bda824eC8da914045D14&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /ink/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Ink, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use ink_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/ink/token-info?token=0xF1815bd50389c46847f0Bda824eC8da914045D14 #### GET /ink/block — $0.01 Latest block number and block details on Ink, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use ink_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/ink/block?number=latest #### GET /ink/gas — $0.01 Current gas price on Ink (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use ink_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/ink/gas?format=json #### GET /ink/tx — $0.01 Look up an Ink transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use ink_receipt, for emitted events ink_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/ink/tx?hash=0x31e16195b9b6d9da5303988095e0dd5ee278693cb920de7d09fcee624c4f4733 #### GET /ink/receipt — $0.01 Transaction receipt on Ink (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use ink_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/ink/receipt?hash=0x31e16195b9b6d9da5303988095e0dd5ee278693cb920de7d09fcee624c4f4733 #### GET /ink/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Ink, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use ink_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/ink/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /ink/is-contract — $0.01 Check whether a 0x address on Ink is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/ink/is-contract?address=0xF1815bd50389c46847f0Bda824eC8da914045D14 #### GET /ink/logs — $0.01 Recent contract event logs on Ink (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use ink_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/ink/logs?address=0xF1815bd50389c46847f0Bda824eC8da914045D14 #### GET /ink/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Ink, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use ink_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 33 minutes on Ink) Example: https://tools.funwords.eu/ink/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /ink/storage — $0.01 Read one raw storage slot of a contract on Ink (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use ink_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/ink/storage?address=0xF1815bd50389c46847f0Bda824eC8da914045D14 #### GET /ink/proxy — $0.01 Find the implementation behind a proxy contract on Ink: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/ink/proxy?address=0xF1815bd50389c46847f0Bda824eC8da914045D14 #### GET /ink/call — $0.01 Read-only contract call on Ink (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/ink/call?to=0xF1815bd50389c46847f0Bda824eC8da914045D14&data=0x18160ddd #### GET /ink/estimate-gas — $0.01 Estimate the gas a transaction would use on Ink (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use ink_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of ETH to send, in ETH (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/ink/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /ink/gas-history — $0.01 Gas price history on Ink (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use ink_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/ink/gas-history?blocks=20 #### GET /ink/allowance — $0.01 ERC-20 token allowance on Ink: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use ink_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/ink/allowance?token=0xF1815bd50389c46847f0Bda824eC8da914045D14&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /sei/balance — $0.01 Native SEI balance (eth_getBalance) of any 0x wallet address on Sei at the latest block, in wei and in SEI. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use sei_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x wallet or contract address Example: https://tools.funwords.eu/sei/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sei/token-balance — $0.01 ERC-20 token balance of a wallet on Sei (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use sei_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address - `address` (string, required): 0x wallet address Example: https://tools.funwords.eu/sei/token-balance?token=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sei/token-info — $0.01 Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Sei, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use sei_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address Example: https://tools.funwords.eu/sei/token-info?token=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392 #### GET /sei/block — $0.01 Latest block number and block details on Sei, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use sei_gas. A block that does not exist yet returns 404, uncharged. - `number` (string): Block number, or 'latest' (default) Example: https://tools.funwords.eu/sei/block?number=latest #### GET /sei/gas — $0.01 Current gas price on Sei (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain SEI transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use sei_receipt. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/sei/gas?format=json #### GET /sei/tx — $0.01 Look up a Sei transaction by hash: sender, recipient, value in SEI, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use sei_receipt, for emitted events sei_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/sei/tx?hash=0x51ee2bca2ed878b0f576071a0cd21c0f8f129d4de4a545c5a7b3511fa6d048bb #### GET /sei/receipt — $0.01 Transaction receipt on Sei (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in SEI, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use sei_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. - `hash` (string, required): 0x-prefixed transaction hash (64 hex characters) Example: https://tools.funwords.eu/sei/receipt?hash=0x51ee2bca2ed878b0f576071a0cd21c0f8f129d4de4a545c5a7b3511fa6d048bb #### GET /sei/nonce — $0.01 Read the transaction count (nonce) of a 0x address on Sei, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use sei_balance. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/sei/nonce?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sei/is-contract — $0.01 Check whether a 0x address on Sei is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. - `address` (string, required): 0x address Example: https://tools.funwords.eu/sei/is-contract?address=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392 #### GET /sei/logs — $0.01 Recent contract event logs on Sei (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use sei_receipt. - `address` (string, required): 0x contract address - `blocks` (integer): How many recent blocks to scan (1-1000, default 50) - `topic0` (string): Optional 0x event signature hash to filter by Example: https://tools.funwords.eu/sei/logs?address=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392 #### GET /sei/token-transfers — $0.01 List a wallet's recent transfers of one ERC-20 token (default USDC) on Sei, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use sei_token_balance. Malformed addresses are rejected with 400, uncharged. - `address` (string, required): 0x wallet address - `token` (string): Token: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network) - `blocks` (integer): How many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 15 minutes on Sei) Example: https://tools.funwords.eu/sei/token-transfers?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /sei/storage — $0.01 Read one raw storage slot of a contract on Sei (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use sei_proxy. A malformed address or slot is rejected with 400, uncharged. - `address` (string, required): 0x contract address - `slot` (string): Slot: a decimal index (0, 1, 2…) or a 0x 32-byte key Example: https://tools.funwords.eu/sei/storage?address=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392 #### GET /sei/proxy — $0.01 Find the implementation behind a proxy contract on Sei: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. - `address` (string, required): 0x contract address Example: https://tools.funwords.eu/sei/proxy?address=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392 #### GET /sei/call — $0.01 Read-only contract call on Sei (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. - `to` (string, required): 0x contract address to call - `data` (string, required): 0x ABI-encoded calldata: 4-byte selector plus arguments - `from` (string): Optional 0x sender address for calls that check msg.sender Example: https://tools.funwords.eu/sei/call?to=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392&data=0x18160ddd #### GET /sei/estimate-gas — $0.01 Estimate the gas a transaction would use on Sei (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and SEI. Give to, plus value in SEI and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use sei_gas. A transaction that would revert is 422 with the reason, uncharged. - `to` (string, required): 0x recipient or contract address - `from` (string): 0x sender address (default: an empty address) - `value` (string): Amount of SEI to send, in SEI (default 0) - `data` (string): Optional 0x calldata for a contract call Example: https://tools.funwords.eu/sei/estimate-gas?to=0x000000000000000000000000000000000000dEaD #### GET /sei/gas-history — $0.01 Gas price history on Sei (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use sei_gas. - `blocks` (integer): How many recent blocks, 5-100 (default 20) Example: https://tools.funwords.eu/sei/gas-history?blocks=20 #### GET /sei/allowance — $0.01 ERC-20 token allowance on Sei: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use sei_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. - `token` (string, required): Token: a ticker such as USDC or WETH, or the 0x ERC-20 contract address - `owner` (string, required): 0x wallet that gave the approval - `spender` (string, required): 0x contract or wallet allowed to spend (the example is Uniswap Permit2) Example: https://tools.funwords.eu/sei/allowance?token=0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392&owner=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&spender=0x000000000022D473030F116dDEE9F6B43aC78BA3 #### GET /solana/balance — $0.01 SOL balance of a Solana wallet, read live from mainnet in lamports and SOL, plus its SPL token accounts (mint, symbol for well-known tokens, decimals, amount) when the public node serves them; otherwise tokens is null with a note. Use to check a Solana wallet before a payment. An address that is not 32-byte base58 is 400, uncharged. - `address` (string, required): Solana wallet address (base58) Example: https://tools.funwords.eu/solana/balance?address=vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg #### GET /solana/token — $0.01 Look up a Solana SPL token by its mint address, live from mainnet: decimals, total supply, whether a mint authority can still create more and whether a freeze authority can freeze holders (two common rug-pull risks), the token program, and, on request, the largest holder accounts with their share of supply. Use before buying or accepting an unknown Solana token. A mint that does not exist is 404, uncharged. - `mint` (string, required): SPL token mint address (base58) - `holders` (integer): Largest holder accounts to list, 0-20 (default 0; best effort, the public node rate-limits this lookup) Example: https://tools.funwords.eu/solana/token?mint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v #### GET /evm/decode-calldata — $0.01 Decode EVM transaction calldata into the function and its arguments with viem: give the function signature (transfer(address,uint256)), or leave it out to try common ERC-20, ERC-721, ERC-1155, WETH, permit and multicall functions by selector. Numbers come back as decimal strings. Use to read what a pending or past transaction does before signing; get calldata from eth_tx. A selector that does not match is 422, uncharged. - `data` (string, required): 0x calldata (selector plus ABI-encoded arguments), up to 8 KB - `signature` (string): Optional function signature such as transfer(address,uint256) Example: https://tools.funwords.eu/evm/decode-calldata?data=0xa9059cbb000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000989680 #### GET /evm/verify-signature — $0.01 Verify an Ethereum personal_sign (EIP-191) signature: recover the address that signed a message and, given an expected address, say whether it matches. Works for ordinary wallets (EOAs); smart-contract wallets sign by ERC-1271, which this offline check does not cover. Use for sign-in-with-wallet, proving wallet ownership or checking a signed order. A malformed signature is 400, uncharged. - `message` (string, required): The exact message that was signed (or 0x hex with raw=true) - `signature` (string, required): 0x signature, 65 bytes (130 hex characters) - `address` (string): Optional expected signer address to compare - `raw` (string): true to treat a 0x message as raw bytes instead of text Example: https://tools.funwords.eu/evm/verify-signature?message=hello&signature=0xf16ea9a3478698f695fd1401bfe27e9e4a7e8e3da94aa72b021125e31fa899cc573c48ea3fe1d4ab61a9db10c19032026e3ed2dbccba5a178235ac27f94504311c #### GET /evm/checksum — $0.01 Address checksum for any EVM address: validates it and returns the EIP-55 checksummed form, saying whether the input was all lower case, all upper case, correctly checksummed or mixed case with a wrong checksum (a likely typo). Works for every EVM chain. Use before sending funds or storing an address; for whether it is a contract use _is_contract. - `address` (string, required): 0x address (40 hex characters) Example: https://tools.funwords.eu/evm/checksum?address=0xd8da6bf26964af9d7eed9e03e53415d37aa96045 #### GET /stablecoin/supply — $0.01 Live total supply of USDC and USDT on Ethereum, Base, Arbitrum, Optimism and Polygon, read from each token contract (totalSupply), per network and summed per token, plus the grand total. A network whose nodes do not answer is listed with an error instead of failing the call. Use to track stablecoin issuance, liquidity on a chain or mints and burns over time. - `token` (string): USDC, USDT or both (default both) Example: https://tools.funwords.eu/stablecoin/supply?token=both #### GET /contract/abi — $0.01 The verified ABI of a smart contract on Ethereum, Base, Arbitrum, Optimism or Polygon from Sourcify's open verification repository: contract name, compiler, match quality, every function and event signature, the full ABI, and for proxies the implementation contract with its ABI. Optional source=true adds the main source file (up to 20,000 characters). Unverified contracts are an uncharged 404. Use before calling or decoding a contract. - `address` (string, required): Contract 0x address - `chain` (string): ethereum (default), base, arbitrum, optimism or polygon - `source` (string): true to include the main source file Example: https://tools.funwords.eu/contract/abi?address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 #### GET /uniswap/pool — $0.01 Uniswap v3 pools for a token pair on Ethereum, Base, Arbitrum, Optimism or Polygon, read live from the factory and each pool: pool address per fee tier (0.01%, 0.05%, 0.3%, 1%), price of each token in the other, current tick, in-range liquidity and both token balances held, deepest pool first. Tokens by 0x address or ticker. Use to find the right pool, check depth before a swap or read a spot price. - `tokenA` (string, required): First token: 0x address or ticker - `tokenB` (string, required): Second token: 0x address or ticker - `chain` (string): ethereum (default), base, arbitrum, optimism or polygon Example: https://tools.funwords.eu/uniswap/pool?tokenA=WETH&tokenB=USDC #### GET /keccak — $0.01 Keccak-256 hash (the Ethereum hash) of text or of 0x hex bytes, as used for function selectors, event topics and storage slots. Use when building or decoding EVM calls. - `text` (string, required): Text, or 0x-prefixed hex bytes, up to 10,000 characters Example: https://tools.funwords.eu/keccak?text=transfer(address%2Cuint256) #### GET /network — $0.01 Reference facts for paying and reading on Base mainnet: chain id, native USDC contract and decimals, block explorer and public RPC URLs, and the x402 network identifier. Use to configure an x402 or Base client. - `only` (string): Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result Example: https://tools.funwords.eu/network?format=json ### Web, documents and search #### GET /search — $0.01 Search the web and get the top results as JSON: title, URL, a short snippet and the page age, from the Brave Search API. 1-20 results per call. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Upstream failures and exhausted daily capacity return 503, uncharged. Pair with /extract to read a result in full. Use when an agent needs current information or sources from the open web. - `q` (string, required): Search query, at most 400 characters - `count` (integer): Number of results (1-20, default 10) Example: https://tools.funwords.eu/search?q=x402%20payment%20protocol #### GET /pack/web-research — $0.03 One call to research a question on the web: a Brave web search, then the text of the top 1-5 result pages, read in parallel and clipped to your length, with titles and URLs. A page that cannot be read is listed with its reason. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Use when an agent needs current, sourced information in one step instead of a search plus several page reads. - `q` (string, required): What to research, at most 400 characters - `pages` (integer): How many top results to read in full (1-5, default 3) - `maxChars` (integer): Characters of text per page (500-10000, default 3000) Example: https://tools.funwords.eu/pack/web-research?q=x402%20payment%20protocol #### GET /news — $0.01 News headlines on any topic, crypto included, as JSON: title, URL, snippet, publisher domain and age, from the Brave Search API's news index. 1-20 results per call; freshness limits results to the past day, week or month. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Upstream failures return 503, uncharged. Use when an agent needs current news on a topic. - `q` (string, required): News search query, at most 400 characters - `count` (integer): Number of results (1-20, default 10) - `freshness` (string): Only articles from the past day, week or month (default: any age) Example: https://tools.funwords.eu/news?q=bitcoin%20ETF #### GET /pack/news-sentiment — $0.03 Brand sentiment from the news on a topic in one call: the latest headlines from the Brave News index (title, URL, publisher, age), each with a positive or negative score from a DistilBERT model, and the balance across them. Up to 10 articles from the past day, week or month. Not a market signal. Results are for the caller's immediate use only (Brave API terms). Use for a market mood check, brand monitoring or a news brief. - `q` (string, required): News topic, at most 400 characters - `count` (integer): Number of articles (1-10, default 5) - `freshness` (string): Only articles from the past day, week or month (default: week) Example: https://tools.funwords.eu/pack/news-sentiment?q=bitcoin #### GET /contents — $0.01 Read one to five public web pages in one call and get each one's clean text (or Markdown), title, author and published date where the page declares them, in the request shape search APIs use (urls as a list). Pages are read in parallel; one that cannot be read is listed in statuses with its reason and the rest still answer. Static HTML, Markdown and plain text, up to 20,000 characters a page. Use to read search results in one call. - `urls` (string, required): One to five page URLs: comma-separated, one per line, or a JSON array - `maxChars` (string): Characters per page, 500 to 20000 (default 4000) - `format` (string): text (default) or markdown Example: https://tools.funwords.eu/contents?urls=https%3A%2F%2Fexample.com%2Chttps%3A%2F%2Fwww.iana.org%2Fhelp%2Fexample-domains #### GET /image/metadata — $0.01 Read an image's metadata from its URL: format (JPEG, PNG, GIF or WebP), width and height, and for JPEG photos the EXIF data: camera make and model, lens, date taken, exposure, aperture, ISO, focal length, orientation, software and the GPS position (latitude, longitude, altitude) when it was recorded. Up to 15 MB. Use to check where and when a photo was taken, verify an upload, or strip-check images before publishing. - `url` (string, required): Public URL of the image Example: https://tools.funwords.eu/image/metadata?url=https%3A%2F%2Fraw.githubusercontent.com%2Fianare%2Fexif-samples%2Fmaster%2Fjpg%2Fgps%2FDSCN0010.jpg #### GET /url/favicon — $0.01 Find a website's icons: every , shortcut icon, apple-touch-icon and mask-icon on the page with its size and type, the web app manifest link, and whether /favicon.ico exists, all as absolute URLs, with the best icon picked (SVG, then the largest size; mask icons never). Use to show a site's logo next to a link, build bookmarks or enrich a company record. - `url` (string, required): Page or site URL Example: https://tools.funwords.eu/url/favicon?url=https%3A%2F%2Fgithub.com%2F #### GET /pack/seo-toolkit — $0.03 One call for an on-page SEO analysis of a URL: the SEO audit (title and description lengths, canonical, headings, alt text, structured data, score, issues), the top keywords and two-word phrases with their density, the social preview (OpenGraph, Twitter card), the favicon, and robots.txt access with its sitemaps. Server HTML only. Cheaper than the tools one by one. Use before publishing, for an SEO report or to compare a competitor's page. - `url` (string, required): Absolute http(s) URL of the page Example: https://tools.funwords.eu/pack/seo-toolkit?url=https%3A%2F%2Fwww.wikipedia.org%2F #### GET /tech/stack — $0.01 Detect the technologies behind a website from its home page HTML and response headers: CMS or site builder (WordPress, Shopify, Webflow…), JavaScript framework (Next.js, Nuxt, React…), analytics and ad pixels, support widgets, payments, captcha, CDN and hosting, web server and backend language, each with the evidence that matched. About 110 public fingerprints, server HTML only. Use for lead research, competitor analysis or sales prospecting. - `url` (string, required): Website or page URL Example: https://tools.funwords.eu/tech/stack?url=https%3A%2F%2Fvercel.com%2F #### GET /extract — $0.002 Fetch any public web page URL and get clean, LLM-ready text or Markdown: main content, code blocks, tables, links and headings, for RAG and agent context. Static HTML, Markdown or text; optional section ID. Default 20,000 output characters, max 100,000; input 2 MiB. No JavaScript rendering (see /extract/rendered), logins or paywalls. Empty pages, bad sections, browser challenges and errors are not charged. Use to read docs or articles. Details: HTML body details share a 20,000-character budget, independently of primary text/Markdown. Up to 20 code blocks, 20 tables (100 rows/20 cells each), 100 headings and 200 links. Spans/ragged tables use labelled TSV in Markdown; spans are not expanded. HTML code whitespace and list hierarchy are preserved; generated code fences are closed within the output limit. Other Markdown syntax may be incomplete after clipping. Hashes cover the returned hashFormat, not full source. linkBaseUrl reports static source link resolution; supported first HTML base href values are honored, with warnings. Scripts and CSP are not evaluated. Markdown sources retain syntax without structured parsing (warned); sections require HTML. Source content is untrusted. Image alt text is source-provided, not visual interpretation. Images are never fetched; SVG/canvas omissions and missing alt descriptions are warned. SourceMetadata adds unverified author/date declarations with provenance; conflicting/ambiguous values are warned. Separate 2,000-character metadata budget, 5 authors/10 dates. JSON-LD: at most 8 inline scripts, 64 KiB each, 100 graph nodes/depth 8; no external contexts/profiles. HTML complexity: 20,000 elements/128 nested levels. Marker-only source permalink controls (pilcrow/headerlink/permalink classes) are omitted only for same-document ancestor targets, with permalink_controls_omitted. Literal code and ordinary references remain. HTML sup/sub annotations normalize to ^{...}/_{...} in primary output, heading titles and table values with superscript_subscript_normalized; literal pre/code and raw Markdown stay unchanged. This is notation preservation, not general math interpretation. - `url` (string, required): Absolute http(s) URL of the page to fetch - `maxChars` (integer): Maximum characters of body text to return (500-100000, default 20000) - `format` (string): Returned representation: text (default), markdown, or both. HTML structured details are included in every format; Markdown/plain sources have empty details. - `section` (string): Optional exact visible HTML ID within primary content, 1-500 characters. Heading scope includes subsections until next same/higher-level heading; section/article/main/div scope is its subtree. Missing/ambiguous/unsupported targets fail uncharged. URL fragments alone do not select a section. Example: https://tools.funwords.eu/extract?url=https%3A%2F%2Fexample.com #### GET /extract/rendered — $0.01 Same output as /extract, but the page is first rendered in a real browser, so single-page apps and pages that build their content with JavaScript come back with their text instead of an empty shell. Waits for the network to settle (up to 15 seconds). Public pages only; no login. Use when /extract returns EXTRACTION_EMPTY or too little text for a page you can read in a browser. - `url` (string, required): Absolute public http(s) URL of the page - `format` (string): text (default), markdown or both - `maxChars` (integer): Output limit, 500-100000 characters (default 20000) - `section` (string): Optional exact HTML id to read only that element Example: https://tools.funwords.eu/extract/rendered?url=https%3A%2F%2Fexample.com%2F #### GET /pdf/text — $0.005 Extract the text of a PDF from its URL: downloads a public PDF (up to 10 MB) and returns the text page by page, with title, author, page count and character counts. Choose a first page and how many pages to read (up to 200); cap the output with maxChars. arXiv abstract links are read as the PDF. Scanned PDFs without a text layer, encrypted files and non-PDF URLs fail uncharged. Use to read papers, invoices, reports and manuals into an agent. - `url` (string, required): Absolute public http(s) URL of the PDF - `firstPage` (integer): First page to read (default 1) - `pages` (integer): How many pages to read (1-200, default 20) - `maxChars` (integer): Maximum characters of text returned across all pages (1000-200000, default 50000) Example: https://tools.funwords.eu/pdf/text?url=https%3A%2F%2Fbitcoin.org%2Fbitcoin.pdf #### GET /sitemap — $0.002 Sitemap parser: reads one public XML sitemap or sitemap index as structured URLs and source-reported dates. Supports gzip, substring filtering and pagination. Large sitemaps are read from the start (512 KiB, 1000 entries at most, with a warning). Does not crawl pages or follow child sitemaps. Invalid XML and execution errors are not charged; a valid empty match is charged. Use to find which pages of a docs site to read before calling /extract. Details: XML only: the first 512 KiB (a compressed file must itself be under 512 KiB) and at most 1000 entries are read, 60000 XML elements, depth 16, locations up to 2048 characters. DTD declarations are rejected. contains is a case-insensitive substring of source-reported URLs, not semantic search. Pagination counts distinct reported loc values before public-URL validation of the selected page. Returned URLs are not probed; dates are not verified. Index entries are child sitemaps, not pages. DNS-resolution limitations of the public-fetch guard remain. - `url` (string, required): Absolute public HTTP(S) XML sitemap URL; child sitemaps are not fetched automatically - `contains` (string): Optional case-insensitive URL substring, at most 200 characters - `maxUrls` (integer): Reported matching locations examined in one page (1-100, default 25); invalid/nonpublic locations may reduce returned entries - `offset` (integer): Offset into distinct reported matching locations (0-1000, default 0); use nextOffset to continue Example: https://tools.funwords.eu/sitemap?url=https%3A%2F%2Fwww.sitemaps.org%2Fsitemap.xml #### GET /summarize — $0.01 Give a URL, get a short summary of the page plus three to six key points, ready to drop into an agent's context. Fetches the page, strips navigation and boilerplate, and summarizes the main text with an LLM. HTML pages only; for a PDF use pdf_text, then ai_summarize_text. Use for research, news triage, link previews and deciding whether a page is worth reading in full. For the full text use extract. - `url` (string, required): Absolute http(s) URL of the page to summarize Example: https://tools.funwords.eu/summarize?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FHTTP_402 #### GET /screenshot — $0.01 Render any public web page in a real headless Chrome browser, with JavaScript executed, and get a JPEG screenshot (1280 px wide, base64) plus the final URL, HTTP status and page title. Set fullPage=true to capture up to 4000 px of page height. Use for visual checks, page previews, monitoring and feeding pages to vision models. - `url` (string, required): Absolute http(s) URL of the page to capture - `fullPage` (string): Set to true to capture the full page height (max 4000 px) instead of the 1280x800 viewport Example: https://tools.funwords.eu/screenshot?url=https%3A%2F%2Fexample.com #### GET /papers — $0.01 Research papers search across journals, conferences, preprints and books (Crossref): title, authors, year, venue, citation count, DOI link and abstract where available. Optional fromYear filter and up to 20 results per call. Use for research agents, literature reviews, fact-checking a claim against published work, and finding the DOI for a citation. - `query` (string, required): Search terms, a title or a research question (3-300 characters) - `limit` (integer): Number of results, 1-20 (default 5) - `fromYear` (integer): Only works published in or after this year Example: https://tools.funwords.eu/papers?query=CRISPR%20off-target%20effects #### GET /feed — $0.01 Read a public RSS 2.0, RSS 1.0 or Atom feed and get the feed title, link and description plus its newest items: title, link, date (ISO 8601), short plain-text summary, author and id. Up to 50 items, feeds up to 2 MB. Lenient with real-world feeds; a page that is not a feed returns 422, uncharged. Use to follow news, blogs, release notes or podcasts without scraping pages. - `url` (string, required): Absolute public http(s) URL of the feed, or of a web page whose head links to its feed - `limit` (integer): Items to return (1-50, default 20) Example: https://tools.funwords.eu/feed?url=https%3A%2F%2Fblog.cloudflare.com%2Frss%2F #### GET /url/meta — $0.01 Fetch a public web page's head and return link-preview metadata: title, description, site name, type, preview image, canonical URL, language, author, published time, favicon, theme colour, and every OpenGraph and Twitter-card field. Reads at most 1 MB and never runs JavaScript. Use to build link previews, label citations or check how a URL will unfurl before sharing it. - `url` (string, required): Absolute public http(s) URL of the page Example: https://tools.funwords.eu/url/meta?url=https%3A%2F%2Fgithub.com%2F #### GET /robots — $0.01 Read a site's robots.txt and say whether a crawler may fetch a URL, by RFC 9309 rules as Google applies them (most specific user-agent group, longest matching Allow or Disallow, Allow on ties, * and $ wildcards). Returns the deciding rule, the group used, the rule count and the sitemaps listed. A missing robots.txt (4xx) allows everything. Use before scraping or crawling a site politely; for the sitemap URLs themselves use sitemap. - `url` (string, required): The page URL to check (its site's /robots.txt is read) - `agent` (string): Crawler user agent or product token (default *) Example: https://tools.funwords.eu/robots?url=https%3A%2F%2Fwww.google.com%2Fsearch #### GET /url/redirects — $0.01 Follow a URL's redirects hop by hop (up to 10) and return every hop's status code and Location, the final URL, total hops, timing and whether it loops. Expands short links (bit.ly, t.co…) to their destination without loading the page. Every hop is checked before it is requested; redirects to private addresses are reported, not followed. Use to unshorten a link, check an HTTPS or www redirect, or debug SEO redirect chains. - `url` (string, required): Absolute http(s) URL Example: https://tools.funwords.eu/url/redirects?url=http%3A%2F%2Fgithub.com #### GET /url/uptime — $0.01 Check whether a website is up right now: one live request (following redirects) with the HTTP status, up or down, response time in ms, the final URL, content type, server header and page size, and optionally whether the page contains a given text. Timeouts and connection failures come back as down with the reason, not as an error. Use for uptime monitoring, health checks before calling an API, or to confirm a deploy. - `url` (string, required): Absolute http(s) URL - `contains` (string): Optional text that must appear in the page (first 500 KB) Example: https://tools.funwords.eu/url/uptime?url=https%3A%2F%2Fwww.wikipedia.org%2F #### GET /seo/audit — $0.01 On-page SEO audit of one URL: title and meta description with their lengths, canonical, meta robots, H1s and H2 count, images without alt text, lang and viewport, Open Graph and Twitter card tags, JSON-LD blocks, internal and external link counts and word count, plus a list of issues and a 0-100 score. Reads the server's HTML (no JavaScript), up to 1 MB. Use to check a page before publishing or to compare competitors. - `url` (string, required): Absolute http(s) URL of the page Example: https://tools.funwords.eu/seo/audit?url=https%3A%2F%2Fwww.wikipedia.org%2F #### GET /page/publish — $0.01 Publish an HTML page and get a public URL for it (valid up to 7 days): send the HTML (up to 200,000 characters) and an optional title; the page is sanitised (no scripts, styles, frames, forms or event handlers; links and https images stay), screened by content moderation, stored, and served at /p/ with noindex. Use to hand a person a report, table or summary your agent produced, or to share results between agents. Removal requests: /support. - `html` (string, required): The HTML to publish (body content or a full document), up to 200,000 characters - `title` (string): Page title (default: the first line of text) - `days` (string): Days the page stays online, 1 to 7 (default 7) Example: https://tools.funwords.eu/page/publish?html=%3Ch1%3EWeekly%20report%3C%2Fh1%3E%3Cp%3ESales%20rose%2012%25.%3C%2Fp%3E%3Ctable%3E%3Ctr%3E%3Cth%3ERegion%3C%2Fth%3E%3Cth%3EChange%3C%2Fth%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd%3EEU%3C%2Ftd%3E%3Ctd%3E%2B12%25%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftable%3E #### GET /wikipedia — $0.01 Short summary of a Wikipedia article in any language edition: title, one-paragraph extract, description, thumbnail and page URL. Use to ground an agent's answer in a quick, citable fact sheet. - `title` (string, required): Article title - `lang` (string): Language code (default en) Example: https://tools.funwords.eu/wikipedia?title=Stockholm #### GET /dictionary — $0.01 Dictionary definition of an English word from Wiktionary, grouped by part of speech, with example sentences where Wiktionary gives them, plus the page link and the CC BY-SA attribution to show. Use for writing help, vocabulary, translation checks and word games. - `word` (string, required): An English word Example: https://tools.funwords.eu/dictionary?word=serendipity ### Company, compliance and checks #### GET /check/payee — $0.005 Fast check of a payee before an agent pays it: OFAC SDN match on the address, account type (wallet, delegated wallet or contract) and nonce on Base, Ethereum, Arbitrum, Optimism or Polygon, and optionally the payee domain's age and trust flags. One block, review or pass verdict with reasons. Screening aid, not legal advice. Use before an x402 or USDC payment to an unfamiliar address; holdings and wallet heuristics: check_counterparty. - `address` (string, required): 0x address you are about to pay - `chain` (string): Network of the payment: base (default), eth, arb, op or polygon - `domain` (string): Optional: the payee's domain or website URL, e.g. ethereum.org; adds domain age and trust flags Example: https://tools.funwords.eu/check/payee?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /check/counterparty — $0.01 Screen a payee before paying, trading or onboarding: one call vets an address on Base, Ethereum, Arbitrum or Optimism with an OFAC SDN match, account type and activity, USD holdings and, on Base, wallet or contract risk checks; add the payee's domain for its age and trust flags. One block, review or pass verdict with reasons. Screening aid, not legal advice or a security audit. Use before paying, trading with or onboarding an address. - `address` (string, required): 0x address to check - `chain` (string): Network: base (default), eth, arb or op - `domain` (string): Optional: the payee's domain or website URL, e.g. ethereum.org; adds domain age and trust flags Example: https://tools.funwords.eu/check/counterparty?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 #### GET /check/x402-seller — $0.01 Audit an x402 seller before an agent buys from it: decodes the endpoint's 402 terms without paying, OFAC-screens each payTo address, reads its account type and nonce on the payment network, checks the seller domain's age and trust flags, and flags non-USDC assets and high prices. One block, review or pass verdict with reasons. Never signs. Screening aid, not legal advice. Use before the first payment to an unfamiliar x402 seller. - `url` (string, required): Absolute public https URL of the paid endpoint, with any query it needs Example: https://tools.funwords.eu/check/x402-seller?url=https%3A%2F%2Fagent-data-tools.revmesh2074.workers.dev%2Fbtc-fees #### GET /sanctions/check — $0.005 Check a crypto wallet address against the OFAC SDN sanctions list before you pay it or accept funds: EVM (Ethereum, Base, Arbitrum, Polygon), BTC, USDT, TRX and more, or a person or company name with aliases. Returns a verdict (block on a listed address, review on a name match, pass), each match with SDN ID, programs and strength, and the list date. A screening aid, not legal advice. Use before paying; with wallet risk: check_counterparty. - `address` (string): Crypto address to check (give address, name or both) - `name` (string): Person or company name; matches when every word appears in a listed name or alias Example: https://tools.funwords.eu/sanctions/check?address=0x098B716B8Aaf21512996dC57EB0615e2383E2f96 #### GET /pack/url-safety — $0.03 Check a link before an agent opens or pays it: where it really leads (each redirect hop, the final URL), the destination domain's age, registrar and trust flags, HTTPS and security headers, and named risk signals (days-old domain, bare IP host, punycode look-alike, user@host trick, chains across many hosts). Heuristic signals from public facts, not a phishing blocklist. Use to vet links in emails, chats and scraped pages, or a payee's website. - `url` (string, required): The link to check (http or https) Example: https://tools.funwords.eu/pack/url-safety?url=http%3A%2F%2Fgithub.com #### GET /x402/check — $0.01 Check an x402 seller before you pay it: decode any public endpoint's 402 payment requirements without paying (v1 body or v2 header) into USD price for native USDC, network, asset, recipient, scheme and timeout, plus a listing-quality score for https resource URL, atomic amount, facilitator minimum, description, Bazaar metadata and output schema. Never signs. Use before buying from an unfamiliar seller or to audit your own x402 listing. - `url` (string, required): Absolute public https URL of the paid endpoint, with any query it needs Example: https://tools.funwords.eu/x402/check?url=https%3A%2F%2Fagent-data-tools.revmesh2074.workers.dev%2Fbtc-fees #### GET /sec/filings — $0.01 Latest SEC EDGAR filings for a US-listed company by stock ticker or CIK: form (10-K, 10-Q, 8-K, 4, S-1…), filing and report dates, accession number, document description and a direct link, newest first, optionally only one form type. Plus company name, CIK and industry (SIC). Public SEC data. Use to check a company's latest annual or quarterly report, insider trades (form 4) or material events (8-K). - `ticker` (string): Stock ticker such as AAPL (or give cik) - `cik` (string): SEC Central Index Key, e.g. 320193 (instead of ticker) - `form` (string): Only this form type, e.g. 10-K, 10-Q, 8-K or 4 (default: all) - `limit` (integer): Filings to return, 1-50 (default 10) Example: https://tools.funwords.eu/sec/filings?ticker=AAPL #### GET /pack/website-audit — $0.03 One call to audit a website: is it up and how fast, the redirect chain (including whether plain http moves to https), the on-page SEO audit with its score and issues, HTTP security headers and their grade, robots.txt for the page, and the domain's DNS, email authentication and registration age. Server-side HTML only, no JavaScript. Cheaper than the six tools bought one by one. Use before a launch, for a client report or to compare competitors. - `url` (string, required): Absolute http(s) URL of the page Example: https://tools.funwords.eu/pack/website-audit?url=https%3A%2F%2Fwww.wikipedia.org%2F #### GET /pack/email-deliverability — $0.03 Email deliverability check for a domain in one call: MX records, SPF and its all-policy, DMARC and its policy, DKIM keys at the common selectors (Google, Microsoft, Mailchimp and others), MTA-STS, TLS-RPT and BIMI, with a 0-100 score, a grade and a list of fixes; optionally also checks one address (syntax, MX, disposable domain). Uses public DNS only and sends no mail. Use before a campaign, when mail lands in spam, or to vet a sender domain. - `domain` (string, required): The sending domain, such as example.com (or a URL; its host is used) - `email` (string): Optional address to check as well Example: https://tools.funwords.eu/pack/email-deliverability?domain=github.com #### GET /pack/ip-intelligence — $0.03 One call for everything about an IP address: its type (public, private, loopback, carrier-grade NAT), the registry record (holding organisation, network name and range, registration country, abuse contact) and the reverse DNS name. IPv4 and IPv6. Registration country, not city geolocation. Cheaper than the tools bought one by one. Use to investigate an address in logs, a login or an abuse report. - `ip` (string, required): IPv4 or IPv6 address Example: https://tools.funwords.eu/pack/ip-intelligence?ip=8.8.8.8 #### GET /pack/api-health — $0.03 One call to health-check an API endpoint: up or down with status and response time over three requests (min, median, max), the redirect chain, HTTP security headers, whether it is a paid x402 endpoint and what its payment terms are, and the API's OpenAPI document when one is found at the usual places. Cheaper than the tools bought one by one. Use for API monitoring, before integrating a third-party API, or to check your own after a deploy. - `url` (string, required): The API endpoint URL Example: https://tools.funwords.eu/pack/api-health?url=https%3A%2F%2Fpetstore3.swagger.io%2Fapi%2Fv3%2Fpet%2FfindByStatus%3Fstatus%3Davailable #### GET /openapi/summary — $0.01 Read an OpenAPI 3 or Swagger 2 document (JSON or YAML, up to 2 MB) from a URL and summarise it for an agent: title, version, description, servers, auth schemes, operation count by method, tags, which operations are paid (402 or x-payment-info) or deprecated, and up to 150 operations with method, path, summary and operationId. Use before calling an unfamiliar API, to pick an endpoint, or to compare APIs. - `url` (string, required): URL of the OpenAPI or Swagger document Example: https://tools.funwords.eu/openapi/summary?url=https%3A%2F%2Fpetstore3.swagger.io%2Fapi%2Fv3%2Fopenapi.json #### GET /mcp/inspect — $0.01 MCP server check over streamable HTTP: whether it answers initialize, its name, version, protocol version and capabilities, whether it needs sign-in (OAuth or another 401 challenge), and its tools with names, titles, descriptions and input parameters, plus prompt and resource counts. Read-only: it lists, never calls a tool. Use to vet an MCP server before adding it to an agent, or to check your own after a deploy. - `url` (string, required): The MCP server's streamable-HTTP URL Example: https://tools.funwords.eu/mcp/inspect?url=https%3A%2F%2Fmcp.deepwiki.com%2Fmcp #### GET /pack/domain-intel — $0.03 Company enrichment in one call for any domain: the site's name, description and logo, its tech stack (CMS, frameworks, analytics, hosting), email provider and email security (SPF, DMARC), who hosts the server (IP registry holder), DNS records, and the domain's registrar, age and expiry. Public DNS, RDAP and the home page only. Use for lead enrichment, company research, vendor checks or sales prospecting. - `domain` (string, required): Company domain such as stripe.com (or a URL; its host is used) Example: https://tools.funwords.eu/pack/domain-intel?domain=stripe.com #### GET /email — $0.01 Check email syntax, DNS and MX records, disposable providers, role addresses, free providers and SPF/DMARC presence. Returns likely-deliverable, risky, undeliverable or invalid with reasons. No message is sent and the mail server is not contacted. These are DNS and syntax signals, not proof that a mailbox exists or accepts delivery. Use before sending mail or saving a signup. - `address` (string, required): The email address to check Example: https://tools.funwords.eu/email?address=support%40cloudflare.com #### GET /company — $0.01 Facts about a company by name or Wikidata ID: official website, founding date, country, headquarters, industries, CEO, founders, parent, employee count, stock tickers and exchanges, and LEI, with Wikidata and Wikipedia links. Public domain data (CC0), best for established and listed companies. No match returns 404, uncharged. Use to enrich leads, vendors and counterparties or ground an answer about a company. - `name` (string): Company name to search for (give name or id) - `id` (string): Wikidata item ID such as Q689141, instead of name Example: https://tools.funwords.eu/company?name=Spotify #### GET /domain — $0.005 Domain intelligence in one call: DNS records (A, AAAA, CNAME, MX, NS, TXT, CAA), DNSSEC status, registrar, registration and expiry dates with domain age in days (RDAP/WHOIS), and email authentication (SPF and DMARC records and policies, whether the domain accepts mail). Use for lead qualification, phishing and trust checks, and deliverability audits. For a trust verdict with named flags use domain_report. - `name` (string, required): Domain name, e.g. cloudflare.com Example: https://tools.funwords.eu/domain?name=cloudflare.com #### GET /domain-report — $0.01 A trust verdict for any domain in one call: high/medium/low trust with named flags for very new registrations, expiry, missing or weak SPF and DMARC, too few nameservers, no web host and non-resolving domains, plus the key facts (registrar, age, nameservers, DNSSEC). Use for lead qualification, phishing and vendor checks, and before an agent sends mail to or trusts a domain. Signals only, not a guarantee. Raw DNS records: domain. - `name` (string, required): Domain name, e.g. cloudflare.com Example: https://tools.funwords.eu/domain-report?name=cloudflare.com #### GET /package — $0.002 Reports package existence, latest version and release, age, version count, npm weekly downloads, licenses, deprecation and known advisory severity. ok means no listed flags, not a safety guarantee. Supports npm, PyPI, Cargo, Go, Maven and NuGet. Optional exact version adds pinned-version metadata and uses deps.dev advisories; use /package-audit for OSV affected ranges and dated FIRST EPSS CVE estimates. Use before adding a dependency. - `ecosystem` (string, required): One of npm, pypi, cargo, go, maven, nuget - `name` (string, required): Exact package name, e.g. lodash or @scope/name - `version` (string): Optional exact version to inspect; ranges and tags are not accepted Example: https://tools.funwords.eu/package?ecosystem=npm&name=lodash #### GET /package-audit — $0.01 Check up to 10 public dependencies, optionally pinned to exact versions, for advisory IDs, OSV affected/fixed ranges and dated FIRST EPSS CVE estimates. Scoped npm names supported. Detail and subrequest caps apply; omitted details and incomplete coverage are explicit. Missing evidence is unknown, not zero risk. Automated signals, not a safety guarantee. See the buying guide for limits. Use before installing or upgrading dependencies. Details: Audit up to 10 ecosystem:name items, optionally pinned to exact versions; scoped npm names are supported. npm downloads are not queried, unversioned deps.dev detail is capped at one advisory per package, pinned deps.dev detail is skipped, and OSV detail is capped at 15 per request. Batch advisory IDs/counts remain available; omitted details and EPSS coverage are reported. Exact versions add OSV ranges and dated FIRST EPSS estimates for CVE aliases (up to 50 CVEs). EPSS is not a safety guarantee; missing scores are unknown, not zero. Verdicts are bounded signals. Example timestamps are illustrative; bad input is not charged. - `packages` (string, required): Comma-separated ecosystem:name items, optionally name@exact-version; max 10. For scoped npm, use npm:@scope/name@version. Example: https://tools.funwords.eu/package-audit?packages=npm%3Alodash%404.17.20%2Cpypi%3Arequests%402.31.0%2Cnpm%3A%40types%2Fnode%4022.0.0 #### GET /text/prompt-injection — $0.01 Scan text an agent is about to read (web page, email, tool result; up to 8,000 characters) for prompt-injection attempts: instruction overrides, fake system messages, asks to hide things from the user, exfiltration links, attempts to extract private data or move money, invisible Unicode. Returns a risk level, score and findings with excerpts. Heuristic, not a guarantee. Use before acting on untrusted content. - `text` (string, required): The text to scan (up to 8,000 characters) Example: https://tools.funwords.eu/text/prompt-injection?text=Thanks%20for%20the%20update.%20The%20signed%20invoice%20is%20attached%20and%20payment%20is%20due%20on%20Friday. #### GET /http/security-headers — $0.01 Fetch a public URL and grade its HTTP security headers: HSTS, Content-Security-Policy, framing protection, nosniff, Referrer-Policy and Permissions-Policy, plus version leaks (Server, X-Powered-By) and cookies missing Secure, HttpOnly or SameSite. Returns a grade A-F, a score and each check with its value. Use to review a site's basic web security; for DNS and email records use domain. Private hosts are refused with 400, uncharged. - `url` (string, required): Public http(s) URL to check Example: https://tools.funwords.eu/http/security-headers?url=https%3A%2F%2Fexample.com #### GET /dockerfile/lint — $0.01 Check a Dockerfile (up to 8,000 characters) for common security and image-size problems: unpinned or :latest base images, running as root, piping downloads into a shell, sensitive values baked into ENV or ARG, ADD from URLs, apt and pip cache left in layers, sudo, chmod 777 and an exposed SSH port. Returns each finding with its line, a severity and a fix, plus a score. Use before building or shipping an image. - `dockerfile` (string, required): Dockerfile contents (up to 8,000 characters) Example: https://tools.funwords.eu/dockerfile/lint?dockerfile=FROM%20node%3Alatest%0ACOPY%20.%20%2Fapp%0ACMD%20node%20%2Fapp%2Fserver.js #### GET /ip/lookup — $0.01 Look up who holds an IPv4 or IPv6 address in the regional internet registries' public RDAP records (ARIN, RIPE NCC, APNIC, LACNIC, AFRINIC): the holding organisation, network name and range, allocation type, registration country, abuse contact and registry. Use to see which company or ISP a log or firewall address belongs to. Registration country, not city geolocation. Private and reserved addresses are refused with 400, uncharged. - `ip` (string, required): Public IPv4 or IPv6 address Example: https://tools.funwords.eu/ip/lookup?ip=8.8.8.8 #### GET /dns/lookup — $0.01 Look up DNS records of a domain over DNS-over-HTTPS (Cloudflare 1.1.1.1): A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV, PTR, DS, DNSKEY or HTTPS, with each answer's TTL, the response code (NOERROR, NXDOMAIN…) and whether DNSSEC validated. Use to check email (MX, SPF in TXT), verify a domain, or debug a DNS change; for whether the change has spread use dns_propagation. - `name` (string, required): Domain name (or a URL; its host is used) - `type` (string): Record type: A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS (default A) Example: https://tools.funwords.eu/dns/lookup?name=example.com #### GET /dns/propagation — $0.01 Check whether a DNS change has propagated: the same record queried at five public resolvers (Cloudflare, Google, AdGuard, AliDNS and DNSPod), each resolver's answers and TTLs, whether they all agree, and the majority answer. Record types A, AAAA, CNAME, MX, NS, TXT, CAA. Use to see where an old value is still cached after changing a record, moving hosting or setting up email; for one lookup use dns_lookup. - `name` (string, required): Domain name (or a URL; its host is used) - `type` (string): Record type: A, AAAA, CNAME, MX, NS, TXT or CAA (default A) Example: https://tools.funwords.eu/dns/propagation?name=example.com #### GET /text/pii — $0.01 Find personal data in a text and get it back redacted: emails, phone numbers, card numbers (Luhn-checked), IBANs (mod-97), US SSNs, IP and crypto wallet addresses, each with its position, plus the text with every hit replaced by a label such as [EMAIL]. Hits are shown masked. Up to 20,000 characters; names and street addresses are not detected. Use before logging, storing or sending text to a model. - `text` (string, required): The text to scan (up to 20,000 characters) - `types` (string): Optional comma-separated types to look for: email, iban, credit_card, us_ssn, crypto_address, ip_address, phone (default all) Example: https://tools.funwords.eu/text/pii?text=Contact%20Anna%20at%20anna.berg%40example.com%20or%20%2B46%2070%20123%2045%2067%3B%20card%204111%201111%201111%201111. #### GET /sec/8k — $0.01 Latest Form 8-K current reports for a US-listed company by ticker, name or CIK: filing date, the reported items with their meaning (results of operations, executive departures, material agreements, cybersecurity incidents, bankruptcy and others), accession number and a direct link, newest first. Public SEC EDGAR data. Use to watch a company's material events or check what it disclosed recently. - `ticker` (string): Stock ticker or company name, e.g. AAPL (or give cik) - `cik` (string): SEC Central Index Key, e.g. 320193 (instead of ticker) - `limit` (string): Filings to return, 1-40 (default 10) Example: https://tools.funwords.eu/sec/8k?ticker=AAPL #### GET /sec/insider — $0.01 Recent insider trades in a US-listed company from its SEC Form 4 filings: who traded (name and role: director, officer title, 10% owner), date, buy or sell (open-market purchase, sale, award, option exercise, tax withholding), shares, price, dollar value, holding afterwards and whether it was under a 10b5-1 plan. Up to 10 filings, newest first. Public SEC EDGAR data. Use to see whether insiders are buying or selling. - `ticker` (string): Stock ticker or company name, e.g. AAPL (or give cik) - `cik` (string): SEC Central Index Key of the company (instead of ticker) - `limit` (string): Form 4 filings to read, 1-10 (default 5) Example: https://tools.funwords.eu/sec/insider?ticker=AAPL #### GET /sec/13f — $0.01 The latest 13F-HR holdings of an institutional investment manager (hedge fund, mutual fund family, bank) from SEC EDGAR: each position's issuer, class, CUSIP, value in USD, shares and portfolio weight, largest first, plus the report period, total value and position count. Give the filer by name (e.g. Berkshire Hathaway) or CIK. Public SEC data, filed quarterly up to 45 days after the quarter. Use to see what a fund owns. - `filer` (string): Fund manager's name, e.g. Berkshire Hathaway (or give cik) - `cik` (string): The filer's SEC CIK, e.g. 1067983 (instead of filer) - `limit` (string): Positions to return, 1-200 (default 25) Example: https://tools.funwords.eu/sec/13f?filer=Berkshire%20Hathaway #### GET /gov/federal-register — $0.01 Search the US Federal Register: final rules, proposed rules, notices and presidential documents, newest first, with title, type, agencies, abstract, publication date, comment deadline, effective date and links. Filter by type and agency. From the Federal Register API (US government work). Use to track new regulations or open comment periods on a topic. - `q` (string, required): Search words, e.g. artificial intelligence - `type` (string): rule, proposed_rule, notice or presidential (default all) - `agency` (string): Agency slug, e.g. securities-and-exchange-commission (optional) - `limit` (string): Documents to return, 1-20 (default 10) Example: https://tools.funwords.eu/gov/federal-register?q=artificial%20intelligence ### AI #### GET /ai/chat — $0.002 Send a prompt, get an answer from Meta's Llama 4 Scout (17B active, 16 experts), with an optional system prompt, up to 1,024 output tokens and adjustable temperature. Fast and cheap. Use for drafting, reasoning steps, Q&A and any quick LLM call without an AI provider account; other open models by name at /v1/chat/completions, harder reasoning at ai_chat_large. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) - `messages` (string): Optional OpenAI messages array as JSON (system, user, assistant with tool_calls, tool); replaces prompt and system. Together with tools, at most 20,000 characters - `tools` (string): Optional OpenAI tools array as JSON (function calling, up to 32 functions); the answer then carries tool_calls - `tool_choice` (string): Optional: auto, none, required, or a JSON object naming one function - `response_format` (string): Optional OpenAI response_format as JSON: {"type":"json_object"} or a json_schema Example: https://tools.funwords.eu/ai/chat?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/chat-large — $0.01 Send a prompt, get an answer from a larger open model: Llama 3.3 70B Instruct (default) or OpenAI gpt-oss-120b, with an optional system prompt, up to 1,024 output tokens and adjustable temperature. Same call as /ai/chat with a stronger model. Use when the 8B model is not enough: reasoning, drafting and Q&A. - `prompt` (string, required): User prompt, up to 8,000 characters - `model` (string): llama-3.3-70b (default) or gpt-oss-120b - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/chat-large?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/embed — $0.01 A 1,024-dimension embedding vector for up to 4,000 characters of text in 100+ languages, from BAAI's BGE-M3. Use for semantic search, RAG retrieval, clustering and deduplication. - `text` (string, required): Text to embed, up to 4,000 characters Example: https://tools.funwords.eu/ai/embed?text=pay-per-call%20APIs%20for%20AI%20agents #### GET /transcribe — $0.01 Transcribe speech from an audio file at a public URL using Whisper large-v3-turbo. Returns the transcript text, detected language, duration and word count. Accepts common formats such as MP3, WAV, M4A and OGG up to 5 MB. Use for voice notes, podcast clips, meeting snippets and voice messages. - `url` (string, required): Absolute http(s) URL of an audio file (max 5 MB) Example: https://tools.funwords.eu/transcribe?url=https%3A%2F%2Fcommons.wikimedia.org%2Fwiki%2FSpecial%3AFilePath%2FEn-us-hello.ogg #### GET /ai/speech — $0.01 Turn up to 1,000 characters of text into natural speech as an audio file (base64, with its content type), in English, Spanish, French, Chinese, Japanese or Korean, with MeloTTS. Use for voice replies, audio notes, accessibility and phone or chat bots. - `text` (string, required): Text to speak, up to 1,000 characters - `lang` (string): Language: en, es, fr, zh, ja or ko (default en) Example: https://tools.funwords.eu/ai/speech?text=Your%20payment%20was%20received.%20Thank%20you! #### GET /image — $0.01 Text-to-image generation with FLUX.1 schnell. Send a prompt, get a 1024x1024 JPEG back as base64 in a few seconds. Use for illustrations, thumbnails, mockups, avatars and social media images. Optional steps parameter (1-8, default 4) trades speed for detail. - `prompt` (string, required): What the image should show (3-800 characters) - `steps` (integer): Diffusion steps, 1-8 (default 4) Example: https://tools.funwords.eu/image?prompt=a%20lighthouse%20on%20a%20cliff%20at%20sunset%2C%20watercolor #### GET /describe — $0.01 Vision model for an image at a public URL: get a detailed description including any visible text, or pass a question to ask something specific about the image. Accepts PNG, JPEG, WebP and GIF up to 3 MB. Use for alt text, OCR-style reading of screenshots, chart reading and content checks. - `url` (string, required): Absolute http(s) URL of a PNG, JPEG, WebP or GIF image (max 3 MB) - `question` (string): Optional question about the image (max 300 characters); default is a detailed description Example: https://tools.funwords.eu/describe?url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2F4%2F47%2FPNG_transparency_demonstration_1.png #### GET /ai/summarize-text — $0.01 Summarize up to 12,000 characters of text you send into a few sentences plus bullet key points. Use for long emails, documents, transcripts and tool outputs (for a web page by URL, use /summarize). - `text` (string, required): Text to summarize, up to 12,000 characters - `sentences` (integer): Summary length in sentences, 1-8 (default 3) Example: https://tools.funwords.eu/ai/summarize-text?text=x402%20is%20an%20open%20protocol%20for%20internet-native%20payments.%20A%20server%20answers%20402%20Payment%20Required%20with%20the%20price%3B%20the%20client%20pays%20in%20stablecoins%20and%20retries.%20No%20accounts%20or%20API%20keys%20are%20needed. #### GET /ai/translate — $0.01 Translate text into another language with OpenAI's open-weight gpt-oss-20b, detecting the source language. Long text is split at sentence ends and checked, so a cut-off translation is an uncharged 502, never a success. Give the target as an ISO code such as en, sv, de, fr, es, zh or ja; less common languages use Meta's M2M100. Use to localise messages and documents. - `text` (string, required): Text, up to 4,000 characters - `to` (string, required): Target language code, e.g. sv - `from` (string): Source language code (default: detected) Example: https://tools.funwords.eu/ai/translate?text=Payment%20received%2C%20thank%20you!&to=sv #### GET /ai/extract-json — $0.01 Pull named fields out of unstructured text (emails, invoices, listings, bios) and get them back as a JSON object, with null for anything not present. Use to turn messy text into structured data for an agent. - `text` (string, required): Source text, up to 12,000 characters - `fields` (string, required): Comma-separated field names to extract (1-30) Example: https://tools.funwords.eu/ai/extract-json?text=Invoice%201043%20from%20Acme%20AB%2C%20due%202026-11-01%2C%20total%202%20450%20SEK%20incl.%20VAT.&fields=invoice_number%2Ccompany%2Cdue_date%2Ctotal%2Ccurrency #### GET /ai/answer — $0.01 Answer a question from the live web in one call: a Brave web search, the top result pages read, and an answer written by Llama 4 Scout from those sources only, with inline [n] citations and the source list (title, URL). Says so when the sources do not answer it. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Use when an agent needs a current, sourced answer rather than raw search results. - `q` (string, required): The question, at most 400 characters Example: https://tools.funwords.eu/ai/answer?q=What%20is%20the%20x402%20payment%20protocol%3F #### GET /ai/fact-check — $0.01 Check a claim against the live web in one call: a Brave search, the top pages read, and a verdict from Llama 4 Scout using those sources only (supported, contradicted, mixed or unverified) with a short explanation, [n] citations and the sources. A model's reading of a few search results, not an editorial fact-check. Results are for immediate use only (Brave API terms). Use to screen a statement before an agent repeats or acts on it. - `claim` (string, required): The claim to check, at most 400 characters Example: https://tools.funwords.eu/ai/fact-check?claim=The%20x402%20protocol%20uses%20the%20HTTP%20402%20Payment%20Required%20status%20code. #### GET /ai/rerank — $0.002 Order up to 50 documents by how well each answers a query, with a relevance score from 0 to 1 (BAAI bge-reranker-base, a cross-encoder). Send documents as a JSON array or one per line; each is read up to 2,000 characters, 40,000 in all. Returns the original index, score and text, best first; top_n keeps only the best. Also available in the Cohere-style shape at /v1/rerank. Use to pick what a model reads after search or vector retrieval. - `query` (string, required): What the documents should answer (up to 2,000 characters) - `documents` (string, required): Up to 50 documents: a JSON array of strings, or one per line - `top_n` (string): Keep only the best N results (default all) Example: https://tools.funwords.eu/ai/rerank?query=What%20is%20the%20capital%20of%20France%3F&documents=%5B%22France%20has%20hundreds%20of%20cheeses.%22%2C%22Berlin%20is%20the%20capital%20of%20Germany.%22%2C%22Paris%20is%20the%20capital%20and%20largest%20city%20of%20France.%22%5D #### GET /ai/moderation — $0.002 Classify a text as safe or unsafe with Meta's Llama Guard 3 and name the hazard categories it falls into (violent and non-violent crimes, sexual content, child exploitation, hate, self-harm, weapons, privacy, defamation, elections and others; 14 in all). Up to 8,000 characters. Also available in the OpenAI moderation shape at /v1/moderations. Use to screen user messages, model outputs or content before an agent posts or acts on it. - `text` (string, required): The text to classify (up to 8,000 characters) Example: https://tools.funwords.eu/ai/moderation?text=How%20do%20I%20bake%20sourdough%20bread%20at%20home%3F #### GET /ai/model/qwen3-30b — $0.002 Chat with Alibaba's Qwen3 30B-A3B mixture-of-experts model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens; its reasoning is removed from the answer. Also reachable as model "qwen3-30b" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/model/qwen3-30b?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/model/gpt-oss-20b — $0.002 Chat with OpenAI's open-weight gpt-oss-20b reasoning model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "gpt-oss-20b" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/model/gpt-oss-20b?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/model/gpt-oss-120b — $0.01 Chat with OpenAI's open-weight gpt-oss-120b reasoning model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "gpt-oss-120b" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/model/gpt-oss-120b?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/model/mistral-small — $0.005 Chat with Mistral AI's Mistral Small 3.1 24B model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "mistral-small" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/model/mistral-small?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/model/qwen-coder — $0.005 Chat with Alibaba's Qwen2.5 Coder 32B code model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "qwen-coder" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-1024 (default 400) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/model/qwen-coder?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/model/deepseek-r1 — $0.01 Chat with DeepSeek's R1 reasoning model distilled into Qwen 32B (MIT) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 2,048 output tokens; its reasoning is removed from the answer. Also reachable as model "deepseek-r1" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. - `prompt` (string, required): User prompt, up to 8,000 characters - `system` (string): Optional system prompt, up to 2,000 characters - `maxTokens` (integer): Maximum output tokens, 1-2048 (default 1500) - `temperature` (number): 0-1.5 (default 0.6) Example: https://tools.funwords.eu/ai/model/deepseek-r1?prompt=Explain%20x402%20in%20one%20sentence. #### GET /ai/sentiment — $0.01 Positive or negative sentiment of English text with a confidence score, from a DistilBERT model fine-tuned on SST-2. Use to triage reviews, support messages, social posts and replies. - `text` (string, required): English text, up to 4,000 characters Example: https://tools.funwords.eu/ai/sentiment?text=The%20checkout%20was%20fast%20and%20support%20answered%20within%20minutes. #### GET /ai/classify — $0.01 Zero-shot classification: give text and 2-20 candidate labels, get the best label, a short reason and a ranking. Use for routing tickets, tagging content, intent detection and moderation queues. - `text` (string, required): Text to classify, up to 8,000 characters - `labels` (string, required): Comma-separated candidate labels (2-20) Example: https://tools.funwords.eu/ai/classify?text=My%20card%20was%20charged%20twice%20for%20the%20same%20order.&labels=billing%2Cshipping%2Ctechnical%2Cother #### GET /ai/keywords — $0.01 The most important keywords and key phrases of a text, most relevant first. Use for tagging, SEO, search indexing and topic detection. - `text` (string, required): Text, up to 12,000 characters - `count` (integer): How many, 3-30 (default 10) Example: https://tools.funwords.eu/ai/keywords?text=Cloudflare%20Workers%20run%20JavaScript%20at%20the%20edge.%20Workers%20AI%20adds%20GPU%20inference%20for%20open%20models. #### GET /ai/rewrite — $0.01 Rewrite text to be more formal, casual, simpler, shorter, friendlier, more professional or more persuasive, keeping the meaning and language. Use to polish emails, replies, product copy and messages. - `text` (string, required): Text, up to 8,000 characters - `style` (string): formal, casual, simpler, shorter, friendly, professional or persuasive (default professional) Example: https://tools.funwords.eu/ai/rewrite?text=hey%2C%20cant%20make%20it%20tmrw%2C%20can%20we%20move%20to%20thu%3F #### GET /ai/outline — $0.01 A structured Markdown outline (headings and bullet points) of a text you send, or a suggested outline for a topic. Use to plan articles, reports, talks and documentation. - `text` (string, required): Text to outline, or a topic, up to 12,000 characters - `depth` (integer): Heading levels, 1-3 (default 2) Example: https://tools.funwords.eu/ai/outline?text=How%20small%20businesses%20can%20accept%20stablecoin%20payments ### Everyday data #### GET /airport/status — $0.01 Live FAA National Airspace System status for US airports: ground stops, ground delay programs, arrival and departure delays (with minimum, maximum and trend) and closures, each with its reason. Give an IATA code such as LGA for one airport (normal when nothing is reported), or nothing for the whole country. Public FAA data, refreshed about every minute. Use before travel planning, logistics or customer notices. - `airport` (string): IATA airport code such as LGA, SFO or ORD (default: all US airports with events) Example: https://tools.funwords.eu/airport/status?airport=LGA #### GET /pack/location-brief — $0.03 One call for a place by name: its coordinates, country, region, population and elevation (Wikidata), the current weather and a short hourly forecast (MET Norway, CC BY 4.0), today's sunrise, sunset and day length, and facts about its country (capital, region, income level, population). Cheaper than the tools bought one by one. Use for travel planning, event and delivery context, or enriching a city name in a record. - `place` (string, required): Place name, such as Stockholm or Lyon, France Example: https://tools.funwords.eu/pack/location-brief?place=Stockholm #### GET /weather — $0.01 Current weather by city name, or by latitude and longitude, for any place on Earth: temperature in Celsius, conditions (clear, cloudy, rain, snow), precipitation in mm, wind, humidity, cloud cover and air pressure, plus an hourly forecast for up to 48 hours. Data from the Norwegian Meteorological Institute; city names resolve via Wikidata. Use for travel and event planning, logistics, agriculture and any agent that needs the weather. - `city` (string): City or place name, e.g. London or Uppsala (used when lat and lon are not given) - `lat` (number): Latitude in decimal degrees, -90 to 90 (with lon, instead of city) - `lon` (number): Longitude in decimal degrees, -180 to 180 (with lat, instead of city) - `hours` (integer): Hours of hourly forecast to return, 1-48 (default 12; 48 covers tomorrow) Example: https://tools.funwords.eu/weather?city=London #### GET /econ/gdp — $0.01 GDP of any country from World Bank data: GDP in current US dollars, annual real GDP growth in % and GDP per capita in US dollars, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for country comparisons, market sizing and macro context. - `country` (string, required): ISO 3166 code (SE, SWE) or English country name (Sweden) - `years` (integer): Years of history to return, 1-10 (default 5) Example: https://tools.funwords.eu/econ/gdp?country=SE #### GET /econ/inflation — $0.01 Inflation rate of any country: annual % change in consumer prices (CPI) from World Bank data, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for real-return, pricing and macro questions. - `country` (string, required): ISO 3166 code (SE, SWE) or English country name (Sweden) - `years` (integer): Years of history to return, 1-10 (default 5) Example: https://tools.funwords.eu/econ/inflation?country=SE #### GET /econ/population — $0.01 Population of any country from World Bank data: total population, annual population growth in % and the urban share of the population in %, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for market sizing, per-capita figures and demographics. - `country` (string, required): ISO 3166 code (SE, SWE) or English country name (Sweden) - `years` (integer): Years of history to return, 1-10 (default 5) Example: https://tools.funwords.eu/econ/population?country=SE #### GET /econ/unemployment — $0.01 Unemployment rate of any country from World Bank data (ILO modelled estimates): total unemployment and youth unemployment (ages 15-24) as % of the labour force, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for labour-market and macro questions. - `country` (string, required): ISO 3166 code (SE, SWE) or English country name (Sweden) - `years` (integer): Years of history to return, 1-10 (default 5) Example: https://tools.funwords.eu/econ/unemployment?country=SE #### GET /time — $0.01 The exact current date and time in any IANA time zone (UTC when none is given), with UTC offset, weekday, abbreviation and Unix timestamp, daylight saving time handled. Optionally convert a given moment into up to 10 other time zones in the same call. Use when an agent needs to know what time it is, to schedule across time zones or to turn a timestamp into local time. A bare GET is the smallest paid end-to-end test of an x402 or MPP client. - `zone` (string): IANA time zone name, e.g. Europe/Stockholm or America/New_York (default UTC) - `at` (string): Optional moment to convert, as ISO 8601 with an offset (default: now) - `to` (string): Optional comma-separated time zones to convert the same moment into (max 10) Example: https://tools.funwords.eu/time?zone=Europe%2FStockholm #### GET /geocode/reverse — $0.01 Turn latitude and longitude into place names: the nearest populated place and the largest one within the radius (usually the town or city the point is in), with country and ISO code, administrative region, population, distance and Wikidata id, plus the other places nearby. Data from Wikidata (CC0). Use to label GPS points, photos, deliveries or IP-derived coordinates; for place name to coordinates use geocode. - `lat` (number, required): Latitude (-90 to 90) - `lon` (number, required): Longitude (-180 to 180) - `radius` (number): Search radius in km, 1-50 (default 10) Example: https://tools.funwords.eu/geocode/reverse?lat=59.3293&lon=18.0686 #### GET /gov/clinical-trials — $0.01 Search ClinicalTrials.gov studies by condition, intervention or any words, optionally only recruiting ones: NCT id, title, status, phase, conditions, interventions, sponsor, enrollment, start and completion dates, number of locations and countries, and a link. From the ClinicalTrials.gov API (US National Library of Medicine). Information only, not medical advice. Use to find trials for a condition or drug. - `condition` (string): Condition or disease, e.g. type 1 diabetes - `intervention` (string): Drug or intervention, e.g. semaglutide (optional) - `q` (string): Any other words (optional) - `status` (string): recruiting, active, completed or all (default recruiting) - `limit` (string): Studies to return, 1-20 (default 10) Example: https://tools.funwords.eu/gov/clinical-trials?condition=type%201%20diabetes #### GET /holidays — $0.01 Nationwide public holidays for a year in the US (federal), UK (England and Wales), Sweden, Germany, France, Norway, Denmark and Finland: date, local and English name, and the weekday it is observed on where a weekend moves it. Computed from statutory rules for 2024-2100. Use for scheduling, delivery dates and business-day maths. - `country` (string, required): ISO 3166-1 alpha-2 code: US, GB (UK), SE, DE, FR, NO, DK or FI; English country names also work - `year` (integer): Year, 2024-2100 (default this year) Example: https://tools.funwords.eu/holidays?country=SE #### GET /earthquakes — $0.01 Recent earthquakes worldwide from the US Geological Survey: magnitude, place, time, depth, coordinates, tsunami flag and USGS link, for the past day or week, filtered by minimum magnitude (2.5, 4.5 or significant). Use for alerts, news and travel checks. - `period` (string): hour, day (default), week or month - `minMagnitude` (string): Smallest magnitude to include, 0-10 (default 2.5), or significant Example: https://tools.funwords.eu/earthquakes?period=day #### GET /geocode — $0.01 Find places by name in Wikidata (CC0) and get their coordinates, description, country, administrative region, population and elevation where recorded, best match first. Cities, towns, landmarks and other places with coordinates. Use before weather, sun or distance lookups, or to tell two places of the same name apart. - `name` (string, required): Place name - `count` (integer): Max results (1-10, default 5) Example: https://tools.funwords.eu/geocode?name=Uppsala #### GET /sun — $0.01 Sunrise, sunset, solar noon, civil dawn and dusk (UTC) and day length for any place and date, computed with the standard solar equations; handles polar day and night. No outside service. Use for photography, events and outdoor planning. - `lat` (number, required): Latitude (-90 to 90) - `lon` (number, required): Longitude (-180 to 180) - `date` (string): Date (default today) Example: https://tools.funwords.eu/sun?lat=59.33&lon=18.07 #### GET /moon — $0.01 Moon phase name, illuminated percentage and age in days for any date, plus the next new and full moon (UTC). Computed locally from the mean synodic month. Use for calendars and night-sky planning. - `date` (string): Date or ISO time (default now) Example: https://tools.funwords.eu/moon?date=2026-10-18 #### GET /country — $0.01 Facts about a country by ISO code (SE, SWE, US…): official World Bank name, ISO-2 and ISO-3 codes, region, income level, capital city and its coordinates, and the latest population figure with its year (World Bank open data). Use to enrich records with country data. - `country` (string, required): ISO 3166 alpha-2 or alpha-3 code Example: https://tools.funwords.eu/country?country=SE #### GET /npm/downloads — $0.01 Download counts of an npm package for the last day, week and month, from the official npm registry API. Use to judge how widely a dependency is used. - `package` (string, required): Package name, e.g. react or @scope/name Example: https://tools.funwords.eu/npm/downloads?package=hono #### GET /pypi — $0.01 Latest version, summary, licence, required Python version, home page, release date and number of releases of a Python package on PyPI. Use to check a dependency before installing it. - `package` (string, required): PyPI package name Example: https://tools.funwords.eu/pypi?package=requests ### Utilities #### GET /memory/set — $0.002 Save a value (up to 8,000 characters of text or JSON) under a key in your own namespace, so an agent can remember facts, preferences or task state between runs. Overwrites an existing key; expires after 1 to 30 days (default 30). Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to persist what an agent learned for a later call to memory_get. - `namespace` (string, required): Your namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs. - `key` (string, required): The key, up to 200 characters - `value` (string, required): The text or JSON to save, up to 8,000 characters - `days` (string): Days to keep it, 1 to 30 (default 30) Example: https://tools.funwords.eu/memory/set?namespace=demo-agent-memory-7f3c9a21&key=user-preferences&value=%7B%22language%22%3A%22en%22%2C%22units%22%3A%22metric%22%7D #### GET /memory/get — $0.002 Read the value saved under a key in your namespace with /memory/set, with when it was saved and when it expires. A key that was never saved or has expired is a 404 and is not charged. Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to recall what an agent saved in an earlier run. - `namespace` (string, required): Your namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs. - `key` (string, required): The key, up to 200 characters Example: https://tools.funwords.eu/memory/get?namespace=demo-agent-memory-7f3c9a21&key=user-preferences #### GET /recommend — $0.002 Describe a task in plain words and get the best-matching paid API calls for it from a catalog of 320 tools (web search and page reading, LLM chat, token prices and chain reads on 5 networks, sanctions and company checks, weather, finance and utilities): each pick with the exact call URL, required inputs, price, MCP tool name and whether it is in the free calls. Use when an agent needs to find which API to call before paying for one. - `need` (string, required): The task in plain words, up to 300 characters - `count` (string): How many picks, 1 to 5 (default 3) Example: https://tools.funwords.eu/recommend?need=current%20gas%20price%20on%20Base #### GET /pack/hash-toolbox — $0.03 Every common hash of one input in a single call: MD5, SHA-1, SHA-256, SHA-384, SHA-512, Keccak-256 (Ethereum), CRC-32, base64 SHA-256, and Subresource Integrity strings (sha256-, sha384-, sha512-) for