{"protocolVersion":"0.3.0","name":"flat-rate-llm","description":"Pay-per-call API for agents: AI, on-chain reads, web and utility endpoints. No API key, no account, no subscription — payment via x402 is the authentication.","url":"https://flat-rate-llm.kikoribera03.workers.dev","preferredTransport":"JSONRPC","additionalInterfaces":[{"transport":"JSONRPC","url":"https://flat-rate-llm.kikoribera03.workers.dev/mcp"}],"provider":{"organization":"flat-rate-llm","url":"https://flat-rate-llm.kikoribera03.workers.dev/transparency"},"version":"1.0.0","documentationUrl":"https://flat-rate-llm.kikoribera03.workers.dev/llms.txt","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"skills":[{"id":"v1-do","name":"Describe the job, get it done: one call over the whole toolbox","description":"Describe a job in plain words and it gets done in ONE paid call: picks the right tools from 71 capabilities - transcription, translation, documents, images, web, on-chain, domains, IPs, weather, FX - fills their parameters and chains up to 3 steps, feeding each result into the next. Priced per job: the 402 challenge quotes YOUR job before you sign, from $0.02. You pay for not having to know which tool or which order. If nothing fits, nothing is charged.","tags":["agent","orchestration","router","do anything","one call","toolbox","workflow","automation","multi-step"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.02","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-balance","name":"EVM native balance","description":"Native coin balance (ETH, MATIC...) for any address, on Base, Ethereum, Polygon, Arbitrum or Optimism. Flat price, no rate limits, no API key. Via eth_getBalance.","tags":["wallet balance","native balance","balance","eth balance","evm","wallet","rpc","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-erc20-balance","name":"ERC20 token balance","description":"ERC20 token balance for any wallet - USDC, USDT, DAI or any token - via balanceOf. Returns the raw amount and the decimals so you can format it. Via eth_call (balanceOf).","tags":["erc20 balance","token balance","erc20","balanceof","usdc","token","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-token-info","name":"ERC20 token info","description":"Name, symbol, decimals and total supply of any ERC20 contract in one call. Useful to label a token address before showing it to a user. Via eth_call.","tags":["token metadata","token info","erc20","symbol","decimals","supply","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-token-price","name":"DEX token price, with the pool that produced it","description":"Spot price of any ERC20 read straight from the deepest Uniswap V3 pool against USDC, on Base, Ethereum, Polygon, Arbitrum or Optimism. Returns the pool address, fee tier, liquidity, sqrtPriceX96, tick and block, so the number can be audited instead of trusted. No aggregator and no API key: the source is the chain itself. Via eth_call.","tags":["token price","dex price","uniswap","spot price","price feed","onchain price","erc20","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-gas","name":"EVM gas price","description":"Current gas price and base fee for any supported chain, in wei and gwei, plus the cost estimate of a plain transfer. For agents planning a transaction. Via eth_gasPrice.","tags":["gas price","gas","gwei","gas fees","evm","fees","rpc","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-block","name":"EVM block height","description":"Latest block height and timestamp of any supported chain, plus how old the chain head is in seconds. Tells an agent whether a node is in sync. Via eth_getBlockByNumber.","tags":["block number","block height","latest block","block","evm","monitoring","rpc","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-tx","name":"EVM transaction","description":"Full transaction details by hash, merged with its receipt: from, to, value, gas used, status and block. One call instead of two. Via eth_getTransactionByHash.","tags":["transaction lookup","transaction","tx","lookup","evm","rpc","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-nonce","name":"EVM address nonce","description":"Next transaction nonce for any address, and whether the address is a contract. What an agent needs before signing a transaction. Via eth_getTransactionCount.","tags":["nonce","account nonce","transaction count","wallet","evm","rpc","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-is-contract","name":"Contract or wallet","description":"Tells whether an address is a smart contract or a plain wallet, and how big its bytecode is. A cheap safety check before sending funds. Via eth_getCode.","tags":["is contract","contract or wallet","eoa","bytecode","contract","security","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-chains","name":"Chain health check","description":"Live health of every supported chain in one call: chain id, block height and how stale the head is. Use it to pick a chain that is actually responding. Via eth_getBlockByNumber.","tags":["chain health","rpc health","multichain","uptime","monitoring","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-call","name":"Raw contract call","description":"Runs any read-only contract call (eth_call) with your own calldata and returns the raw result, on five chains, with no API key and no rate limit. The escape hatch for anything the typed endpoints do not cover.","tags":["eth_call","read contract","contract call","calldata","abi","contract","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-receipt","name":"Transaction receipt","description":"Receipt of a transaction: whether it succeeded or reverted, gas used, fee actually paid, and how many logs it emitted. The call that answers did my transaction work. Via eth_getTransactionReceipt.","tags":["transaction receipt","tx status","receipt","confirmed","reverted","transaction","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-estimate-gas","name":"Estimate gas","description":"Estimates the gas a transaction would need and prices it at the current gas price, before you sign anything. Also the cheapest way to find out that a call would revert. Via eth_estimateGas.","tags":["estimate gas","gas estimate","simulate","revert check","gas","simulation","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-storage","name":"Raw contract storage","description":"Reads a raw storage slot of any contract, decoded as hex, integer and address. How you inspect proxy implementation slots, owners and paused flags that have no public getter. Via eth_getStorageAt.","tags":["contract storage","storage slot","eip1967","proxy","implementation","storage","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-erc20-allowance","name":"ERC20 allowance","description":"How much of a token a spender is still allowed to move on an owner's behalf, and whether that approval is unlimited. The check to run before an approve, and the one that finds forgotten infinite approvals. Via eth_call (allowance).","tags":["erc20 allowance","allowance","approve","spender","usdc","erc20","security","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-nft-owner","name":"NFT owner and metadata","description":"Who owns a given ERC721 token id, plus its tokenURI and collection name in the same call. Answers is this NFT still theirs without an indexer or an API key. Via eth_call (ownerOf).","tags":["nft owner","ownerof","erc721","tokenuri","nft","ownership","collection","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-portfolio","name":"Wallet token portfolio","description":"Native balance plus the balance of every token you list, on one chain, in a single paid call - each with symbol and decimals already applied. One request instead of one per token. Via eth_getBalance + eth_call.","tags":["wallet portfolio","portfolio","holdings","token balances","multi token","wallet","usdc","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-fees","name":"EIP-1559 fee suggestion","description":"Suggested maxFeePerGas and maxPriorityFeePerGas from the last 20 blocks of real fee history, at slow, normal and fast percentiles. Beats guessing a gas price and getting stuck in the mempool. Via eth_feeHistory.","tags":["eip1559","priority fee","maxfeepergas","gas fees","gwei","gas","evm","base","ethereum","polygon","arbitrum","optimism"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-ens","name":"ENS name resolution","description":"Resolves an ENS name to its address, or an address back to its primary ENS name, reading Ethereum mainnet directly. Names are what humans paste and addresses are what chains need.","tags":["ens resolution","ens","eth name","reverse lookup","naming","ethereum","vitalik.eth"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-token-safety","name":"ERC20 pre-trade safety check","description":"Pre-trade risk check for any ERC20 on Base, Ethereum, Polygon, Arbitrum or Optimism, straight from the deployed bytecode and live state. Detects mint, pause, blacklist, upgradeable proxy and mutable buy/sell tax powers, and reports whether ownership is renounced. Unlike LLM-written verdicts this returns the EVIDENCE - the exact selector found and its byte offset - so an agent can apply its own policy. Deterministic: same contract, same answer.","tags":["token safety","rug pull","honeypot","erc20","risk","pre-trade","contract audit","evm","base"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-evm-verdict","name":"Plain-language verdict on an ERC20, with the evidence under it","description":"One-call verdict on any ERC20 on Base, Ethereum, Polygon, Arbitrum or Optimism: a machine-readable label for who can act on your balance (no-owner-powers, owner-can-intervene, owner-controls-balances, not-a-token), a headline, a plain-language reading and a paste-ready card - with the deterministic evidence underneath, selector by selector. Label, score and card come from the deployed bytecode and live state, never from a model. Research, not investment advice.","tags":["token verdict","contract verdict","rug pull","honeypot","erc20","risk score","pre-trade","token report","evm","base"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.02","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-keccak256","name":"Keccak-256 hash","description":"Keccak-256 of any string or hex payload - the hash Ethereum actually uses, which is NOT the same as SHA3-256. Needed for selectors, event topics, salts and CREATE2 addresses.","tags":["keccak256","keccak","hash","solidity","sha3","digest","crypto","ethereum"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-sha256","name":"SHA-256 hash","description":"SHA-256 of any string or hex payload, returned as hex and as base64. The hash everything outside Ethereum uses: file digests, API signatures, content addressing.","tags":["sha256","hash","checksum","digest","integrity","crypto","base64"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-address","name":"Address checksum and validation","description":"Validates an EVM address and returns it in EIP-55 mixed-case checksum form. Catches typos before you send funds: an address that fails the checksum is almost always mistyped.","tags":["address checksum","eip55","address validation","checksum","evm address","safety","0x address"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-units","name":"Token unit converter","description":"Converts between wei, gwei, ether and any token decimals using exact integer maths - no floating point, no silent rounding. The mistake that costs real money is being off by a thousand on decimals.","tags":["wei to ether","wei","gwei","unit conversion","format units","ether","decimals","evm"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-hex","name":"Hex converter","description":"Converts between hex, decimal and UTF-8 text in one call, with big integers handled exactly. For reading raw RPC output, which comes back as hex and overflows a JavaScript number.","tags":["hex encoding","hex to decimal","hex","decimal","parse hex","bigint","conversion"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-base64","name":"Base64 encode and decode","description":"Base64 in both directions, including the URL-safe alphabet, with UTF-8 handled properly. Encoding is what carries payloads through headers and JSON, and x402 itself rides on it.","tags":["base64","base64 decode","base64 encode","url safe","encoding","atob","btoa","text"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-uuid","name":"UUID v4 generator","description":"Cryptographically random UUID v4s, up to 100 per call, straight from the platform CSPRNG. For idempotency keys, request ids and correlation ids - the ones that must not collide.","tags":["uuid","uuid v4","guid","request id","idempotency","random","identifier"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-verify-signature","name":"Verify wallet signature","description":"Recovers the address that signed a personal_sign (EIP-191) message and tells you whether it matches the address you expected. This is how you prove a wallet is controlled by whoever is talking to you.","tags":["verify signature","ecrecover","eip191","personal_sign","siwe","signature","auth","wallet"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-selector","name":"Function selector and event topic","description":"Turns a Solidity signature like transfer(address,uint256) into its 4-byte function selector and its 32-byte event topic0. What you need to build calldata by hand or to filter logs.","tags":["function selector","4byte","topic0","function signature","abi","selector","calldata","solidity"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-random-dice","name":"Dice roller","description":"Roll dice with any number of faces and get every roll plus the total. Uses the platform CSPRNG with rejection sampling, so every face is equally likely - a plain modulo is biased. Standard dice notation: 3d6, 1d20.","tags":["dice","roll dice","d20","random","tabletop"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-random-coinflip","name":"Coin flip","description":"Flip one or more fair coins and get heads or tails, with the tally. Cryptographically random, not Math.random. For tie-breaks and A/B splits an agent has to decide on its own.","tags":["coin flip","flip a coin","heads or tails","random","coin toss"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-random-pick","name":"Random pick","description":"Pick one or more items at random from a list you send, with or without repeats. The list is yours, so this is the unbiased chooser an agent needs when it has options and no reason to prefer any.","tags":["random pick","choose","random choice","sample","lottery"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-random-shuffle","name":"Shuffle a list","description":"Shuffle a list into a uniformly random order with Fisher-Yates over the platform CSPRNG. Every permutation is equally likely, which sorting by a random key does not give you.","tags":["shuffle","randomize order","fisher-yates","permutation","random"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-random-password","name":"Password generator","description":"Generate strong random secrets from the platform CSPRNG, with the entropy in bits so you can judge them. Four alphabets, including one with no look-alike characters for anything a human has to read back.","tags":["password generator","random password","secret","token","entropy"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-random-number","name":"Random number","description":"Uniform random integers in any range you give, with or without repeats. Rejection sampling, so the ends of the range are not slightly less likely - which is what happens with modulo.","tags":["random number","random integer","rng","range","uniform"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-time-convert","name":"Time zone converter","description":"Convert a time between any two IANA time zones, with daylight saving applied from the runtime's own tz database. Returns both sides with their UTC offset, abbreviation and DST flag, plus the UTC instant and the difference in hours. Warns when the time you asked for does not exist or happens twice because the clocks change that day: the two cases that quietly make a hand-made conversion wrong.","tags":["timezone converter","convert time","time zone","daylight saving","utc offset"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-time-now","name":"Current time in a time zone","description":"The current time in any IANA time zone, in every form an agent needs at once: ISO with offset, 24-hour, 12-hour, weekday, unix timestamp and UTC. It also says whether daylight saving is active right now and what the zone's standard offset is, so a shifted clock can be told apart from a permanent one.","tags":["current time","what time is it","time zone","local time","utc"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-time-zones","name":"Time zone directory","description":"Search the full IANA time zone list and get each zone's current UTC offset, abbreviation, local time and DST state. Use it to turn a city or a country into the exact zone name the other endpoints expect, or to find every zone sitting at a given offset right now.","tags":["timezone list","iana time zones","time zone search","utc offset","daylight saving"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-horror-story","name":"Two-sentence horror story","description":"One two-sentence horror story, in English or Spanish, by theme: domestic, technological, cosmic or folk. Returned SPLIT into setup and payoff as well as joined, so a narrating agent can deliver the first line, pause, and then land the second. Takes parameters, returns an id to avoid repeats, and accepts a seed for a reproducible answer.","tags":["horror story","scary story","two sentence horror","creepy","fiction"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-roast","name":"Developer roast, on a target you pick","description":"One lighthearted developer roast aimed at a target YOU choose - javascript, python, css, git, regex, kubernetes, agile or legacy code - and at the severity you ask for. Every other roast endpoint returns something generic; this one lets a code-review agent roast the actual stack in front of it. Bilingual, seedable and repeat-free.","tags":["roast","developer roast","programming humour","code review","insult"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-joke","name":"Random joke","description":"One random joke, in English or Spanish, filtered by category: programming, crypto or general. Unlike the usual one-liner endpoints this one takes parameters, returns an id so you can exclude what you have already seen, and accepts a seed for a reproducible answer.","tags":["joke","random joke","humour","programming joke","fun"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-fact","name":"Random fact","description":"One curious but true fact, in English or Spanish, filtered by topic: science, computing, history or nature. Takes parameters, returns an id so you can avoid repeats across a session, and accepts a seed for a reproducible answer.","tags":["random fact","fun fact","trivia","did you know","facts"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-riddle","name":"Riddle with checkable answer","description":"One riddle by difficulty, in English or Spanish, with the answer AND the SHA-256 of the answer in lowercase. The hash is the point: an agent can check whether its guess is right without reading the solution first, which no other riddle endpoint lets you do.","tags":["riddle","puzzle","brain teaser","quiz","riddle answer"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-advice","name":"One piece of advice","description":"One piece of practical advice about work, life or money, in English or Spanish. Short, concrete and usable - not a fortune cookie. Filterable by topic, with an id to avoid repeats and a seed for reproducibility.","tags":["advice","life advice","tip","wisdom","guidance"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-content-word-of-the-day","name":"Word of the day","description":"The word of the day with its definition, part of speech and an example sentence, in English or Spanish. Genuinely of the day: it is picked deterministically from the UTC date, so everyone gets the same word and you can reproduce any past day by passing it. The usual endpoints just return a random word and call it the word of the day.","tags":["word of the day","vocabulary","definition","dictionary","learn"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-email-check","name":"Email address check","description":"Scores one email address 0-100 with a verdict (ok, risky, disposable, undeliverable, invalid) and the evidence under it: every point lost is itemised with the field that proves it. 12,141 disposable domains from two maintained open lists pinned to a commit, 4,897 free providers, 1,018 role names, typo fix (gmial.com > gmail.com), live MX/SPF/DMARC. No SMTP probe, no API key.","tags":["email validation","email verification","verify email","email checker","mx record","spf","dmarc","disposable email","role account","deliverability","dns","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-domain-check","name":"Domain DNS check","description":"Everything DNS says about one domain in a single call: whether it is registered, its A and AAAA addresses, nameservers, MX servers, SPF and DMARC, DNSSEC, and whether it looks parked. Built for going through a list of domains one at a time. Live DNS, no API key, no account.","tags":["domain check","dns lookup","domain availability","nameservers","mx record","spf","dmarc","dnssec","a record","parked domain","dns","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-web-read","name":"Read a web page as markdown","description":"Fetches one URL and returns the readable page as markdown: title, description, headings, paragraphs and links with their destinations, plus the canonical URL, language and word count. Boilerplate, scripts and navigation are stripped. Built for going through a list of links one at a time. No API key, no account.","tags":["url to markdown","read url","fetch url","web page to markdown","scrape","html to markdown","extract text","page content","readability","crawler","web reader","list crawling"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-iban","name":"IBAN check","description":"Validates one IBAN offline: country, expected length, ISO 7064 mod-97 check digits, whether it is inside SEPA, and the account number split out. Deterministic, no network call and no third party that can go down. Built for cleaning a list of accounts one at a time.","tags":["iban validation","iban check","validate iban","bank account","sepa","mod 97","iso 13616","payments","kyc","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-vat","name":"EU VAT number check","description":"Validates one EU VAT number offline: country prefix, the format that country uses, and the published check-digit algorithm where one exists. Says explicitly whether the check digits were verified or only the format. Deterministic, no network call. Built for cleaning a list of companies one at a time.","tags":["vat validation","vat number","validate vat","eu vat","vies","tax id","company check","b2b","invoicing","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-web-status","name":"URL status and redirect chain","description":"Checks one URL without downloading the page: HTTP status, the full redirect chain hop by hop with the code of each, the final URL, whether it ends on HTTPS, content type and size, and the security headers the server sends. Built for going through a list of links one at a time. No API key, no account.","tags":["http status checker","link checker","broken links","redirect chain","url status","301 302","dead link","sitemap audit","seo","crawler","list crawling"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-ip","name":"IP address intelligence","description":"Looks up one IPv4 or IPv6 address against the two authoritative, keyless public sources: RDAP registry data (who holds the block, in which country, since when, abuse contact) via the ARIN-to-RIR referral chain, and the origin ASN from Team Cymru's DNS service. No city-level geolocation and no VPN/proxy detection — those need a licensed commercial database this endpoint deliberately does not use. Built for going through a list of IPs one at a time.","tags":["ip lookup","ip intelligence","ip geolocation","rdap","whois ip","asn lookup","ip to asn","abuse contact","network registry","fraud detection","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-asn","name":"ASN lookup","description":"Everything the authoritative public sources say about one autonomous system number: the RDAP registry record via the ARIN-to-RIR referral chain (holder, status, allocation dates, abuse contact), the AS name, country and RIR from Team Cymru's DNS service, and the prefixes it is announcing right now in the global routing table, from RIPEstat, split into IPv4 and IPv6 with a sample. Keyless and free at the source. The natural second call after /v1/red/ip gives you an origin ASN.","tags":["asn lookup","as number","autonomous system","bgp","announced prefixes","routing table","rdap","whois asn","network intelligence","abuse contact","peering","ip to asn"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-dnsbl","name":"IP blocklist check","description":"Checks one IPv4 address against nine public DNS blocklists at once — SpamCop, UCEPROTECT, PSBL, Barracuda, DroneBL and four more — and returns each list's raw return code plus the reason text the list itself publishes, not a score. Every list is re-checked on each call with its RFC 5782 test entry, so a dead list or one that refuses queries comes back as unavailable instead of reading as clean. Includes the delisting URL for each hit.","tags":["dnsbl","rbl","blocklist check","ip blacklist","spam blocklist","email deliverability","ip reputation","abuse","spamcop","barracuda","log analysis","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-util-phone","name":"Phone number check","description":"Checks one phone number offline: normalises it to E.164, works out its country (including the twelve calling codes shared by several countries, such as +1 US/Canada/Caribbean) and validates the national number length against that country's numbering plan. Returns the tel: URI and the national dialling form. Numbering data from Google's libphonenumber. No network call and no API key, so it cannot fail because a third party is down.","tags":["phone validation","phone number check","validate phone","e164","phone formatting","country code","msisdn","numbering plan","libphonenumber","contact cleaning","list cleaning","crm data quality"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-fx-convert","name":"Currency conversion at the official ECB rate","description":"Converts an amount between any two of the ~30 currencies in the European Central Bank's official reference rates, on today's publication or on a past date within the last 90 days. Returns the rate used, its publication date and whether it was crossed through the euro. This is the auditable rate accounting and customs ask for, not a live market quote: it is published once a day and it is reproducible.","tags":["currency conversion","exchange rate","fx rate","ecb reference rate","eur","historical exchange rate","invoice conversion","accounting","vat","forex","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-whois","name":"Domain registration lookup (RDAP)","description":"Registration data for one domain, read from the registry's own RDAP service through the IANA bootstrap — not scraped from port-43 whois text. Returns creation, expiry and last-change dates, age and days to expiry, registrar, EPP status codes, nameservers, DNSSEC and the abuse contact. TLDs with no RDAP server say so instead of reporting the domain as unregistered. No API key, no account.","tags":["whois","rdap","domain lookup","domain age","domain expiry","registrar","epp status","dnssec","domain monitoring","brand protection","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-weather-now","name":"Current weather from the official national forecast","description":"Current conditions for any point on Earth, taken from the Norwegian Meteorological Institute's official forecast model rather than a commercial aggregator. Returns temperature, humidity, pressure, wind speed and bearing, cloud cover and the next hour's precipitation, plus the exact model run it came from and the units the institute itself declares, so the figure can be cited and checked instead of merely trusted.","tags":["weather","current weather","forecast","temperature","wind","precipitation","meteorology","official data","met norway","climate","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-weather-forecast","name":"Multi-day forecast from the official national service","description":"Day-by-day forecast for any point on Earth, up to nine days out, from the Norwegian Meteorological Institute's official model rather than a commercial aggregator. Each day carries its minimum and maximum temperature, total precipitation, strongest wind and the midday symbol, together with the exact model run and the institute's declared units, so a planning decision can cite where the number came from.","tags":["weather forecast","daily forecast","temperature","precipitation","wind","meteorology","official data","met norway","travel planning","agriculture","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-red-cert","name":"TLS certificate lookup (Certificate Transparency)","description":"Every currently valid TLS certificate publicly issued for one domain, read from the Certificate Transparency logs: issuer, validity window, days to expiry, revocation status and every hostname each certificate covers. It reports what was ISSUED, which is how you find certificates you did not know existed - not what the server is serving today. No API key, no account.","tags":["ssl check","ssl certificate","tls certificate","certificate expiry","certificate transparency","ct logs","cert monitoring","subdomain discovery","shadow it","domain security","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-crypto-sanctions","name":"OFAC sanctions check for a crypto address","description":"Checks one crypto address against the OFAC SDN list published by the US Treasury, across 16 currencies including Ethereum, Bitcoin, Tron and USDT. A hit returns the actual list entry - sanctioned entity, its type and its sanctions programmes - not a risk score. Exact matching only, never fuzzy. Every answer carries the publication date of the list snapshot. No API key, no account.","tags":["ofac","sanctions screening","sdn list","wallet screening","address screening","aml","compliance","sanctioned address","crypto compliance","kyt","list cleaning"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-image","name":"Text-to-image (FLUX.1 schnell)","description":"Generates a 1024x1024 JPEG from a text prompt with FLUX.1 [schnell] in about 2 seconds. Returns a hosted image URL valid for 24 hours that you can hand straight to the next tool; add inline=true to also get the base64. Choose 1-8 diffusion steps (default 4). You are only charged if the image is delivered. No API key, no account.","tags":["text to image","image generation","flux","ai image","generate image","stable diffusion alternative"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.02","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-image-styled","name":"Illustration from text, with a seed (DreamShaper 8)","description":"Generates an illustration from a text prompt with DreamShaper 8 LCM in about 2 seconds: painterly and character art rather than photoreal. Takes a seed for a repeatable result, a negative prompt, and your own width and height. Returns a hosted image URL valid for 24 hours; add inline=true to also get the base64. You are only charged if the image is delivered. No API key, no account.","tags":["illustration","text to image","art","character art","seed","stable diffusion"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-image-edit","name":"Edit an image you already have (inpainting)","description":"Edits an image you provide instead of generating one from scratch: pass the image and a black-and-white mask, and Stable Diffusion inpainting repaints only the white area following your prompt. Image and mask go as https URLs or as base64, up to 10 MB each. Returns a hosted image URL valid for 24 hours. You are only charged if the edit is delivered. No API key, no account.","tags":["inpainting","image editing","edit image","mask","remove object","stable diffusion"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.02","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-image-describe","name":"Describe what is in an image","description":"Describes what is in an image in about one second: pass an https URL or base64 and ask anything about it, from a one-line caption to reading a sign. Pairs with the rest of the chain: describe an image, translate the description, then have it read aloud. You are only charged if the description is delivered. No API key, no account.","tags":["image to text","image captioning","describe image","vision","alt text","llava"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-document","name":"Document to Markdown (PDF, Office, HTML)","description":"Turns a document into clean Markdown in about a second: pass an https URL or base64 of a PDF, Word, Excel, PowerPoint, HTML, CSV or XML file and get the text back with its headings, tables and page markers, plus the token count. It reads the text layer, so a scanned page with no text layer comes back without text. You are only charged if the Markdown is delivered. No API key, no account.","tags":["pdf to text","pdf to markdown","document parsing","document extraction","docx to markdown","to markdown"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-speech","name":"Text-to-speech (Aura-2 / MeloTTS)","description":"Turns text into natural speech in English, Spanish, French, Chinese, Japanese or Korean in one or two seconds: Deepgram Aura-2 for English and Spanish, MeloTTS for the rest. Returns a hosted audio URL valid for 24 hours (MP3 for English and Spanish, WAV otherwise) plus its size; add inline=true to also get the base64. Up to 2000 characters per call. You are only charged if the audio is delivered. No API key, no account.","tags":["text to speech","tts","speech synthesis","voice","audio generation","read aloud"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.01","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-transcribe","name":"Speech-to-text (Whisper large v3 turbo)","description":"Transcribes an audio file with Whisper large v3 turbo: pass an https URL (mp3, wav, flac, m4a, ogg, up to 10 MB) or base64 audio in a POST. Returns the text, the detected language with its probability, the duration, and timed segments; add words=true for word-level timestamps. Around 100 languages. You are only charged if the transcript is delivered. No API key, no account.","tags":["speech to text","transcription","whisper","audio transcription","stt","subtitles"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.02","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-ai-translate","name":"Translate text (M2M100, 100 languages)","description":"Translates text between about 100 languages with Meta M2M100 1.2B: pass the text and the target language (ISO code like es, fr, de, zh, ja, or its English name); the source language is detected if omitted. Long texts are split by sentence, so paragraphs keep their order and line breaks. Up to 2000 characters per call. Pairs with speech-to-text: translate a transcript, then read it aloud. You are only charged if the translation is delivered. No API key, no account.","tags":["translation","translate","machine translation","multilingual","language","localization"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]},{"id":"v1-chat-completions","name":"OpenAI-compatible chat completions","description":"Chat completions with the exact request and response shape of the OpenAI API: point your existing client at this URL and it works, no code change. One flat price per call whatever the size of the prompt or the answer — no token metering, no API key, no account, no rate limit. Automatic failover across several large models, so a model being down is not your problem. You are only charged if the completion is delivered.","tags":["chat completions","openai compatible","llm","inference","ai","gpt","text generation","completion","chat api","drop-in replacement","no api key"],"inputModes":["application/json"],"outputModes":["application/json"],"extensions":[{"uri":"https://x402.org","required":true,"params":{"price":"$0.005","asset":"USDC","networks":["eip155:8453","eip155:137","eip155:42161"],"payTo":"0xc210Ea7D5692a6401ADf25BbCB7aCDe9cDB7e9Ff"}}]}],"security":[{"x402":[]}],"securitySchemes":{"x402":{"type":"http","scheme":"x402","description":"Pay per call. The 402 challenge carries the price. See https://flat-rate-llm.kikoribera03.workers.dev/.well-known/x402"}}}