{"service":"Kortex","tagline":"Kortex tells an agent which x402 service actually works, from evidence: uptime measured over time, a valid 402, and settlements proven on-chain.","why":["Every payment you make is a bet on a stranger. There is nothing between you and a URL that takes your money and returns nothing.","Directories tell you what exists. Measured across 1,015 listed x402 services, only 25% answer with a payment requirement at all.","A service can claim anything in its own description. It cannot fake having been paid, by other wallets, on-chain.","Ask Kortex before you pay, and report what happened after. Reporting is free, and only counts when the payment is found on-chain."],"url":"https://kortex.rohnelt.dev","version":"0.1.0","protocols":{"rest":"https://kortex.rohnelt.dev/v1","mcp":{"transport":"streamable-http","url":"https://kortex.rohnelt.dev/mcp"},"openapi":"https://kortex.rohnelt.dev/openapi.json"},"authentication":{"scheme":"Bearer","header":"Authorization: Bearer ktx_sk_...","how_to_get_one":{"call":"identity.create","url":"https://kortex.rohnelt.dev/v1/identity","cost_usd":"0.000000","requires":"An EVM wallet and one personal_sign (EIP-191) signature. No account, no email, no human."}},"billing":{"model":"prepaid balance, debited per call","currency":"USDC","why_prepaid":"Operations cost fractions of a cent. On-chain settlement per call would cost more than the call itself, so you deposit once and Kortex debits off-chain.","trial_credit_usd":"0.020000","trial_expires_hours":24,"minimum_deposit_usd":"1.000000","payment":{"protocol":"x402","version":2,"network":"eip155:8453","network_name":"Base mainnet","asset":"USDC","pay_to":"0xa61446444dAE6c570813656CEd71C18D68A5f0Fd","method":"POST","url":"https://kortex.rohnelt.dev/v1/credit/deposit/1","price_usd":"1.00","tiers":[{"amount_usd":"1.00","url":"https://kortex.rohnelt.dev/v1/credit/deposit/1"},{"amount_usd":"5.00","url":"https://kortex.rohnelt.dev/v1/credit/deposit/5"},{"amount_usd":"20.00","url":"https://kortex.rohnelt.dev/v1/credit/deposit/20"}],"how":["POST to https://kortex.rohnelt.dev/v1/credit/deposit/1 with your Kortex bearer token.","You will receive HTTP 402 with payment requirements.","Pay with any x402 client, then repeat the request with the X-PAYMENT header.","The credit lands on your balance and every later call is debited off-chain."]}},"quickstart":{"1_claim_identity":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/identity","body":{"wallet":"0xYourWallet","message":"Kortex identity for 0xYourWallet at <ISO-8601 now>","signature":"0x<personal_sign of that exact message>"},"returns":"a handle and your bearer token"},"2_before_you_pay_a_stranger":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/check?resource=<the url you are about to pay>","returns":"a verdict, a score, and the specific facts behind both"},"3_or_let_kortex_pick":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/resolve?need=scrape+a+web+page","returns":"services that actually work for that need, one entry per operator, ranked by evidence"},"4_tell_us_what_happened":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/report","body":{"resource":"<the url you paid>","outcome":"never_delivered"},"note":"Free. Verified against the chain, so it only counts if you really paid."}},"operations":[{"id":"capabilities","title":"Describe Kortex","summary":"Return the full machine-readable manifest of Kortex: every operation, its price in USD, its input schema and how to pay. Free.","when_to_use":"Call this first if you have never used Kortex and want to know what it can do and what it costs.","price_usd":"0.000000","free":true,"http":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/capabilities"},"mcp_tool":"capabilities","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"output_example":{"service":"Kortex","operations":["resolve","check","report"]},"tags":["discovery"]},{"id":"identity.create","title":"Claim an identity","summary":"Turn a wallet address into a permanent Kortex identity and an API token. Free, and grants a small trial credit.","when_to_use":"Call this once, before anything else. You need the returned token for every other call. No account, no email, no human.","price_usd":"0.000000","free":true,"http":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/identity"},"mcp_tool":"identity.create","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Your EVM wallet address. This is your permanent identity."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"EIP-191 personal_sign of the message field, proving you control the wallet."},"message":{"type":"string","minLength":8,"maxLength":200,"description":"Must contain your wallet address and a timestamp within the last 10 minutes."},"label":{"description":"A name for your own reference.","type":"string","maxLength":64}},"required":["wallet","signature","message"]},"output_example":{"handle":"swift-heron-4f2a","token":"ktx_sk_...","balance_usd":"0.020000"},"tags":["identity"]},{"id":"whoami","title":"Who am I","summary":"Your handle, wallet, balance and usage. Free.","when_to_use":"Call this to check your balance before a run, or to confirm your token still works.","price_usd":"0.000000","free":true,"http":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/whoami"},"mcp_tool":"whoami","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"output_example":{"handle":"swift-heron-4f2a","balance_usd":"0.870000","trial":false},"tags":["identity"]},{"id":"credit.deposit","title":"Top up balance","summary":"Buy Kortex credit with USDC on Base over x402. One on-chain settlement, then every call is debited off-chain.","when_to_use":"Call when your balance is low. Operations cost fractions of a cent, so a single deposit covers hundreds of them.","price_usd":"0.000000","free":true,"http":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/credit/deposit"},"mcp_tool":"credit.deposit","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"amount_usd":{"description":"One of 1, 5 or 20. Defaults to 1.","type":"string"}}},"output_example":{"credited_usd":"1.000000","balance_usd":"1.020000","tx":"0x..."},"tags":["billing"]},{"id":"resolve","title":"Find a service that actually works","summary":"Describe what you need in plain language and get back x402 services ranked by evidence: how much of the time they have been up, whether they answer with a valid 402, and how many distinct wallets have actually paid them on-chain. One entry per operator, not per URL.","when_to_use":"Call this before paying a service you have not used, and instead of taking the first result from a directory. Of the services listed as x402 today, measured across 1,015 of them, only 25% actually answer with a payment requirement — the rest are up but sell nothing.","price_usd":"0.005000","free":false,"http":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/resolve"},"mcp_tool":"resolve","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"need":{"type":"string","minLength":3,"maxLength":200,"description":"What you want done, in plain language. Example: scrape a web page and return clean text."},"limit":{"default":5,"description":"How many candidates to return.","type":"integer","minimum":1,"maximum":20},"max_price_usd":{"description":"Skip anything that quotes more than this per call.","type":"string"},"require_paid":{"default":true,"description":"Only return services with at least one on-chain settlement. Turn off to see untested ones too.","type":"boolean"}},"required":["need"]},"output_example":{"need":"scrape a web page","results":[{"resource":"https://example.com/v1/scrape","service_name":"Example Scraper","score":84.2,"price_usd":"0.002000","evidence":{"uptime_30d":0.99,"payers_30d":41,"settlements_30d":1368,"median_latency_ms":221,"last_paid":"2026-08-24T19:02:11Z"}}]},"tags":["discovery","trust"]},{"id":"check","title":"Is this one safe to pay","summary":"Everything Kortex knows about a single resource URL: whether it is up, whether its 402 is well formed, what it quotes, and whether its payout address has ever been paid on-chain. Returns a verdict, not just data.","when_to_use":"Call this when you already have a URL and want to know whether sending money to it is a good idea. Worth it above roughly US$0.05 a call; below that the check costs more than the risk.","price_usd":"0.002000","free":false,"http":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/check"},"mcp_tool":"check","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resource":{"type":"string","maxLength":2048,"format":"uri","description":"The exact URL you are about to pay, including the path."},"probe_now":{"default":false,"description":"Hit the endpoint live instead of using the most recent scheduled probe.","type":"boolean"}},"required":["resource"]},"output_example":{"resource":"https://example.com/v1/scrape","verdict":"pay","score":84.2,"reasons":["up on 99% of probes over 30 days","41 distinct wallets paid it in 30 days"],"evidence":{"uptime_30d":0.99,"payers_30d":41,"pay_to":"0xabc...","price_usd":"0.002000"}},"tags":["trust"]},{"id":"compare","title":"Rank several candidates","summary":"Score two or more resource URLs side by side on the same evidence, and say which one to pay.","when_to_use":"Call this when you already have a shortlist and need to pick. Cheaper than calling check once per URL.","price_usd":"0.003000","free":false,"http":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/compare"},"mcp_tool":"compare","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resources":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"string","maxLength":2048,"format":"uri","description":"The exact URL you are about to pay, including the path."},"description":"The URLs to rank."}},"required":["resources"]},"output_example":{"best":"https://example.com/v1/scrape","ranked":[{"resource":"https://example.com/v1/scrape","score":84.2,"verdict":"pay"},{"resource":"https://other.example/v1/scrape","score":12,"verdict":"avoid"}]},"tags":["trust"]},{"id":"history","title":"Show me the record","summary":"The full time series behind a score: every probe outcome, every price and payout-address change, and the on-chain settlement history of the address it pays to.","when_to_use":"Call this when a verdict surprises you, or before committing to a service you plan to depend on. This is the evidence itself rather than the summary.","price_usd":"0.002000","free":false,"http":{"method":"GET","url":"https://kortex.rohnelt.dev/v1/history"},"mcp_tool":"history","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resource":{"type":"string","maxLength":2048,"format":"uri","description":"The exact URL you are about to pay, including the path."},"days":{"default":30,"description":"How far back to look.","type":"integer","minimum":1,"maximum":90}},"required":["resource"]},"output_example":{"resource":"https://example.com/v1/scrape","uptime":[{"day":"2026-08-24","probes":2,"reachable":2}],"changes":[{"at":"2026-08-12T09:00:00Z","field":"pay_to","from":"0xaaa...","to":"0xbbb..."}],"settlements":{"count_30d":1368,"payers_30d":41,"first":"2026-06-02T11:04:00Z"}},"tags":["trust"]},{"id":"watch","title":"Tell me if it changes","summary":"Register interest in a service. Kortex records a watch and reports what has changed — price, payout address, or availability — the next time you ask.","when_to_use":"Call this for a service you depend on. A payout address that moves is the strongest warning signal there is, and you will not notice it by yourself.","price_usd":"0.005000","free":false,"http":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/watch"},"mcp_tool":"watch","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resource":{"type":"string","maxLength":2048,"format":"uri","description":"The exact URL you are about to pay, including the path."},"callback_url":{"description":"Optional. If set, Kortex POSTs here when something changes.","type":"string","format":"uri"}},"required":["resource"]},"output_example":{"watching":"https://example.com/v1/scrape","watch_id":"wch_01H..."},"tags":["trust"]},{"id":"report","title":"Report what happened","summary":"Tell Kortex that you paid a service and what you got. Free, and only counted once the payment is found on-chain — so a report costs at least the price of the call it describes.","when_to_use":"Call this after any paid call that went wrong, and after ones that went right. It is free, it makes every later verdict better, and the evidence it adds is the kind no probe can produce.","price_usd":"0.000000","free":true,"http":{"method":"POST","url":"https://kortex.rohnelt.dev/v1/report"},"mcp_tool":"report","input_schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resource":{"type":"string","maxLength":2048,"format":"uri","description":"The exact URL you are about to pay, including the path."},"outcome":{"type":"string","enum":["ok","no_response","wrong_output","overcharged","never_delivered"],"description":"What actually happened after you paid."},"detail":{"description":"What happened, in your own words.","type":"string","maxLength":500},"tx_hash":{"description":"The settlement transaction, if you have it. Speeds up verification.","type":"string","pattern":"^0x[a-fA-F0-9]{64}$"}},"required":["resource","outcome"]},"output_example":{"recorded":true,"verified":true,"note":"Payment found on-chain. This report counts toward the score."},"tags":["trust"]}],"contact":"https://kortex.rohnelt.dev/llms.txt"}