{"x402Version":2,"service":"stall-row","description":"A row of eleven small x402 stalls in one service: Base chain reads (wallet snapshot, allowance audit, transaction decoder, gas oracle), a wallet trust verdict, fetch tools (YouTube search, page-to-Markdown, GitHub repo vitals), seller tools (Bazaar price-check, agent-card smith), and a digest of open agent jobs. Use this when an agent needs one cheap, honest fact mid-task and cannot run the source itself.","network":"eip155:8453","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","resources":[{"resource":"https://stall-row-production.up.railway.app/v1/wallet-snapshot","method":"POST","price":"$0.005","scheme":"exact","mimeType":"application/json","description":"Snapshot one Base wallet in a single call: ETH balance, top token holdings, first and last activity, and outgoing transaction count. Use this when an agent needs a wallet's shape before deciding to pay, trust, or transact with it. Explorer fields that cannot be supplied come back marked unknown, never invented.","tags":["base","wallet","balances","data","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]},"outputSchema":{"type":"object","properties":{"address":{"type":"string"},"eth_balance":{"type":"string"},"eth_balance_wei":{"type":["string","null"]},"eth_balance_source":{"type":"string"},"outgoing_tx_count_nonce":{"type":["integer","null"]},"is_contract":{"type":["boolean","string","null"]},"token_balances":{"type":["array","string"],"items":{"type":"object","properties":{"address":{"type":["string","null"]},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"decimals":{"type":["integer","null"]},"balance":{"type":["string","null"]},"balance_raw":{"type":["string","null"]}},"required":["address","name","symbol","decimals","balance","balance_raw"]}},"first_activity":{"type":"string"},"last_activity":{"type":"string"},"sources":{"type":"object"},"note":{"type":"string"}},"required":["address","eth_balance","sources"]}},{"resource":"https://stall-row-production.up.railway.app/v1/allowance-audit","method":"POST","price":"$0.005","scheme":"exact","mimeType":"application/json","description":"Audit one Base wallet's ERC-20 approvals against a curated list of major spenders (Permit2, Uniswap, Aerodrome, aggregators): active approvals are listed and unlimited ones flagged high risk. Use this when an agent or its owner wants to know what a wallet has already authorized before it holds or moves funds.","tags":["base","security","approvals","allowance","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]},"outputSchema":{"type":"object","properties":{"address":{"type":"string"},"tokens_held_checked":{"type":"integer"},"spenders_checked":{"type":"integer"},"spender_coverage":{"type":"array","items":{"type":"string"}},"allowance_checks_performed":{"type":"integer"},"active_approvals":{"type":"array","items":{"type":"object","properties":{"token_address":{"type":["string","null"]},"token_symbol":{"type":["string","null"]},"spender":{"type":"string"},"spender_name":{"type":"string"},"allowance":{"type":["string","null"]},"allowance_raw":{"type":"string"},"unlimited":{"type":"boolean"},"risk":{"type":"string"}},"required":["spender","spender_name","allowance_raw","unlimited","risk"]}},"unlimited_approvals":{"type":"integer"},"summary":{"type":"string"},"coverage_note":{"type":"string"}},"required":["address","tokens_held_checked","spenders_checked","active_approvals","unlimited_approvals","summary"]}},{"resource":"https://stall-row-production.up.railway.app/v1/tx-decoder","method":"POST","price":"$0.002","scheme":"exact","mimeType":"application/json","description":"Decode one Base transaction into plain English: sender, receiver, ETH value, status, the known method behind the selector, every ERC-20 transfer it made, and a one-sentence summary. Use this when an agent needs to explain or verify what a transaction actually did before acting on it.","tags":["base","transactions","decode","data","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"tx_hash":{"type":"string"}},"required":["tx_hash"]},"outputSchema":{"type":"object","properties":{"tx_hash":{"type":"string"},"block_number":{"type":["integer","null"]},"from":{"type":["string","null"]},"to":{"type":["string","null"]},"value_eth":{"type":"string"},"status":{"type":"string"},"method_id":{"type":["string","null"]},"method":{"type":["string","null"]},"method_description":{"type":["string","null"]},"gas_used":{"type":["integer","null"]},"erc20_transfers":{"type":"array","items":{"type":"object","properties":{"token":{"type":["string","null"]},"from":{"type":"string"},"to":{"type":"string"},"amount_raw":{"type":["string","null"]}},"required":["from","to"]}},"summary":{"type":"string"}},"required":["tx_hash","value_eth","status","erc20_transfers","summary"]}},{"resource":"https://stall-row-production.up.railway.app/v1/gas-oracle","method":"POST","price":"$0.001","scheme":"exact","mimeType":"application/json","description":"Current Base gas in one call: the live gas price, the current base fee, the base-fee range across the last 20 blocks, whether fees are rising, falling, or flat, and a cheap-window hint drawn from that data. Use this when an agent wants to time a transaction instead of paying whatever the moment charges.","tags":["base","gas","fees","data","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"1000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{},"required":[]},"outputSchema":{"type":"object","properties":{"chain":{"type":"string"},"latest_block":{"type":"integer"},"gas_price_gwei":{"type":"string"},"base_fee_gwei":{"type":"string"},"base_fee_min_gwei_20_blocks":{"type":"string"},"base_fee_max_gwei_20_blocks":{"type":"string"},"blocks_sampled":{"type":"integer"},"trend":{"type":"string","enum":["rising","falling","flat"]},"cheapest_window_hint":{"type":"string"},"as_of_epoch":{"type":"integer"},"note":{"type":"string"}},"required":["chain","latest_block","gas_price_gwei","base_fee_gwei","trend","cheapest_window_hint"]}},{"resource":"https://stall-row-production.up.railway.app/v1/wallet-verdict","method":"POST","price":"$0.02","scheme":"exact","mimeType":"application/json","description":"A trust verdict for one Base wallet: OFAC SDN exact-match against a dated snapshot, wallet age, activity level, and an address-poisoning scan of its recent token transfers, combined into SAFE, CAUTION, or AVOID with a 0-100 score and itemized reasons. Use this when an agent must decide whether a wallet is safe to pay or take instructions from.","tags":["base","security","sanctions","verdict","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]},"outputSchema":{"type":"object","properties":{"address":{"type":"string"},"verdict":{"type":"string","enum":["SAFE","CAUTION","AVOID"]},"score":{"type":"integer"},"sanctions":{"type":"object"},"wallet_age_days":{"type":["integer","null"]},"first_activity":{"type":"string"},"outgoing_tx_count_nonce":{"type":["integer","null"]},"poisoning":{"type":"object"},"reasons":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"points":{"type":"integer"},"detail":{"type":"string"}},"required":["name","points","detail"]}},"limits":{"type":"string"}},"required":["address","verdict","score","sanctions","poisoning","reasons"]}},{"resource":"https://stall-row-production.up.railway.app/v1/tube-search","method":"POST","price":"$0.01","scheme":"exact","mimeType":"application/json","description":"YouTube search results as clean JSON: title, video id, URL, channel, duration, and views for each result, scraped from the public results page with no API key. Use this when an agent needs to find a video mid-task and cannot drive a browser or hold a Google API key.","tags":["search","youtube","video","data","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"10000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"query":{"type":"string"},"max_results":{"type":"integer","minimum":1,"maximum":20}},"required":["query"]},"outputSchema":{"type":"object","properties":{"query":{"type":"string"},"count":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"video_id":{"type":"string"},"url":{"type":"string"},"channel":{"type":["string","null"]},"duration":{"type":["string","null"]},"views":{"type":["string","null"]}},"required":["title","video_id","url"]}}},"required":["query","count","results"]}},{"resource":"https://stall-row-production.up.railway.app/v1/page-to-markdown","method":"POST","price":"$0.01","scheme":"exact","mimeType":"application/json","description":"Fetch one web page and return its main content as clean Markdown with title and word count, extracted server-side. Private and loopback targets are refused. Use this when an agent needs to read a page inside a workflow without a browser and without wading through navigation and boilerplate.","tags":["fetch","markdown","web","reading","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"10000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"outputSchema":{"type":"object","properties":{"url":{"type":"string"},"final_url":{"type":"string"},"title":{"type":["string","null"]},"markdown":{"type":"string"},"word_count":{"type":"integer"}},"required":["url","final_url","markdown","word_count"]}},{"resource":"https://stall-row-production.up.railway.app/v1/repo-vitals","method":"POST","price":"$0.005","scheme":"exact","mimeType":"application/json","description":"Vital signs for one GitHub repository in a single call: stars, forks, open issues, license, last push, archived flag, and a 0-100 health score with a verdict line. Use this when an agent is choosing a dependency, a repo to contribute to, or a project to trust, and needs the quick read before the deep one.","tags":["github","repos","data","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"repo":{"type":"string"}},"required":["repo"]},"outputSchema":{"type":"object","properties":{"repo":{"type":"string"},"url":{"type":["string","null"]},"description":{"type":["string","null"]},"stars":{"type":"integer"},"forks":{"type":"integer"},"open_issues":{"type":"integer"},"license":{"type":["string","null"]},"pushed_at":{"type":["string","null"]},"created_at":{"type":["string","null"]},"archived":{"type":"boolean"},"health_score":{"type":"integer"},"health_notes":{"type":"array","items":{"type":"string"}},"verdict":{"type":"string"}},"required":["repo","stars","forks","open_issues","archived","health_score","verdict"]}},{"resource":"https://stall-row-production.up.railway.app/v1/price-check","method":"POST","price":"$0.05","scheme":"exact","mimeType":"application/json","description":"Pricing comps for an x402 listing, read live from the CDP Bazaar public catalog: how many resources match your keywords, their price distribution, the closest comparables, and a recommended listing price with its rationale. Use this when you operate an x402 route and are setting or changing its price.","tags":["x402","bazaar","pricing","sellers","agents"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"50000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"keywords":{"type":"string"},"description":{"type":"string"}},"required":["keywords"]},"outputSchema":{"type":"object","properties":{"keywords":{"type":"string"},"catalog_status":{"type":"string"},"matches_found":{"type":"integer"},"price_distribution":{"type":["object","null"],"properties":{"min_usd":{"type":"number"},"median_usd":{"type":"number"},"p90_usd":{"type":"number"},"max_usd":{"type":"number"}}},"comparables":{"type":"array","items":{"type":"object","properties":{"resource":{"type":["string","null"]},"description":{"type":"string"},"price_units":{"type":"integer"},"price_usd":{"type":"number"}},"required":["description","price_units","price_usd"]}},"recommended_price_usd":{"type":["number","null"]},"rationale":{"type":"string"}},"required":["keywords","catalog_status","matches_found","comparables","rationale"]}},{"resource":"https://stall-row-production.up.railway.app/v1/card-smith","method":"POST","price":"$0.1","scheme":"exact","mimeType":"application/json","description":"Generate or grade an agent card (the /.well-known/agent-card.json an agent publishes for A2A and AgentWorld-style registries). Generate builds a structurally valid card from your fields; grade scores a supplied card and itemizes its defects. Use this when you are registering an agent and want the card right the first time.","tags":["agents","a2a","agent-card","identity","sellers"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"100000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["generate","grade"]},"name":{"type":"string"},"description":{"type":"string"},"skills":{"type":"array"},"card":{"type":"object"}},"required":["mode"]},"outputSchema":{"type":"object","properties":{"mode":{"type":"string"},"card":{"type":["object","null"]},"validation":{"type":"object","properties":{"valid_structure":{"type":"boolean"},"score":{"type":"integer"},"defects":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"severity":{"type":"string"},"detail":{"type":"string"}},"required":["name","severity","detail"]}}},"required":["valid_structure","score","defects"]}},"required":["mode","validation"]}},{"resource":"https://stall-row-production.up.railway.app/v1/job-scout","method":"POST","price":"$0.05","scheme":"exact","mimeType":"application/json","description":"A digest of currently open agent jobs from the marketplaces we sweep daily, filtered by the capabilities you name and sorted by budget: platform, budget, capability tags, deadline, and source snapshot time on every row, with a stale flag when the snapshot ages past 24 hours. Use this when your agent is looking for paid work.","tags":["jobs","bounties","agents","work","digest"],"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"50000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","maxTimeoutSeconds":300}],"inputSchema":{"type":"object","properties":{"capabilities":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer"}},"required":[]},"outputSchema":{"type":"object","properties":{"snapshot_fetched_at":{"type":["string","null"]},"snapshot_source":{"type":["string","null"]},"data_stale":{"type":"boolean"},"snapshot_age_hours":{"type":["number","null"]},"count":{"type":"integer"},"jobs":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"platform":{"type":"string"},"budget_usd":{"type":["number","null"]},"capabilities":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"required":["title","platform","url"]}},"note":{"type":"string"}},"required":["data_stale","count","jobs","note"]}},{"resource":"https://stall-row-production.up.railway.app/quote","method":"GET","price":"$0.00","description":"Free price quote for every route on the row"}]}