{"service":"plus","mode":"live","enabled":true,"principle":"The wire is identical for paying and non-paying users. Plus sells capacity, assurance and funded cover — never a smaller crowd.","tokens":{"scheme":"RSABSSA-SHA384-PSS-Randomized (RFC 9474)","prefix":"robyn-plus-v1:","unlinkable":true,"publicKeyJwk":{"key_ops":["verify"],"ext":true,"alg":"PS384","kty":"RSA","n":"qnMtzDv5-jlX9ILs14BUpQfFoG-bmLWmiaGgXkBBYqBkqpAqRQgmM3Oq4KrxD8Blh6Bg-zs61xQt8zyKAjBsJoBsC_AwXOg57v8y3hvyApRpd2nUXzOqgus3Wc5Vyy0fORZ7NBd4-CY6YCL4bdLRuq1n_kW657KowVYF8rka5wP31EAVdvywuAlYvf4gLRNqPiryccMxmo8c9gfC9F07jFbK7d-Js-zn01KJOVDG8bsnFWHxhwWjanLQsM6giFr8HLAg2iuj3EJNfR5rI1CvQohHqVDtF-gVEU4N11Gnq1TCqvRZpKD_0u_W-kMGGT8a28xi7ooZeIXtbsvsjerUrQ","e":"AQAB"},"keyCreated":1787220505021,"how":"client: msg = \"robyn-plus-v1:\" + random hex; prepared = prepare(msg); {blindedMsg, inv} = blind(prepared, pub); POST /api/plus/claim {invoiceId, txHash, blinded:[...]} -> blindSigs; sig = finalize(pub, prepared, blindSig, inv); pass = {preparedMsg, sig} (base64). One pass = one privileged action."},"products":{"bundle":{"tokens":500,"usd":3,"what":"each token authorises ONE privileged action: a rate-limit-exempt send/publish, one funded cover row, or one anchoring"}},"maxBundlesPerInvoice":50,"btcMinSats":100000,"trial":{"passesPerDay":20,"how":"POST /api/plus/trial {blinded:[...]} — free, one per day per caller, same unlinkable passes"},"assets":{"eth-4663":{"chainId":4663,"symbol":"ETH","kind":"native"},"eth-1":{"chainId":1,"symbol":"ETH","kind":"native"},"eth-42161":{"chainId":42161,"symbol":"ETH","kind":"native"},"eth-8453":{"chainId":8453,"symbol":"ETH","kind":"native"},"usdc-8453":{"chainId":8453,"symbol":"USDC","kind":"erc20"},"usdc-42161":{"chainId":42161,"symbol":"USDC","kind":"erc20"},"btc":{"chainId":"bitcoin","symbol":"BTC","kind":"chainflip"}},"redeemableAt":["POST /api/messages/v2/send {pass}","POST /api/messages/v2/mailbox {pass}","POST /api/messages/v2/plus/cover {pass}","POST /api/messages/v2/plus/anchor {pass,id}","ANY quota-limited call (route/quote, route/preflight, agent/do): header x-anygas-pass = base64(JSON {preparedMsg,sig}) or body.pass — exempt for that one request, unlinkable (the anonymous alternative to an API key)","POST /api/receipt/deliver {pass}"],"weLearn":"that some payer bought N tokens at time T","weDoNotLearn":"which requests those tokens later authorised","stats":{"issued":65,"spent":18},"sdk":"/svc/plus-sdk.mjs","docs":"https://anygas.xyz/docs#plus","endpoints":{"info":"GET /api/plus/info","invoice":"POST /api/plus/invoice {bundle, bundles?(1-50), asset, refundAddress?(btc)}","status":"GET /api/plus/invoice/{id}","claim":"POST /api/plus/claim {invoiceId, txHash?, blinded:[b64]}","trial":"POST /api/plus/trial {blinded:[b64]} (free, 20/day)","redeem":"POST /api/plus/redeem {preparedMsg, sig} (burns a token; for verification only)"}}