{"name":"x402 Bazaar","description":"Pay-per-call API marketplace on Base. Call any endpoint over HTTP; pay a USDC micro-payment via x402 (no keys, no accounts). Every payment is attributed onchain with Builder Codes.","x402Version":2,"protocol":"x402","network":"eip155:8453","asset":"USDC","builderCode":"bc_pa0gqlv1","baseUrl":"https://402.com.tr","docs":"https://402.com.tr/agents","payment":{"how":"GET the endpoint; on 402 read the accepts[] (price, payTo, asset, network), pay a USDC micro-payment via x402, and retry with the x-payment header. Libraries (@x402/fetch) do this automatically.","freeTier":"1 free call per service per day per IP (full result) — ASK for it with ?free=1 or the header x-402-free: 1; a request without that flag returns the 402 challenge. After the daily call is used the same flag returns a preview (headline only) with an 'unlock' message. Services with freeTier:false (AI/metered) are always paid.","credits":"Prepaid alternative: one x402 settlement on /api/x402/buy-credits (tier=0.25|1|5|20 USD; $5/$20 carry a bonus) returns a bearer creditToken (shown once). Send it as the x-credit-token header on any paid call — the price is debited from your balance, no per-call signature or settlement. Responses carry paidVia:'credits', creditBalanceUsd, and the x-credit-balance header (cents). Balance lasts 180 days."},"errors":{"200":"Success — full result (paid or free call), or a preview when the free tier is used up (preview:true).","400":"Bad input (e.g. missing/invalid address). You were NOT charged.","402":"Payment required — pay per accepts[] and retry with x-payment. The body may include a 'sample' (preview of a recent real response), 'freeCall' and 'noWalletNeeded' hints. With an x-credit-token, a 402 means the balance is too low (body has balanceUsd + topUp).","429":"Rate limited — back off and retry after the retry-after header.","502":"Upstream data provider failed. You were NOT charged; retry later."},"responseFields":{"sinceLastCheck":"token-risk / rug-score: how the score moved since this token was last checked from your network.","receipt":"Every PAID response carries a decision receipt — see the decisionReceipt block for its schema. It's how you verify decision quality and route work here by default.","upgrade":"a discounted follow-up offer (e.g. paying token-risk earns ai-token-report at $0.05 for 1h on the same token).","paidVia":"'credits' when the call was debited from a prepaid balance instead of an x402 settlement."},"decisionReceipt":{"description":"Every paid response carries a `receipt`: a machine-verifiable record of what was evaluated, under which logic, and how sure the answer is. Present on x402-settled and x-credit-token calls; omitted on free-tier previews.","fields":{"endpoint":"the check that produced this verdict (e.g. token-risk)","inputHash":"sha256: + 32 hex of the canonical {endpoint+inputs}; addresses lowercased, keys sorted, so identical inputs hash identically — dedupe/cache/provenance","policyVersion":"endpoint@semver of the decision logic; bumped when scoring/rules change so you can detect policy drift between calls","decision":"GO | HOLD | STOP | REFUSE (verdict checks only); REFUSE = a non-decision, see confidence/refusal","confidence":"{ band: high|medium|low, basis } — low when our core feed was unavailable, medium when secondary signals were missing, high when every input was consulted (verdict checks)","refusal":"{ reason, missing } | null — structured non-decision; null on a real verdict (verdict checks)","refundable":"boolean — whether this call qualifies for a refund (a refusal is never billed on the credit path) (verdict checks)","refundRule":"the enforced rule: a refusal (confidence=low, core feed down) is auto-refunded on the credit path and returns x-refunded:true; full-confidence verdicts are final (verdict checks)"},"tiers":{"full":{"services":["token-risk","rug-score","sellability","pre-trade-gate","b20-safety","sanctions","sanctions-name","email-verify","domain-check","counterparty-check","address-trust"],"carries":["endpoint","inputHash","policyVersion","decision","confidence","refusal","refundable","refundRule"]},"baseline":{"services":"every other paid service","carries":["endpoint","inputHash","policyVersion"]}},"refund":{"rule":"refusal (core feed unavailable) is not billed on the credit path — auto-refunded","header":"x-refunded: true","body":"refunded:true, paidVia:'credits-refunded'"},"policyVersions":{"token-risk":"1.2.0","rug-score":"1.1.0","sellability":"1.0.0","pre-trade-gate":"1.0.0","b20-safety":"1.0.0","deep-dd":"1.0.0","sanctions":"1.0.0","sanctions-name":"1.0.0","email-verify":"1.0.0","domain-check":"1.0.0","counterparty-check":"1.0.0","address-trust":"1.0.0"},"docs":"https://github.com/sukrutkrdg/402/blob/main/docs/decision-receipt.md"},"services":[{"id":"token-risk","name":"Token Risk Check","description":"Pass a token contract address and get a risk score + flags (ERC-20 conformance, ownership renounce, upgradeable proxy) computed live from Base. Built for trading bots and agents that vet tokens before buying.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-risk","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token address"}}},{"id":"pre-trade-gate","name":"Pre-Trade Gate","description":"The single call an agent makes before touching a Base token: token risk + sellability (honeypot/tax) + route/price-impact + deployer reputation, collapsed into one GO/HOLD/STOP verdict with an auditable receipt. Cheaper than the four checks à la carte. This is the tool to bind first.","category":"Onchain","requiresAI":false,"price":"$0.10","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/pre-trade-gate","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"},"amountUsd":{"type":"string","required":false,"description":"Trade size in USD (optional)","in":"query","example":"1000"}}},{"id":"sign-guard","name":"Sign Guard","description":"The check before the riskiest moment — signing. Decodes raw unsigned calldata (approve / permit / transfer / setApprovalForAll), shows the exact intent (who gets power over what, and whether it's UNLIMITED), and screens the destination + spender for OFAC sanctions and dangerous owner powers, in one GO/HOLD/STOP verdict + receipt. No simulation needed — pure decode + onchain risk. Catches the unlimited-approval drain vector before it's signed.","category":"Onchain","requiresAI":false,"price":"$0.06","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/sign-guard","input":{"data":{"type":"string","required":true,"description":"Transaction calldata (0x…)","in":"query","example":"0x095ea7b3…"},"to":{"type":"string","required":false,"description":"Destination contract/token (recommended)","in":"query","example":"0x… contract"}}},{"id":"spend-audit","name":"Spend Permission Auditor","description":"🆕 Base Account spend permissions let an app or agent spend a scoped, recurring allowance from a wallet — the primitive behind autonomous agent payments on Base. This reconstructs a wallet's ACTIVE spend permissions from onchain approve/revoke events and flags the dangerous ones: unlimited allowance, no expiry, unrecognized spender. The Base-native, agent-era drain check that ERC-20 approval tools can't see.","category":"Onchain","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/spend-audit","input":{"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"agent-wallet-audit","name":"Agent Wallet Audit","description":"🆕 The complete fund-movement authority on a Base wallet in one call: ERC-20 approvals (a spender you approved can pull the token) PLUS Base Account spend permissions (the agent-era scoped recurring allowance) — one drain-surface verdict with the ERC-20 revoke queue to act on. Approval tools miss the spend permissions; spend-permission tools miss the approvals. The only combined check for agent wallets that must know their whole exposure before holding funds.","category":"Onchain","requiresAI":false,"price":"$0.06","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/agent-wallet-audit","input":{"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"wallet-delegation","name":"7702 Delegation Check","description":"🆕 Since Pectra an EOA can carry EIP-7702 delegated code (the 0xef0100 designator): every call to the wallet executes the DELEGATE's contract with the wallet's funds — a malicious delegate is total takeover, invisible to approval tools. Reads the designator, resolves the delegate and verdicts it: not_delegated / delegated_known (Coinbase's EOA→SmartWallet path) / delegated_unknown (🚨) / smart_contract. The drain surface no other Base tool checks.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/wallet-delegation","input":{"wallet":{"type":"string","required":true,"description":"EOA address","in":"query","example":"0x… wallet"}}},{"id":"commerce-escrow","name":"Commerce Escrow Status","description":"🆕 First tooling for Base's Commerce Payments protocol (AuthCaptureEscrow): reconciles two-phase auth/capture payments — in escrow, captured, charged, voided, refunded, or payer-RECLAIMABLE because the operator missed the capture window. Filter by payment= (infoHash), payer=, receiver= or operator=, or omit everything for the network feed. The order-reconciliation read merchants and agents need before trusting onchain commerce.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/commerce-escrow","input":{"payment":{"type":"string","required":false,"description":"PaymentInfo hash (optional)","in":"query","example":"0x… 32-byte hash"},"payer":{"type":"string","required":false,"description":"Payer wallet (optional)","in":"query","example":"0x… payer"},"receiver":{"type":"string","required":false,"description":"Merchant wallet (optional)","in":"query","example":"0x… merchant"},"operator":{"type":"string","required":false,"description":"Operator (optional)","in":"query","example":"0x… operator"}}},{"id":"commerce-operator-audit","name":"Payment Operator Audit","description":"🆕 Commerce Payments flows are DRIVEN by an operator — it authorizes escrow, captures for merchants and takes the fees. This audits one before you rely on it: 90-day volumes, fees taken, capture-vs-reclaim record (missed capture windows = merchants left unpaid), distinct payers and merchants. verdict: healthy_operator / mixed / sloppy_operator / no_activity. No other tool reads this new Base commerce protocol.","category":"Onchain","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/commerce-operator-audit","input":{"operator":{"type":"string","required":true,"description":"Operator address","in":"query","example":"0x… operator"}}},{"id":"morpho-health","name":"Morpho Position Health","description":"🆕 First lending tooling in the catalog. Reads a Morpho Blue position on Base (the largest lending venue on Base) and returns its liquidation health in one call: health factor, current vs liquidation LTV, and the exact collateral price drop that triggers liquidation. Built for borrowing agents and treasuries that need to know how close they are before the market cuts them — Morpho's own API is deferred. Pass wallet= and optionally market= (defaults to cbBTC/USDC). Not financial advice.","category":"Lending","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/morpho-health","input":{"wallet":{"type":"string","required":true,"description":"Borrower wallet","in":"query","example":"0x… wallet"},"market":{"type":"string","required":false,"description":"Morpho market id (optional)","in":"query","example":"0x… 32-byte id (default cbBTC/USDC)"}}},{"id":"morpho-vault","name":"Morpho Vault Risk","description":"🆕 A MetaMorpho vault spreads your deposit across Morpho Blue markets — your real risk is WHERE the curator put it and WHO can move it. Reads the vault's live allocation (concentration, per-market collateral + liquidation LTV), idle share, performance fee, timelock, and control (curator/owner/guardian, and whether one address holds both). Returns a diversified / concentrated / control_risk verdict: the read before parking funds in a yield vault. vault= required. Not financial advice.","category":"Lending","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/morpho-vault","input":{"vault":{"type":"string","required":true,"description":"MetaMorpho vault address","in":"query","example":"0x… vault"}}},{"id":"morpho-liquidatable","name":"Morpho Liquidation Feed","description":"🆕 Built for liquidator / MEV searchers. Reconstructs the active borrower set on a Morpho Blue market from Borrow events, prices every position onchain in one multicall, and ranks them by liquidation health — flagging positions liquidatable NOW (health <= 1.0) and those one small move away, with the collateral price drop that tips each over. market= optional (defaults cbBTC/USDC), maxHealth= cutoff (default 1.1). Not financial advice.","category":"Lending","requiresAI":false,"price":"$0.06","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/morpho-liquidatable","input":{"market":{"type":"string","required":false,"description":"Morpho market id (optional)","in":"query","example":"0x… 32-byte id (default cbBTC/USDC)"},"maxHealth":{"type":"string","required":false,"description":"Health cutoff (optional)","in":"query","example":"1.1 (<=1.0 = already liquidatable)"}}},{"id":"gas-payer","name":"Gas Sponsor Check","description":"🆕 A smart account's gas can be paid by a PAYMASTER instead of the account itself — invisible to every 'does this wallet spend ETH' heuristic. Reads a wallet's UserOperationEvents across BOTH EntryPoints (v0.6 + v0.7): is it a smart account, its op count and success rate, and WHO sponsors its gas (self vs which paymaster, per-sponsor share). A fully-sponsored account is typically app- or agent-operated. wallet= required, days= optional (default 30, max 90). Not financial advice.","category":"Accounts","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/gas-payer","input":{"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x... smart account / agent wallet"},"days":{"type":"string","required":false,"description":"Lookback days (optional)","in":"query","example":"30 (max 90)"}}},{"id":"paymaster-check","name":"Paymaster Check","description":"🆕 Given a paymaster address, audits whether it's a healthy, active gas sponsor. Reads its UserOperationEvents across both EntryPoints: sponsored op volume, distinct accounts served, success rate, total gas sponsored, and concentration (the share coming from its single busiest app). The read to run before integrating a paymaster (Coinbase / Pimlico / Alchemy / custom), or judging who funds a counterparty's gas. paymaster= required, days= optional (default 30, max 90). Not financial advice.","category":"Accounts","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/paymaster-check","input":{"paymaster":{"type":"string","required":true,"description":"Paymaster address","in":"query","example":"0x... paymaster"},"days":{"type":"string","required":false,"description":"Lookback days (optional)","in":"query","example":"30 (max 90)"}}},{"id":"safe-check","name":"Safe Multisig Check","description":"🆕 Multisig / treasury intelligence. Given an address: is it a Gnosis Safe, its owners and M-of-N threshold, version, activity, and — critically — its enabled MODULES. A module can move the Safe's funds via execTransactionFromModule with no owner signatures, so each one is an address with unilateral control. Returns a multisig / single_signer / has_modules verdict: the counterparty check before you trust funds to a multisig. address= required. Not financial advice.","category":"Accounts","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/safe-check","input":{"address":{"type":"string","required":true,"description":"Address to check","in":"query","example":"0x… Safe / treasury / counterparty"}}},{"id":"first-funder","name":"First Funder","description":"🆕 Funding provenance in one call. Traces a Base wallet back to its EARLIEST transaction and resolves who first funded it: a recognized exchange/bridge (real on-ramp, lower risk), an anon EOA (possible sybil/burner — trace the cluster), or a contract. Returns the first funder, whether it's a contract or EOA, the initial value, and wallet age. The sybil/origin screen no other Base tool gives — the counterparty check before you transact. wallet= required. Not financial advice.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/first-funder","input":{"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x... wallet to trace"}}},{"id":"fresh-bridge","name":"Fresh Bridge Check","description":"🆕 Cross-chain inflow detection. Reads a wallet's recent USDC MINTS and correlates them with Circle CCTP receives to tell you whether its USDC is freshly bridged in (and from which source chain — Ethereum, Arbitrum, OP, Polygon, Solana…) vs natively issued. Freshly bridged capital is new money / a possible cross-chain hop — a real signal for trading and liquidation agents that no other Base tool surfaces. wallet= required, days= optional (default 30, max 90). Not financial advice.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/fresh-bridge","input":{"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x... wallet"},"days":{"type":"string","required":false,"description":"Lookback days (optional)","in":"query","example":"30 (max 90)"}}},{"id":"safe-to-send","name":"Safe to Send","description":"🆕 Before your agent sends, approves or signs to an address: one GO/REVIEW/STOP verdict. Screens OFAC sanctions, Coinbase/Basename identity, wallet vs contract, how long the address has existed, and whether contract logic can be swapped AFTER you send. Every factor returns what it found and what it could not read — a check that did not run never reads as clean, so GO means everything material was actually screened. Not financial advice.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/safe-to-send","input":{"address":{"type":"string","required":true,"description":"Address you are about to send to","in":"query","example":"0x… recipient"}}},{"id":"address-trust","name":"Address Trust","description":"🆕 The 'who am I dealing with?' check for agents. Reads Coinbase's ONCHAIN verification (an EAS attestation by verifications.coinbase.eth) — meaning the address is tied to a KYC'd Coinbase account, the strongest sybil-resistance signal on Base — plus the address's Basename. Returns a verified/named/anonymous verdict + trust score. Pair with sign-guard/spend-audit for a full pre-transaction gate. Identity is a signal, not proof of honesty.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/address-trust","input":{"address":{"type":"string","required":true,"description":"Address to check","in":"query","example":"0x… wallet/agent"}}},{"id":"basename-profile","name":"Basename Profile","description":"🆕 Resolves the complete Base identity behind an address or Basename: resolved address, avatar, description, website and social handles (X/Twitter, GitHub, Farcaster, Discord) read from Base's L2 Resolver text records. Lets an agent turn a counterparty address into a real profile — beyond just the name. Complements address-trust (verification) with the human context.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/basename-profile","input":{"name":{"type":"string","required":true,"description":"Basename or address","in":"query","example":"jesse.base.eth or 0x…"}}},{"id":"whale-flow","name":"Whale Flow","description":"Flow, not snapshot: the largest transfers of a Base token in the last 24h, classified by whether whales are sending INTO DEX pools (sell pressure) or pulling OUT (accumulation) — a net sell-pressure read that decays in hours. Complements holder-forensics ('who could dump') with 'is anyone dumping now'. CDP-indexed events.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/whale-flow","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"},"hours":{"type":"string","required":false,"description":"Window in hours (default 24, max 72)","in":"query","example":"24"}}},{"id":"watchlist-diff","name":"Watchlist Diff","description":"Retention in one call: pass up to 10 tokens to snapshot them and get a watchId; call again with that watchId to get only the DELTAS since last time — liquidity ±%, price ±%, became-honeypot, sell-tax spiked, liquidity pulled. The second call is worth more than the first. Built for agents holding positions that re-check daily.","category":"Onchain","requiresAI":false,"price":"$0.06","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/watchlist-diff","input":{"tokens":{"type":"string","required":false,"description":"Up to 10 token addresses (comma-separated)","in":"query","example":"0x…, 0x…"},"watchId":{"type":"string","required":false,"description":"Or: watchId to re-check an existing list","in":"query","example":"wl_…"}}},{"id":"address-intel","name":"Address Intelligence","description":"EOA vs contract, ETH + USDC balance, transaction count and activity level — straight from Base RPC. Useful for counterparty and wallet checks.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/address-intel","input":{"address":{"type":"string","required":true,"description":"Address","in":"query","example":"0x… wallet or contract"}}},{"id":"gas-oracle","name":"Gas Oracle","description":"Returns current Base gas fees (baseFee, maxPriorityFee) and three tiered suggestions (slow, normal, fast) in Gwei, derived live from the Base RPC. Built for agents that time or cost-estimate transactions.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/gas-oracle","input":{}},{"id":"b20-safety","name":"B20 Token Safety","description":"🆕 Live — B20 is Base's native precompile token standard, and unlike ERC-20 a B20 issuer can freeze holders (Policy Registry) and even SEIZE your balance (burnBlocked) at the protocol level. This reads exactly those powers — seizable, freezable, paused, rebase, uncapped-mint — into one hold/caution/avoid verdict. The first B20-aware safety check on Base.","category":"B20","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-safety","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-gate","name":"B20 Pre-Trade Gate","description":"🆕 The single call before trading a Base-native B20: seize (burnBlocked) + freeze (Policy Registry) + rebase + pause + uncapped-mint, collapsed into one GO/HOLD/STOP verdict with an auditable receipt. Pass wallet= to also check if YOUR address is already blocked on that token. The B20 tool to bind first.","category":"B20","requiresAI":false,"price":"$0.10","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-gate","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"},"wallet":{"type":"string","required":false,"description":"Your wallet (optional — checks if you're blocked)","in":"query","example":"0x… wallet"}}},{"id":"b20-transfer-preflight","name":"B20 Transfer Preflight","description":"🆕 The per-transaction B20 rail check: pass token + from + to (+ optional executor) and get one GO/HOLD/STOP on whether this exact transfer clears NOW — sender policy resolved against the sender, receiver policy against the recipient, executor policy against the operator, plus live transfer-pause. Every other B20 tool is per-token due diligence bought once; this is the check an agent runs on every payment. No ERC-20 tool can see it.","category":"B20","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-transfer-preflight","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"},"from":{"type":"string","required":true,"description":"Sender address","in":"query","example":"0x… sender"},"to":{"type":"string","required":true,"description":"Recipient address","in":"query","example":"0x… recipient"},"executor":{"type":"string","required":false,"description":"Executor (optional — transferFrom operator)","in":"query","example":"0x… operator"}}},{"id":"b20-portfolio","name":"B20 Portfolio Guard","description":"🆕 Scans a wallet's B20 (Base-native) holdings for protocol-level freeze/seize powers and whether YOUR address is ALREADY blocked on any of them — the risk no ERC-20 portfolio tool can see. Returns per-token seizable/freezable/rebase flags plus a wallet-level verdict. Built for agents holding Base positions.","category":"B20","requiresAI":false,"price":"$0.06","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-portfolio","input":{"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"b20-control","name":"B20 Control Audit","description":"🆕 b20-safety tells you WHICH powers a B20 has; this tells you WHO holds them. Reads the token's role-based access control (mint / burn / seize-via-burnBlocked / pause / admin) from onchain role events and reports the exact controllers, how centralized they are, and whether admin has been renounced. The issuer-control map an agent needs before holding a regulated Base-native asset.","category":"B20","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-control","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-seizure-history","name":"B20 Seizure History","description":"🆕 Every other B20 check reads what the issuer CAN do; this reads what they HAVE done. Scans the token's actual burnBlocked seizures (the BurnedBlocked event) — whether the issuer has ever burned a blocked holder's balance, who was seized, and how much. verdict: enforced (has seized) / armed (can, hasn't) / no_seize_power. Pass wallet= for one address, or omit address= for the network-wide feed.","category":"B20","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-seizure-history","input":{"address":{"type":"string","required":false,"description":"B20 token (omit for network feed)","in":"query","example":"0x… B20 token"},"wallet":{"type":"string","required":false,"description":"Victim wallet (optional)","in":"query","example":"0x… wallet"}}},{"id":"b20-authenticity","name":"B20 Authenticity Check","description":"🆕 Run FIRST on any 'B20'. A scammer can deploy a normal contract at a vanity 0xB200… address and fake the whole B20 read surface — the B20Factory precompile is the one authority that can't be spoofed. Verifies factory registration + bytecode absence (real B20s are chain-native precompiles with no code). verdict: genuine / fake_lookalike / not_b20. The 2-cent check that keeps every other B20 answer honest.","category":"B20","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-authenticity","input":{"address":{"type":"string","required":true,"description":"Token address","in":"query","example":"0x… token"}}},{"id":"b20-config-audit","name":"B20 Config Audit","description":"🆕 The B20 misconfiguration lint. Base's docs warn: a scope bound to a NON-EXISTENT allowlist silently denies EVERYONE — transfers brick. Audits every policy scope for dangling bindings, ALWAYS_BLOCK, renounced (frozen) lists and live pauses; verdict bricked / critical_misconfig / misconfigured / clean plus a can-this-token-even-move flag. Pre-launch lint for issuers, stuck-funds guard for holders and merchants.","category":"B20","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-config-audit","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-policy-members","name":"B20 Policy Members","description":"🆕 b20-freeze-check answers one wallet; this enumerates the WHOLE list. Replays the Policy Registry's BlocklistUpdated/AllowlistUpdated events into the full membership of a B20's blocklist/allowlist: every address ever blocked or whitelisted, when, by whom, and the current member set per scope. Compliance-grade visibility no other tool provides. Pass address= (token) or policy= (registry policy ID).","category":"B20","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-policy-members","input":{"address":{"type":"string","required":false,"description":"B20 token address","in":"query","example":"0x… B20 token"},"policy":{"type":"string","required":false,"description":"Registry policy ID (optional)","in":"query","example":"e.g. 2"}}},{"id":"b20-genesis-audit","name":"B20 Genesis Audit","description":"🆕 createB20's initCalls run with role AND transfer-policy gates BYPASSED — a one-tx privilege window only the issuer ever gets. Reconstructs what they did in it: pre-mints (how much, to whom), role grants, policy bindings, blocklist seeding — the token's true starting conditions. verdict: blocklist_seeded / premined / configured_launch / bare_launch.","category":"B20","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-genesis-audit","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-mint-watch","name":"B20 Mint Watch","description":"🆕 b20-supply shows the dilution ceiling; this shows the actual printing. Every mint (incl. batchMint) in the window: amount, recipients, and the share of current supply it represents — heavy_dilution / active_minting / minor_minting / quiet. The live issuance feed for agents holding B20 stablecoins and RWAs. Pass days= (1-90, default 30).","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-mint-watch","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"},"days":{"type":"string","required":false,"description":"Window in days (default 30)","in":"query","example":"30"}}},{"id":"b20-rebase-history","name":"B20 Rebase History","description":"🆕 An Asset B20's multiplier rescales EVERY holder's balance in one call — no transfer, no per-account event, nothing in your tx history. b20-rebase shows today's value; this replays the full MultiplierUpdated history and flags DOWNWARD moves that silently cut every holder. The operator's rebase track record, before you hold a rebasing RWA.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-rebase-history","input":{"address":{"type":"string","required":true,"description":"B20 Asset token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-peg","name":"B20 Peg Check","description":"🆕 A B20 Stablecoin's currency() is SELF-DECLARED — the standard verifies nothing. This is the missing check: declared peg vs actual DEX market price. 'Says USD, trades at $0.71' in one call: on_peg / depeg_warning / depegged / no_market (the peg is a pure claim with zero price discovery) / unverifiable_fx for non-USD pegs. Run before settling in any B20 stablecoin.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-peg","input":{"address":{"type":"string","required":true,"description":"B20 stablecoin address","in":"query","example":"0x… B20 token"}}},{"id":"b20-dossier","name":"B20 Due-Diligence Dossier","description":"🆕 The premium tier of the B20 suite — no ERC-20 tool can produce it. Composes the full B20 picture: seize/freeze/pause/mint powers, WHO holds them (admin renounced?), allowlist-vs-blocklist access model, supply-cap dilution headroom, metadata mutability, and ACTUAL seizure history (burnBlocked) — then Claude writes an institutional due-diligence verdict: issuer-control score, seizure risk (enforced/armed/none), red flags, and a hold/avoid recommendation.","category":"B20","requiresAI":false,"price":"$0.75","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-dossier","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-memo","name":"B20 Memo Tracker","description":"🆕 B20 adds memos to transfers/mints/burns (transferWithMemo) for payment IDs, compliance tags and settlement correlation — a field ERC-20 has no equivalent for. Reads a token's on-chain Memo event history, optionally filtered by a specific memo (bytes32) or the caller wallet. The settlement-reconciliation primitive for agents paying over B20 stablecoins.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-memo","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"},"memo":{"type":"string","required":false,"description":"Filter by memo (bytes32, optional)","in":"query","example":"0x…"},"caller":{"type":"string","required":false,"description":"Filter by caller wallet (optional)","in":"query","example":"0x…"}}},{"id":"b20-supply","name":"B20 Supply Guard","description":"🆕 The dilution half of B20 rug risk (b20-safety covers seizure). Reads supply cap vs minted supply (how much can still be minted) plus the on-chain SupplyCapUpdated history — an issuer that RAISED the cap diluted, or set up to dilute, holders. Uncapped mint is flagged as the worst case. Pair with b20-control to see who holds the mint role.","category":"B20","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-supply","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-metadata","name":"B20 Metadata Integrity","description":"🆕 A B20 with a METADATA_ROLE holder can call updateName/updateSymbol — change its own identity after launch (an impersonation / bait-and-switch vector ERC-20 has no protocol equivalent for). Reads whether the metadata is mutable (role holder exists) AND whether it has ALREADY been renamed on-chain (NameUpdated/SymbolUpdated history). Trust the address, not the label.","category":"B20","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-metadata","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-permit","name":"B20 Permit Inspector","description":"🆕 Every B20 has ERC-2612 permit built in — approve a spender by signature instead of a transaction. Reads exactly what an agent needs to build a valid permit: the token's DOMAIN_SEPARATOR, the owner's current nonce (so the signed payload can't be rejected/replayed), and the EIP-712 domain/type struct. Read-only — signs nothing.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-permit","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"},"owner":{"type":"string","required":false,"description":"Owner wallet (for the nonce, optional)","in":"query","example":"0x…"}}},{"id":"b20-policy-admin","name":"B20 Policy Admin Watch","description":"🆕 b20-control reads the token's own roles; the address that can actually add you to a blocklist lives in the Policy Registry. This reads WHO administers each active transfer/mint policy (policyAdmin), and whether that control is being handed over (pendingPolicyAdmin) or renounced. The other half of 'who can freeze/seize you', straight from the registry.","category":"B20","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-policy-admin","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-access-type","name":"B20 Access Type","description":"🆕 A B20 transfer policy is either a BLOCKLIST (allowed unless listed) or an ALLOWLIST (allowed ONLY if listed — a permissioned/whitelist token you can't even receive uninvited). b20-safety flags that a policy exists; this decodes its TYPE per scope (send/receive/execute/mint) — the difference between 'the issuer can block bad actors' and 'this is a permissioned RWA you can't hold uninvited'.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-access-type","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-announcements","name":"B20 Announcements","description":"🆕 B20 Asset tokens can post on-chain announcements (Announcement: id, description, uri) — issuer notices, corporate actions, redemptions — a channel ERC-20 has no equivalent for. Reads a token's announcement feed (active vs ended) from CDP-indexed events. The issuer-communications primitive for agents holding tokenized/RWA B20 assets.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-announcements","input":{"address":{"type":"string","required":true,"description":"B20 Asset token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-stablecoin","name":"B20 Stablecoin Profile","description":"🆕 B20 Stablecoin tokens self-declare a fiat currency code (currency() → USD, EUR, …). Reads that declared peg alongside the issuance profile (supply, cap) and control powers (seize/freeze/pause/uncapped-mint) — a one-call 'what is this stablecoin and who controls it' for agents settling in B20 stablecoins. The currency code is the issuer's claim, not attested backing.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-stablecoin","input":{"address":{"type":"string","required":true,"description":"B20 Stablecoin address","in":"query","example":"0x… B20 token"}}},{"id":"base-withdrawal","name":"Base Withdrawal Finalizer","description":"🆕 Beryl (2026-06-25) cut the single-proof withdrawal window from 7 days to 5, with a dual-proof fast path at ~1 day. Given a Base withdrawal-initiation tx, this decodes the L2ToL1MessagePasser event (the withdrawalHash, target & value needed to prove/finalize on L1) and estimates the finalization windows under the post-Beryl rules. For agents managing cross-chain liquidity.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/base-withdrawal","input":{"tx":{"type":"string","required":true,"description":"Base withdrawal-initiation txHash","in":"query","example":"0x… (64 hex)"}}},{"id":"b20-launch-radar","name":"B20 Launch Radar","description":"🆕 Lists the newest B20 tokens created on Base (from the B20Factory precompile) — variant, symbol, decimals, block. B20 is Base's native token standard and dozens launch hourly. A discovery feed for agents hunting new B20 launches early. Run b20-safety on any address before touching it — new ≠ safe.","category":"B20","requiresAI":false,"price":"$0.01","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-launch-radar","input":{"limit":{"type":"string","required":false,"description":"How many","in":"query","example":"12"}}},{"id":"b20-policy-watch","name":"B20 Policy Watch","description":"The B20-only rug vector: a token can launch clean and later attach a sender blocklist (PolicyUpdated) — silently becoming seizable via burnBlocked. This reads the token's full policy/pause event timeline (CDP-indexed onchain events) plus the live policy state, and tells you if — and exactly WHEN — it turned seizable.","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-policy-watch","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-guard","name":"B20 Guard","description":"The live layer over B20 Policy Watch: a network-wide onchain webhook captures every B20 PolicyUpdated/Paused sub-second. Pass a token address for its live guard status, or call with no address for the feed of tokens that JUST attached a sender blocklist (turned seizable) across all of Base.","category":"B20","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-guard","input":{"address":{"type":"string","required":false,"description":"B20 token (optional — omit for network feed)","in":"query","example":"0x… B20 token"}}},{"id":"b20-info","name":"B20 Token Info","description":"Complete B20 token profile straight from the precompile: variant (Asset/Stablecoin), name, symbol, decimals, total supply, supply cap, active transfer policies, pause states, and rebase. The data companion to b20-safety.","category":"B20","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-info","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-freeze-check","name":"B20 Freeze Check","description":"Checks whether a specific wallet is authorized under a B20 token's transfer-sender policy. If it isn't, that wallet can't transfer and can be burnBlocked() (SEIZED) by the issuer. The personal companion to b20-safety — 'can this token freeze MY funds?'","category":"B20","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-freeze-check","input":{"token":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"},"wallet":{"type":"string","required":true,"description":"Your wallet address","in":"query","example":"0x… wallet"}}},{"id":"b20-rebase","name":"B20 Rebase Tracker","description":"Reads a B20 Asset token's rebase multiplier — the factor that scales every holder's balance. Flags whether balances are being scaled (invisible dilution/inflation the issuer controls). Stablecoin variants return no-rebase.","category":"B20","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-rebase","input":{"address":{"type":"string","required":true,"description":"B20 token address","in":"query","example":"0x… B20 token"}}},{"id":"b20-batch","name":"B20 Batch Safety","description":"Runs the B20 safety verdict across up to 5 B20 tokens in one call — each scored for freeze/seize/pause/rebase/uncapped-mint, with the worst score surfaced. For portfolio holders and agents screening several B20s at once.","category":"B20","requiresAI":false,"price":"$0.08","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/b20-batch","input":{"addresses":{"type":"string","required":true,"description":"B20 addresses (comma-separated)","in":"query","example":"0x…, 0x…"}}},{"id":"token-price","name":"Token Price","description":"Pass a Base token contract address and get the current USD price, 24h change, liquidity, and volume from DexScreener (highest-liquidity pair auto-selected). No API key required.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-price","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token address"}}},{"id":"tx-decode","name":"TX Decode","description":"Provide a Base transaction hash and get a structured summary: from/to, ETH value, status, gas used, block, method selector, and nonce — straight from Base RPC.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/tx-decode","input":{"hash":{"type":"string","required":true,"description":"Transaction hash","in":"query","example":"0x… (66 hex characters)"}}},{"id":"exit-liquidity","name":"Exit Liquidity Check","description":"Give a Base token + a trade size in USD → estimated buy AND sell price impact, whether you can unwind that size without collapsing the pool, and the largest safe exit. The hidden form of a rug isn't 'you can't buy' — it's 'you can't sell'. Built for trading agents sizing positions.","category":"Markets","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/exit-liquidity","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"},"size":{"type":"string","required":false,"description":"Trade size in USD","in":"query","example":"1000"}}},{"id":"sellability","name":"Sellability Check","description":"The hard honeypot question, answered three ways: security simulation (honeypot, cannot-sell-all, sell/buy tax, transfer-pausable), a LIVE transfer simulation we run ourselves from a real holder (reverts/taxed?), and exit liquidity. Returns a hard canSell verdict with reasons. Selling is where rugs hide — check before you buy.","category":"Onchain","requiresAI":false,"price":"$0.08","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/sellability","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"},"size":{"type":"string","required":false,"description":"Position size USD (exit check)","in":"query","example":"5000"}}},{"id":"holder-forensics","name":"Holder Forensics","description":"Goes past 'top-10 = X%' to classify the holder base: how much the creator & owner still hold, which top holders are infrastructure (LP/CEX/bridge — benign) vs unlabelled wallets (the concentration that can actually dump the price), and the largest non-infra wallet. Separating benign from dangerous concentration is the analysis others skip.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/holder-forensics","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"proxy-check","name":"Proxy / Upgrade Detector","description":"Reads the EIP-1967 proxy slots live: is the contract upgradeable, what's the current implementation, and WHO can upgrade it. Flags the dangerous case — an EOA admin that can swap the logic at any block with no timelock/multisig. Upgradeability is a rug vector static scans miss.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/proxy-check","input":{"address":{"type":"string","required":true,"description":"Contract address","in":"query","example":"0x… contract"}}},{"id":"contract-danger","name":"Contract Danger Scanner","description":"Reads a verified contract's ABI and flags owner-callable abuse functions: mint (dilute), pause (freeze exit), blacklist (block your wallet), setFee/setTax (tax you after entry), withdraw/sweep (pull funds), upgrade (swap logic). An unverified contract is itself a red flag. Diligence a price feed can't give.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/contract-danger","input":{"address":{"type":"string","required":true,"description":"Contract address","in":"query","example":"0x… contract"}}},{"id":"lp-lock","name":"LP Lock Details","description":"Surfaces the LP holders, how much of the LP supply is locked or burned vs pullable, the lockers, and unlock dates. Unlocked liquidity is the clearest rug setup — this shows the detail a one-line 'LP locked: yes/no' hides.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/lp-lock","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"deployer-rep","name":"Deployer Reputation","description":"Profiles the token's creator wallet: how much history it has, how much of the supply the creator still holds, and whether ownership is renounced — rolled into a 0-100 reputation score with signals. A fresh wallet holding 20% of supply with no renounce is the classic rug setup; this is the forensics layer other checks skip.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/deployer-rep","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"swap-route","name":"Swap Route + Safety","description":"Give a token and a trade size in USD → the deepest Base pool to route through, estimated price impact, a suggested slippage tolerance + minimum-out, all gated on a honeypot/sell-tax check of the token you'd receive (no point routing into something you can't sell). Moves an agent from analysis to action in one call.","category":"Markets","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/swap-route","input":{"tokenOut":{"type":"string","required":true,"description":"Token to receive","in":"query","example":"0x… token"},"amountUsd":{"type":"string","required":false,"description":"Trade size in USD","in":"query","example":"1000"}}},{"id":"token-unlock","name":"Token Unlock Calendar","description":"Turns raw LP-lock data into a forward calendar: each unlock with its date, the % of LP it frees, the locker (UNCX / Team Finance labelled), and days away — flagging imminent unlocks (<30 days). An LP unlock is a scheduled price event: the moment a rug becomes possible. For agents managing open positions.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-unlock","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"volume-check","name":"Volume Authenticity Check","description":"Reads the deepest pool's 24h volume, buy/sell counts, liquidity and price move, and scores how organic the activity looks. Volume 10x+ the pool's liquidity, near-perfect buy/sell symmetry, or big volume that moves the price nowhere are the classic wash-trading signatures used to bait buyers. Returns a 0-100 suspicion score and verdict.","category":"Markets","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/volume-check","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"position-health","name":"Position Health Check","description":"The post-trade check everything else skips: given a token, your position size and (optionally) entry price, returns live price & P&L, whether the position can still be EXITED at that size, and the token's current rug score — combined into a healthy / watch / exit_now verdict with reasons. The risk that changes after you buy is exactly the risk holders miss.","category":"Onchain","requiresAI":false,"price":"$0.04","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/position-health","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"},"size":{"type":"string","required":false,"description":"Position size USD","in":"query","example":"1000"},"entryPrice":{"type":"string","required":false,"description":"Entry price USD (optional, enables P&L)","in":"query","example":"0.0012"}}},{"id":"token-compare","name":"Token Compare","description":"Agents choose between tokens, not around them. Pass 2-5 Base token addresses → each gets a 0-100 quality score (safety-weighted: rug score first, then liquidity depth, then momentum), ranked best-first, with a named pick — or an honest 'none pass the gate'. One call returns a decision instead of a dozen data dumps.","category":"Onchain","requiresAI":false,"price":"$0.05","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-compare","input":{"addresses":{"type":"string","required":true,"description":"Token addresses (comma-separated, 2-5)","in":"query","example":"0x…, 0x…"}}},{"id":"revoke-builder","name":"Revoke Calldata Builder","description":"approval-advisor tells you WHAT to revoke; this builds the HOW: the ready-to-sign transaction (to + calldata) for approve(spender, 0) on a token, plus the live current allowance read from Base (flags unlimited, or 'already revoked'). Hand the result straight to a wallet or agent signer — the action half of approval hygiene.","category":"Utility","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/revoke-builder","input":{"token":{"type":"string","required":true,"description":"Token contract","in":"query","example":"0x… token"},"spender":{"type":"string","required":true,"description":"Spender to revoke","in":"query","example":"0x… spender contract"},"wallet":{"type":"string","required":false,"description":"Your wallet (optional, reads live allowance)","in":"query","example":"0x… wallet"}}},{"id":"approval-advisor","name":"Approval Exposure + Revoke Advisor","description":"Ranks a wallet's active token approvals by USD-at-risk x unlimited-allowance x unlabelled-spender, and returns a prioritised revoke queue. Approvals are the #1 drain vector; this tells an agent exactly what to revoke first.","category":"Onchain","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/approval-advisor","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"portfolio-scan","name":"Portfolio Risk Scan","description":"Pulls a wallet's holdings and runs a risk check on each, flagging which positions are honeypots / high-risk / illiquid and the USD sitting in risky tokens. One call audits the whole wallet — 'which of the things you already hold could hurt you'.","category":"Onchain","requiresAI":false,"price":"$0.15","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/portfolio-scan","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"rug-monitor","name":"Rug Early-Warning Monitor","description":"Pay once to watch a Base token's liquidity. We snapshot a baseline and, on each monitor run, POST your webhook if liquidity collapses (a liquidity pull — the actual moment of a rug). Not price moving — the pool being drained out from under you. Expires after 30 days.","category":"Onchain","requiresAI":false,"price":"$0.10","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/rug-monitor","input":{"token":{"type":"string","required":true,"description":"Token address","in":"query","example":"0x… token"},"webhook":{"type":"string","required":false,"description":"Webhook URL (optional — omit to poll)","in":"query","example":"https://your-endpoint"},"dropPct":{"type":"string","required":false,"description":"Fire on liquidity drop % (default 50)","in":"query","example":"50"},"check":{"type":"string","required":false,"description":"Or: monitor id to poll its status","in":"query","example":"abcd1234-…"}}},{"id":"deep-dd","name":"Deep Due-Diligence","description":"The premium flagship. One call runs the FULL battery — contract risk, holder concentration, liquidity depth, EXIT liquidity (can you actually sell), OFAC sanctions — and Claude synthesizes an institutional verdict: safety score, explicit buy/sell tradeability, liquidity & holder assessments, factors, risks, positives and a recommendation. The value is the orchestration + AI synthesis you can't get in one call anywhere else.","category":"AI","requiresAI":true,"price":"$0.75","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/deep-dd","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"},"size":{"type":"string","required":false,"description":"Position size USD (for exit check)","in":"query","example":"5000"}}},{"id":"wallet-tokens","name":"Wallet Token Portfolio","description":"Returns native ETH plus WETH, USDC, USDbC, DAI, cbETH balances for any Base address, enriched with live USD values via DexScreener. Only non-zero holdings are returned.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/wallet-tokens","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"trending-tokens","name":"Trending Tokens on Base","description":"Fetches the DexScreener boosts feed filtered to Base — up to 15 trending tokens with address, description, boost amount, and link. Great for discovery bots.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/trending-tokens","input":{}},{"id":"price-alert","name":"Token Price Alert","description":"Pay once to register a price-threshold alert on any Base token. Supply target price, direction (above/below), and an https webhook URL. A polling cron (daily by default; configurable to ~minutes) checks DexScreener and POSTs your webhook when it crosses. Expires after 30 days. Or omit the webhook and poll with check=<id>: the verdict is THRESHOLD_MET, ok, FIRED, or unknown when the price feed could not be read.","category":"Onchain","requiresAI":false,"price":"$0.05","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/price-alert","input":{"token":{"type":"string","required":true,"description":"Token address","in":"query","example":"0x… token"},"threshold":{"type":"string","required":true,"description":"Price threshold (USD)","in":"query","example":"1.50"},"direction":{"type":"string","required":true,"description":"Direction (above/below)","in":"query","example":"above"},"webhook":{"type":"string","required":false,"description":"Webhook URL (optional — omit to poll)","in":"query","example":"https://your-endpoint"},"check":{"type":"string","required":false,"description":"Or: alert id to poll its status","in":"query","example":"alrt_…"}}},{"id":"contract-abi","name":"Contract ABI Lookup","description":"Checks Sourcify for a Base contract's verification status and returns its ABI as function/event name lists + item count (full or partial match). No API key required.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/contract-abi","input":{"address":{"type":"string","required":true,"description":"Contract address","in":"query","example":"0x… contract"}}},{"id":"decode-selector","name":"4-Byte Selector Decoder","description":"Resolves a 4-byte function selector (e.g. 0x70a08231) to candidate human-readable signatures via 4byte.directory. Accepts a bare selector or full calldata.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/decode-selector","input":{"selector":{"type":"string","required":true,"description":"Function selector","in":"query","example":"0x70a08231"}}},{"id":"basename","name":"Basename Resolver","description":"Forward + reverse Basename resolution read from the Base L2 Resolver: turn jesse.base.eth into an address, or an address into its primary Basename. No API key required.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/basename","input":{"query":{"type":"string","required":true,"description":"Basename or address","in":"query","example":"jesse.base.eth or 0x…"}}},{"id":"token-pools","name":"Token Pools","description":"Lists every DEX pool for a Base token (pair address, DEX, quote symbol, price, liquidity, 24h volume), sorted by liquidity. Tells agents where — and how deep — a token can be traded.","category":"Markets","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-pools","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"ens-resolve","name":"ENS Resolver","description":"Forward + reverse ENS resolution on Ethereum mainnet: turn vitalik.eth into an address, or an address into its primary ENS name. Complements the Basename resolver for Base.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ens-resolve","input":{"query":{"type":"string","required":true,"description":"ENS name or address","in":"query","example":"vitalik.eth or 0x…"}}},{"id":"encode-selector","name":"Function Selector Encoder","description":"Computes the 4-byte selector for a function signature (e.g. transfer(address,uint256) → 0xa9059cbb). The inverse of the decoder — useful for agents building or matching calldata.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/encode-selector","input":{"signature":{"type":"string","required":true,"description":"Function signature","in":"query","example":"transfer(address,uint256)"}}},{"id":"sanctions","name":"Sanctions Check","description":"Checks an address against the OFAC SDN list of sanctioned digital-currency addresses. Built for compliance agents and bots that must screen counterparties before transacting. Direct-address match; list refreshed regularly. No API key required.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/sanctions","input":{"address":{"type":"string","required":true,"description":"Address to screen","in":"query","example":"0x… wallet or contract"}}},{"id":"holders","name":"Token Holder Distribution","description":"Top-10 holders with their %, holder count, concentration level (whale risk), and LP-lock %, from GoPlus. Lets agents judge how fairly a token is distributed before trading. No API key required.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/holders","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"multi-price","name":"Batch Token Prices","description":"Pass a comma-separated list of up to 10 Base token addresses and get USD price + 24h change for each in one call. Ideal for agents pricing a portfolio or watchlist.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/multi-price","input":{"addresses":{"type":"string","required":true,"description":"Token addresses (comma-separated)","in":"query","example":"0x…, 0x…"}}},{"id":"compliance-check","name":"Compliance Check","description":"Combined counterparty screening for an address: direct OFAC sanctions match, EOA/contract profile, and (for contracts) risk flags — rolled into a single recommendation (blocked / review / clear). Built for compliance agents.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/compliance-check","input":{"address":{"type":"string","required":true,"description":"Address to screen","in":"query","example":"0x… wallet or contract"}}},{"id":"sanctions-batch","name":"Batch Sanctions Screening","description":"Pass a comma-separated list of up to 25 addresses and get an OFAC sanctions result for each, plus the flagged subset. Built for compliance agents vetting whole counterparty lists in one call.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/sanctions-batch","input":{"addresses":{"type":"string","required":true,"description":"Addresses (comma-separated)","in":"query","example":"0x…, 0x…"}}},{"id":"pair-info","name":"DEX Pair Info","description":"Given a Base DEX pair (pool) address, returns price, liquidity, 24h volume, buy/sell transaction counts and FDV from DexScreener. For agents analysing a specific pool's depth and activity.","category":"Markets","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/pair-info","input":{"pair":{"type":"string","required":true,"description":"Pair (pool) address","in":"query","example":"0x… pair"}}},{"id":"rug-score","name":"Rug Probability Score","description":"Deterministic 0-100 rug-probability score combining security flags, holder concentration, LP lock and liquidity depth — with the exact signals that drove it. A fast numeric gate for trading agents. Higher = riskier.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/rug-score","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"batch-risk","name":"Batch Token Risk Scan","description":"Screen up to 10 Base tokens in a single paid call — each gets a 0-100 rug-probability score, risk level and top signals, sorted riskiest-first. Built for agents triaging a watchlist or portfolio without paying per token.","category":"Onchain","requiresAI":false,"price":"$0.08","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/batch-risk","input":{"addresses":{"type":"string","required":true,"description":"Token addresses (comma-separated, up to 10)","in":"query","example":"0x…, 0x…, 0x…"}}},{"id":"token-momentum","name":"Token Momentum","description":"Price change and trading volume across 1h, 6h and 24h windows for a Base token, plus a trend read (strong_up → strong_down). Lets agents gauge momentum, not just a single 24h number.","category":"Markets","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-momentum","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"token-info","name":"Token Info & Socials","description":"Metadata for a Base token: name, symbol, logo image, official website and social links (X/Telegram/etc.) plus price & liquidity — from DexScreener. For agents and UIs enriching a token.","category":"Markets","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-info","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"chain-status","name":"Base Chain Status","description":"Live Base chain snapshot: latest block, base fee + priority fee (Gwei), current ETH price, and the estimated USD cost of a simple ETH transfer. For agents timing or budgeting transactions.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/chain-status","input":{}},{"id":"new-tokens","name":"New Token Scanner","description":"Returns the latest tokens profiled on Base from the DexScreener feed — address, description, and links. Great for discovery bots hunting new launches early.","category":"Onchain","requiresAI":false,"price":"$0.01","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/new-tokens","input":{}},{"id":"nft-floor","name":"NFT Floor Price","description":"Current floor price for a Base NFT collection (OpenSea / LooksRare) via Alchemy. Pass the collection contract address. Coverage is limited to marketplace-listed collections. For agents tracking NFT markets.","category":"Markets","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/nft-floor","input":{"contract":{"type":"string","required":true,"description":"Collection contract address","in":"query","example":"0x… collection"}}},{"id":"wallet-portfolio","name":"Full Wallet Portfolio","description":"Complete ERC-20 portfolio for a Base address — every non-zero token with balance, metadata and live USD value, plus a total. Token discovery via CDP Data API (Coinbase) with Alchemy fallback; USD from DexScreener.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/wallet-portfolio","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"wallet-networth","name":"Wallet Net Worth","description":"Complete token portfolio for a Base address with USD values: every ERC-20 the wallet holds, priced from live DEX liquidity, plus native ETH — sorted by value with a total. Holdings nobody quotes are listed and counted separately rather than silently valued at zero.","category":"Onchain","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/wallet-networth","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"wallet-summary","name":"Wallet Age & Activity","description":"Wallet age in days, first & last activity timestamps, and outgoing transaction count for any Base address — read straight from the Base archive, not a 30-day feed, so it dates wallets of any age. Counts and last-activity cover what the wallet SENT; inbound transfers don't raise the nonce and aren't counted. Built for sybil screening and counterparty trust checks.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/wallet-summary","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"wallet-activity","name":"Wallet Activity","description":"The latest transactions for a Base address — hash, time, from/to, ETH value, success — via Covalent. For agents tracking what a wallet is doing.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/wallet-activity","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"token-transfers","name":"Token Transfer History","description":"Recent transfers of a specific token for a wallet — direction (in/out), amount, USD value, counterparty, tx hash and time, via Covalent. For agents tracking token flows and cost basis.","category":"Onchain","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-transfers","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"},"token":{"type":"string","required":true,"description":"Token contract","in":"query","example":"0x… token"}}},{"id":"ai-token-report","name":"AI Token Report","description":"The flagship report: aggregates token risk, holder concentration, price/liquidity and OFAC sanctions, then Claude synthesizes a structured verdict (avoid → favorable) with key risks and positives. One call, agent-ready intelligence you can't get free.","category":"AI","requiresAI":true,"price":"$0.12","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-token-report","input":{"address":{"type":"string","required":true,"description":"Token contract address","in":"query","example":"0x… token"}}},{"id":"ai-market-brief","name":"AI Market Brief","description":"The zoom-out flagship: aggregates trending and newly-listed Base tokens, then Claude writes a concise market brief — mood, highlights, new & notable launches, and cautions (fresh/unknown tokens flagged for rug risk). One call gives a trading agent market context instead of dozens of lookups.","category":"AI","requiresAI":true,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-market-brief","input":{}},{"id":"ai-wallet-security","name":"AI Wallet Security Audit","description":"Pulls a wallet's active token approvals and Claude writes a security audit: overall risk level, USD at risk, and concrete revoke recommendations (which token/spender and why). The wallet-safety check agents and users run before trusting an address.","category":"AI","requiresAI":true,"price":"$0.06","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-wallet-security","input":{"address":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… wallet"}}},{"id":"ai-tx-explain","name":"AI Transaction Explainer","description":"Give a Base transaction hash and Claude explains what it actually did in plain English — the action, a risk read (failed tx, risky approval, high-value transfer), and notes. Turns raw calldata into an answer agents and humans can use.","category":"AI","requiresAI":true,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-tx-explain","input":{"hash":{"type":"string","required":true,"description":"Transaction hash","in":"query","example":"0x… (66 hex characters)"}}},{"id":"ai-contract-risk","name":"AI Contract Risk Explainer","description":"Combines security flags with the verified ABI's function names, then Claude explains the contract's dangerous capabilities — owner can mint, pause, blacklist, upgrade or self-destruct — with a danger level. Goes beyond raw flags to read what the contract can actually do.","category":"AI","requiresAI":true,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-contract-risk","input":{"address":{"type":"string","required":true,"description":"Contract address","in":"query","example":"0x… contract"}}},{"id":"ai-summarize","name":"AI Summarize","description":"Compress up to 16K characters of anything — articles, transcripts, email threads, reports — into 3-5 precise bullet points, one micro-payment per call. No API key, no subscription, no prompt engineering: send text=, get bullets back as clean JSON. The digest step for agent pipelines that read more than they can carry in context.","category":"AI","requiresAI":true,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-summarize","input":{"text":{"type":"string","required":true,"description":"Text to summarize","in":"query","example":"Paste an article, email, or notes…"}}},{"id":"ai-extract","name":"AI Extract","description":"Turn ANY text into clean, schema-enforced JSON: pass text= plus the fields you want (fields=name,email,price,date — up to 10) and get exactly those keys back, guaranteed-valid JSON via Claude structured outputs. Add list=true to extract EVERY repeated record (invoice lines, listings, table rows) as an array. Up to 16K chars per call. Not crypto-specific — the universal parse step for agent pipelines: pages, emails, receipts, logs. Many documents? ai-extract-batch: 10 in one call for $0.10.","category":"AI","requiresAI":true,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-extract","input":{"text":{"type":"string","required":true,"description":"Source text","in":"query","example":"Paste text containing the data…"},"fields":{"type":"string","required":false,"description":"Fields (comma-separated)","in":"query","example":"name, email, company, date"},"list":{"type":"string","required":false,"description":"Extract all records (true/false)","in":"query","example":"false"}}},{"id":"url-extract","name":"URL to Text","description":"Pass a URL and get the page as clean text — furniture (nav, scripts, ads, footers) stripped, paragraphs preserved — plus its title, description and site name. The step every agent needs before it can reason about a page, and the one most agents can't do themselves: serverless runtimes and MCP clients have no browser and no HTML parser. Follows redirects safely, refuses non-text content, caps at 2 MB. Nothing crypto about it.","category":"Web","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/url-extract","input":{"url":{"type":"string","required":true,"description":"Page URL","in":"query","example":"https://example.com/article"},"maxChars":{"type":"string","required":false,"description":"Max characters (optional)","in":"query","example":"40000"}}},{"id":"url-to-json","name":"URL to JSON","description":"One call replaces two: fetches the page, strips it to readable text, then returns exactly the fields you asked for as schema-enforced JSON (fields=price,author,published — up to 10). Add list=true to pull EVERY repeated record on the page (listings, table rows, search results) as an array. Built for agents that need a fact off a page, not a pile of HTML — no browser, no parser, no scraping code.","category":"Web","requiresAI":false,"price":"$0.04","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/url-to-json","input":{"url":{"type":"string","required":true,"description":"Page URL","in":"query","example":"https://example.com/product"},"fields":{"type":"string","required":true,"description":"Fields (comma-separated)","in":"query","example":"title, price, author, published"},"list":{"type":"string","required":false,"description":"Extract all records (true/false)","in":"query","example":"false"}}},{"id":"sanctions-name","name":"OFAC Name Screening","description":"Sanctions screening for NAMES, not wallets. Pass a person or company; get GO / HOLD / STOP against the official U.S. Treasury OFAC SDN export, including a.k.a. aliases. Conservative by design: only a full-name match is a hit. Screening aid, not a compliance determination.","category":"Compliance","requiresAI":false,"price":"$0.05","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/sanctions-name","input":{"name":{"type":"string","required":true,"description":"Person or company name","in":"query","example":"Acme Trading LLC"}}},{"id":"email-verify","name":"Email Verify","description":"Syntax + live DNS (MX/A) + disposable, role and consumer-mailbox detection, as one GO / HOLD / STOP verdict with the reasons listed. Catches throwaway inboxes, support@-style shared mailboxes and one-character domain typos (gmial.com). No SMTP probe, so mailbox existence is not claimed.","category":"Business","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/email-verify","input":{"email":{"type":"string","required":true,"description":"Email address","in":"query","example":"someone@example.com"}}},{"id":"domain-check","name":"Domain Check","description":"Registration age, expiry and registry status for any domain, from RDAP — the registries' own protocol. Returns days since registration, days to expiry, registrar, EPP status codes, nameservers and DNSSEC as one GO / HOLD / STOP verdict. Domain age is the strongest cheap signal in invoice and vendor-impersonation fraud: the payment details that change always arrive from a domain registered weeks ago. Refuses rather than guessing when a registry publishes no RDAP.","category":"Business","requiresAI":false,"price":"$0.02","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/domain-check","input":{"domain":{"type":"string","required":true,"description":"Domain name","in":"query","example":"example.com"}}},{"id":"counterparty-check","name":"Counterparty Check","description":"One call, four public sources: how old the domain is (RDAP), whether mail to the contact will land (DNS), whether the name is on the OFAC list, and whether the company exists in the global LEI register. Returns a single GO / HOLD / STOP with every signal that produced it. Built for the moment an agent has to trust an invoice, a new vendor or a payment-detail change — the classic fraud pattern is a real-looking name on a domain registered weeks ago.","category":"Business","requiresAI":false,"price":"$0.12","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/counterparty-check","input":{"domain":{"type":"string","required":false,"description":"Company domain","in":"query","example":"acme-supplies.com"},"email":{"type":"string","required":false,"description":"Contact email (its domain is used if 'domain' is omitted)","in":"query","example":"billing@acme-supplies.com"},"name":{"type":"string","required":false,"description":"Legal company name (enables OFAC + LEI)","in":"query","example":"Acme Supplies Ltd"}}},{"id":"base-block","name":"Base Block","description":"🆕 One block on Base — height, hash, parent, timestamp and age in seconds, transaction count, gas used against the limit, and the base fee in gwei. Takes a block number, a 0x… block hash, or latest / finalized / safe / earliest. A block that isn't mined yet answers found:false with the reason rather than an error. Raw chain data, no interpretation.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/base-block","input":{"block":{"type":"string","required":false,"description":"Block number, hash, or tag (default latest)","in":"query","example":"latest"}}},{"id":"base-tx","name":"Base Transaction","description":"🆕 A Base transaction by hash, unedited: from, to, value in wei and ETH, nonce, gas, fee caps, type, and the 4-byte method selector with the calldata size. Flags a contract creation (null to) and a still-pending transaction (null block) rather than leaving you to infer either. Unknown hashes answer found:false, not an error.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/base-tx","input":{"hash":{"type":"string","required":true,"description":"Transaction hash","in":"query","example":"0x… 32-byte tx hash"}}},{"id":"base-receipt","name":"Base Receipt","description":"🆕 The receipt for a Base transaction: success or reverted, block, gas used, effective gas price, the fee in wei and ETH, how many logs it emitted and which contracts emitted them. A contract deployment reports the new address. No receipt yet means pending, dropped, or never here — and it says which is possible instead of failing.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/base-receipt","input":{"hash":{"type":"string","required":true,"description":"Transaction hash","in":"query","example":"0x… 32-byte tx hash"}}},{"id":"base-nonce","name":"Address Nonce","description":"🆕 The next nonce for any Base address, plus its ETH balance and whether it is a contract. The count means different things either side of that line — transactions sent for a wallet, contracts deployed for a contract — so both are reported under their own name instead of one ambiguous number. What you need before building a transaction, or to tell a fresh address from a used one.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/base-nonce","input":{"address":{"type":"string","required":true,"description":"Address","in":"query","example":"0x… wallet or contract"}}},{"id":"token-balance","name":"Token Balance","description":"🆕 An ERC-20 balance on Base, in raw units and in decimals, with the token's symbol and decimals resolved in the same call. Zero is flagged explicitly, since it is the commonest answer and the one most easily confused with a failed read. An address that doesn't implement balanceOf answers found:false and says so.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-balance","input":{"token":{"type":"string","required":true,"description":"Token contract","in":"query","example":"0x… token"},"wallet":{"type":"string","required":true,"description":"Wallet address","in":"query","example":"0x… holder"}}},{"id":"token-supply","name":"Token Supply","description":"🆕 totalSupply for any Base token, returned raw and scaled by its decimals, alongside the name and symbol. When a contract doesn't declare decimals the answer assumes 18 and marks that it assumed — a silent guess here quietly moves every downstream number by orders of magnitude. Non-token addresses answer found:false.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/token-supply","input":{"token":{"type":"string","required":true,"description":"Token contract","in":"query","example":"0x… token"}}},{"id":"contract-info","name":"Contract Identity","description":"🆕 What sits at a Base address: contract or plain wallet, and if a contract, whether it declares ERC-721 or ERC-1155 via ERC-165 or carries the ERC-20 shape, plus name, symbol, decimals and code size. Interface support is read from the contract's own declaration first and only inferred when there is none — the ordering matters, because NFTs answer totalSupply() too.","category":"Onchain","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/contract-info","input":{"address":{"type":"string","required":true,"description":"Contract address","in":"query","example":"0x… contract"}}},{"id":"onramp-quote","name":"Fiat Onramp Quote","description":"🆕 Prices the same fiat purchase across EVERY payment method a country allows, and ranks them by what the buyer actually receives. On $100 in the US the spread is real: card takes 2.44, bank transfer 0.50, a funded fiat wallet nothing. Returns each rail's fee, net amount, min/max limits, and the cheapest one. Live Coinbase pricing, not a rate card. Pass address= for a payable checkout link. Not financial advice.","category":"Business","requiresAI":false,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/onramp-quote","input":{"country":{"type":"string","required":true,"description":"ISO country code","in":"query","example":"US"},"amount":{"type":"string","required":true,"description":"Fiat amount","in":"query","example":"100"},"asset":{"type":"string","required":false,"description":"Asset to buy (optional, default USDC)","in":"query","example":"USDC"},"network":{"type":"string","required":false,"description":"Network (optional, default base)","in":"query","example":"base"},"currency":{"type":"string","required":false,"description":"Fiat currency (optional, default USD)","in":"query","example":"EUR"},"address":{"type":"string","required":false,"description":"Destination wallet (optional — needed for a checkout link)","in":"query","example":"0x… wallet"}}},{"id":"onramp-coverage","name":"Fiat Rails by Country","description":"🆕 The feasibility check before you ask a user for money: which fiat-in and cash-out rails Coinbase actually runs in a country, the currencies and min/max limits for each, and how many assets across which networks. Distinguishes a country with card rails from one where crypto can only be transferred in — a difference most integrations discover only after a user fails. 122 countries covered.","category":"Business","requiresAI":false,"price":"$0.02","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/onramp-coverage","input":{"country":{"type":"string","required":true,"description":"ISO country code","in":"query","example":"DE"}}},{"id":"fx-convert","name":"FX Convert","description":"Convert between 30+ currencies at the European Central Bank's daily reference rate, for today or any past date. Returns the converted amount, the per-unit rate and the date the rate is actually from — the ECB publishes on business days only, so a weekend date answers with the previous business day and says so instead of pretending. Reference rates for accounting and reporting, not tradable quotes.","category":"Business","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/fx-convert","input":{"from":{"type":"string","required":true,"description":"Source currency","in":"query","example":"USD"},"to":{"type":"string","required":true,"description":"Target currency (or several, comma-separated)","in":"query","example":"EUR,TRY"},"amount":{"type":"string","required":false,"description":"Amount (optional, default 1)","in":"query","example":"100"},"date":{"type":"string","required":false,"description":"Date (optional, YYYY-MM-DD)","in":"query","example":"2026-07-24"}}},{"id":"iban-check","name":"IBAN Check","description":"Validate an IBAN offline: country registry length, structure, and the ISO 7064 mod-97 checksum that catches what humans and spreadsheets actually get wrong — a transposed pair, a dropped character, an O typed for a zero. Returns the normalised and print-formatted forms, country, SEPA membership, and the bank identifier where the layout is known. Every rejection names WHICH check failed, so you know whether to fix the row or drop it. Structure only: a valid IBAN is not proof the account exists.","category":"Business","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/iban-check","input":{"iban":{"type":"string","required":true,"description":"IBAN","in":"query","example":"GB82 WEST 1234 5698 7654 32"}}},{"id":"phone-check","name":"Phone Check","description":"Turn the many ways a phone number gets typed into one E.164 string: strips spacing, brackets, the 00 international prefix and the national trunk zero people include out of habit. Returns country, calling code, national number, and whether the length matches that country's numbering plan. Line type (mobile / fixed) is reported ONLY for countries whose ranges are unambiguous and is null elsewhere with a reason — never guessed. Offline: it does not check that the number is assigned or reachable.","category":"Business","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/phone-check","input":{"phone":{"type":"string","required":true,"description":"Phone number","in":"query","example":"+90 532 123 45 67"},"country":{"type":"string","required":false,"description":"Calling code, if the number has no +","in":"query","example":"44"}}},{"id":"vat-check","name":"EU VAT Check","description":"Validate an EU VAT number offline: country prefix, national format, and the published check-digit algorithm for the 8 countries that have one (BE, DE, FR, IT, LU, NL, PL, PT). The response says which of the two you got — checksumChecked distinguishes a verified number from a format-only pass, because they are not the same strength of answer. Registration is deliberately NOT claimed: only VIES can say whether a number is registered, and this endpoint does not call it.","category":"Business","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/vat-check","input":{"vat":{"type":"string","required":true,"description":"VAT number","in":"query","example":"BE0417497106"}}},{"id":"business-days","name":"Business Days","description":"Add business days to a date, or count them between two dates, for ~110 countries. Knows each country's weekend (Friday-Saturday where that applies, not just Sat-Sun) and its national public holidays, and names every day it skipped. Holidays observed only in some provinces are deliberately NOT treated as national closures — they are listed separately so you can apply them when your case is regional. Built for payment terms, SLAs and delivery dates.","category":"Business","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/business-days","input":{"country":{"type":"string","required":true,"description":"Country (2-letter ISO)","in":"query","example":"TR"},"from":{"type":"string","required":false,"description":"Start date (optional, defaults to today)","in":"query","example":"2026-08-03"},"add":{"type":"string","required":false,"description":"Business days to add","in":"query","example":"30"},"to":{"type":"string","required":false,"description":"…or an end date, to count business days instead","in":"query","example":"2026-09-15"}}},{"id":"inflation-adjust","name":"Inflation Adjust","description":"Restate an amount from one year in another year's money, for any country in the World Bank consumer-price series (1960 onwards). Returns the adjusted amount, the cumulative inflation and both index values so the arithmetic is checkable. The series is annual and published with a lag, so a request for a year that does not exist yet answers with the newest one available and says which. For contract comparisons, historical pricing and long-running budgets.","category":"Business","requiresAI":false,"price":"$0.002","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/inflation-adjust","input":{"from":{"type":"string","required":true,"description":"Year the amount is in","in":"query","example":"2015"},"amount":{"type":"string","required":false,"description":"Amount (optional, default 1)","in":"query","example":"1000"},"to":{"type":"string","required":false,"description":"Year to restate it in (optional, defaults to latest)","in":"query","example":"2025"},"country":{"type":"string","required":false,"description":"Country ISO code (optional, default US)","in":"query","example":"TR"}}},{"id":"company-lei","name":"Company LEI","description":"Look a company up in GLEIF, the global Legal Entity Identifier register: LEI code, registered legal name, entity status, registration status, jurisdiction and address. The register's own name filter is a token search that returns thousands of unrelated rows, so matches are re-checked here and only an exact one — or one differing solely in legal form (Inc/Ltd/GmbH) — is reported as found; the rest come back as candidates.","category":"Business","requiresAI":false,"price":"$0.005","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/company-lei","input":{"name":{"type":"string","required":true,"description":"Company legal name","in":"query","example":"Coinbase Global, Inc."}}},{"id":"file-convert","name":"Format Convert","description":"Convert between the shapes data actually arrives in: CSV or TSV to JSON, JSON to CSV or TSV, CSV to a Markdown table, Markdown to HTML. Proper RFC 4180 parsing — quoted fields, embedded commas and newlines, doubled quotes — so a spreadsheet exported by a human does not silently come apart. Numbers and booleans get real types (turn it off with typed=false). No model call and no upstream: local parsing only.","category":"Files","requiresAI":false,"price":"$0.005","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/file-convert","input":{"text":{"type":"string","required":true,"description":"Content to convert","in":"query","example":"name,qty\\nWidget,3"},"from":{"type":"string","required":true,"description":"Source format","in":"query","example":"csv | tsv | json | md"},"to":{"type":"string","required":true,"description":"Target format","in":"query","example":"json | csv | tsv | md | html"},"typed":{"type":"string","required":false,"description":"Type numbers/booleans (optional)","in":"query","example":"true (default) | false"}}},{"id":"file-publish","name":"Publish Page","description":"Send Markdown (or HTML) and get back a URL that renders as a real page — headings, tables, code blocks, mobile-readable, no scripts and no external requests. The other half of an agent's output problem: file-slot is for bytes it will fetch back, this is for the report somebody has to read. Retention 1-30 days. Published on the storage origin, never on 402.com.tr.","category":"Files","requiresAI":false,"price":"$0.01","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/file-publish","input":{"text":{"type":"string","required":true,"description":"Markdown or HTML to publish","in":"query","example":"# Report\\n\\nFindings…"},"title":{"type":"string","required":false,"description":"Page title (optional)","in":"query","example":"Weekly report"},"format":{"type":"string","required":false,"description":"md (default) or html","in":"query","example":"md"},"ttlDays":{"type":"string","required":false,"description":"Retention in days (optional)","in":"query","example":"7 (1-30)"}}},{"id":"file-slot","name":"Agent File Slot","description":"Get a signed upload URL and a retrieval URL for one file, in one call. Your agent PUTs the bytes straight to storage — they never pass through this API, so there is no size ceiling imposed by a serverless runtime and no proxy in the middle. Declare bytes= and the size is signed into the URL. Up to 25 MB, retention 1-30 days, unguessable key. The step every agent hits the moment it produces a report, chart, CSV or build and has nowhere to put it.","category":"Files","requiresAI":false,"price":"$0.005","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/file-slot","input":{"bytes":{"type":"string","required":true,"description":"Exact file size in bytes","in":"query","example":"e.g. 20480"},"name":{"type":"string","required":false,"description":"File name (optional hint)","in":"query","example":"report.csv"},"contentType":{"type":"string","required":false,"description":"Content type (optional)","in":"query","example":"text/csv"},"ttlDays":{"type":"string","required":false,"description":"Retention in days (optional)","in":"query","example":"7 (1-30)"}}},{"id":"ai-extract-batch","name":"AI Extract Batch","description":"The pipeline version of ai-extract: send up to 10 documents (text1=…&text2=… or texts= with ||| separators) and one field list — get one schema-enforced JSON object per document, in order, from a single paid call. 10 extractions for $0.10 instead of 10x the per-call overhead: built for agents parsing feeds, inboxes, scrape batches and receipt piles. Up to 6K chars per document.","category":"AI","requiresAI":true,"price":"$0.10","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-extract-batch","input":{"text1":{"type":"string","required":true,"description":"Document 1","in":"query","example":"First text…"},"text2":{"type":"string","required":false,"description":"Document 2 (optional)","in":"query","example":"Second text…"},"fields":{"type":"string","required":false,"description":"Fields (comma-separated)","in":"query","example":"name, email, company, date"}}},{"id":"ai-translate","name":"AI Translate","description":"Claude-quality translation as a pay-per-call primitive: send text= (up to 6K characters) and to= any language, get only the translation back — no notes, no wrapper prose, safe to pipe straight into the next step. One USDC micro-payment per call, no API key or subscription. Built for agents localizing content, parsing foreign-language sources, or serving multilingual users.","category":"AI","requiresAI":true,"price":"$0.03","freeTier":false,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/ai-translate","input":{"text":{"type":"string","required":true,"description":"Text to translate","in":"query","example":"Merhaba dünya…"},"to":{"type":"string","required":false,"description":"Target language","in":"query","example":"English"}}},{"id":"secure-token","name":"Secure Token","description":"Generate N cryptographically-strong, url-safe random tokens server-side — session IDs, API nonces, one-time codes, coupon secrets. Pass count= for how many. A tiny paid utility for agents that need entropy without a crypto library.","category":"Utility","requiresAI":false,"price":"$0.01","freeTier":true,"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/secure-token","input":{"count":{"type":"string","required":false,"description":"How many","in":"query","example":"3"}}},{"id":"buy-credits","name":"Prepaid Credits","description":"Buy a prepaid balance in a single x402 settlement and get a secret credit token. Send it as the `x-credit-token` header on any paid service and each call debits its price from your balance — no per-call signature, no settlement latency. Built for agents that fire many checks a minute. Tiers: $0.25 (starter), $1, $5 (+10%), $20 (+20%). The token is shown once; balance lasts 180 days.","category":"Utility","requiresAI":false,"price":"$5.00","freeTier":false,"tiers":{"1":"$1.00","5":"$5.00 (+10% bonus)","20":"$20.00 (+20% bonus)","0.25":"$0.25"},"method":"GET","x402":true,"endpoint":"https://402.com.tr/api/x402/buy-credits","input":{"tier":{"type":"string","required":false,"description":"Pack: 0.25, 1, 5 or 20 (USD)","in":"query","example":"5"}}}],"partners":[{"name":"Warden","description":"Pre-execution security for agents on Base: token/address/tx risk verdicts (block/review/clear), calldata decode + simulation. x402-paid guard API + free-tier firewall keys.","baseUrl":"https://warden402.xyz","catalog":"https://warden402.xyz/.well-known/x402","x402":true,"network":"eip155:8453"}]}