{"schemaVersion":"sml.agent-catalog/1","x402Version":2,"service":{"name":"SML Risk Firewall","description":"Evaluate proposed equity, spot and standard long option buys against caller-defined risk limits. Check combined batch outlay, exposure, buying power, daily loss and snapshot freshness. Live Tradier/Coinbase instrument checks before x402 payment. Signed decision receipts. Account snapshots come from the caller; broker execution requires separate authorization. Read /skill.md for the machine integration contract.","origin":"https://sml-risk-firewall.onrender.com","operator":"Script Master Labs LLC"},"paymentsEnforced":true,"sandbox":null,"rails":[{"id":"base-usdc","network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","decimals":6,"eip712":{"name":"USD Coin","version":"2"},"payTo":"0x5BBd32e0478e49A7540EF2D760E0B0F9AA6328b2","facilitator":"https://mcp-x402.onrender.com","scheme":"exact","available":true},{"id":"arc-usdc","network":"eip155:5042","chainId":5042,"asset":"0x3600000000000000000000000000000000000000","symbol":"USDC","decimals":6,"eip712":{"name":"USDC","version":"2"},"payTo":"0x5BBd32e0478e49A7540EF2D760E0B0F9AA6328b2","facilitator":"https://mcp-x402.onrender.com","scheme":"exact","available":true},{"id":"solana-usdc","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","chainId":null,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","decimals":6,"eip712":null,"payTo":"Hv4cEGpyyNJDvxvgBb3C8GkcwtouF1qUfPT13innuXty","facilitator":"https://four02proof-x402-v2-xrpl.onrender.com","scheme":"exact","available":true,"payerFee":"payer adds 5000 atomic USDC facilitator fee leg"},{"id":"xrpl-xrp","network":"xrpl:0","chainId":null,"asset":"XRP","symbol":"XRP","decimals":6,"eip712":null,"payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","facilitator":"https://four02proof-x402-v2-xrpl.onrender.com","scheme":"exact","available":true,"rateQuote":{"symbol":"XRP","usdPerUnit":1.15465,"source":"Coinbase spot XRP-USD","quotedAt":"2026-11-07T15:55:17.676Z","expiresAt":"2026-11-07T15:56:17.676Z"}},{"id":"xahau-xah","network":"xrpl:21337","chainId":null,"asset":"XAH","symbol":"XAH","decimals":6,"eip712":null,"payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","facilitator":"https://four02proof-x402-v2-xrpl.onrender.com","scheme":"exact","available":true,"rateQuote":{"symbol":"XAH","usdPerUnit":0.00983181,"source":"CoinGecko xahau/usd","quotedAt":"2026-11-07T15:55:17.676Z","expiresAt":"2026-11-07T15:56:17.676Z"}},{"id":"xrpl-rlusd","network":"xrpl:0","chainId":null,"asset":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De.524C555344000000000000000000000000000000","symbol":"RLUSD","decimals":6,"eip712":null,"payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","facilitator":"https://four02proof.onrender.com","scheme":"402proof-invoice","available":true}],"paymentFlow":{"steps":["Call the door unpaid -> 402 with a fresh quote per rail (extra.quoteId, amount, quoteExpiresAt).","Choose ONE rail; sign exactly that accepts entry (keep extra.quoteId) and retry with PAYMENT-SIGNATURE.","200 = state 'settled' with settlementEvidence (facilitator tx) + receipt.payment tying the tx to receipt.outputHash.","202 = state 'uncertain': we never re-charge or switch rails on our own; poll statusUrl (/payments/{idempotencyKey}). Re-sending the same quote is idempotent."],"quoteTtlSeconds":300,"status":"https://sml-risk-firewall.onrender.com/payments/{idempotencyKey}"},"railChoice":"Every 402 lists one accepts entry per AVAILABLE rail at the same USD price (XRP/XAH converted at the quoted rate held 60 s, rounded up). Pick ONE rail. Base/Arc settle via Omnigate (mcp-x402); Solana USDC, XRP, XAH via the 402Proof x402 v2 sidecar; RLUSD via the 402Proof invoice API (GET extra.invoiceUrl). No automatic cross-rail retry.","loyalty":{"tiers":[{"minPaidCalls":10,"discountPct":20},{"minPaidCalls":100,"discountPct":30}],"howToClaim":"Send X-PAYER: <wallet>; sign from that wallet. Counts persist on the configured durable volume."},"receipts":{"publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA8KIncsReCXQLvyyWzAvBqJPj4VKtvUVnhu3uqlRHtjk=\n-----END PUBLIC KEY-----\n","verify":"https://sml-risk-firewall.onrender.com/receipts/verify","chain":"https://sml-risk-firewall.onrender.com/receipts/chain","how":"Every paid answer carries receipt{seq,prev,inputHash,outputHash,hash,signature}. hash = sha256(canonical JSON of body); signature = Ed25519 over hash; prev links the chain."},"products":[{"id":"risk-evaluate","title":"Order and batch risk evaluation","method":"POST","door":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","priceUsd":0.005,"amountAtomic":"5000","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","tags":["risk","trading","options","pre-trade","agents"],"input":{"policy":{"version":"example","maxOrderUsd":"60","maxExposureUsd":"500","maxDailyLossUsd":"100","maxSnapshotAgeSeconds":30,"maxContractsPerOrder":10,"expirationBufferMinutes":60},"snapshot":{"asOf":"<current UTC timestamp>","exposureUsd":"0","reservedUsd":"0","dailyLossUsd":"0","buyingPowerUsd":"500"},"orders":[{"id":"order-1","symbol":"AMC","assetType":"option","side":"buy","limitPriceUsd":"0.32","quantity":"2","feesUsd":"0","multiplier":100,"adjusted":false,"positionEffect":"open","right":"call","expiresAt":"<contract expiry UTC timestamp>"}]},"inputSchema":{"type":"object","required":["policy","snapshot","orders"],"properties":{"policy":{"type":"object","required":["version","maxOrderUsd","maxExposureUsd","maxDailyLossUsd","maxSnapshotAgeSeconds","maxContractsPerOrder","expirationBufferMinutes"],"properties":{"version":{"type":"string","minLength":1,"maxLength":128},"maxOrderUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"maxExposureUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"maxDailyLossUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"maxQuoteAgeSeconds":{"type":"integer","minimum":1,"maximum":300,"description":"Defaults to maxSnapshotAgeSeconds"},"maxSnapshotAgeSeconds":{"type":"integer","minimum":1,"maximum":300},"maxContractsPerOrder":{"type":"integer","minimum":1,"maximum":100000},"expirationBufferMinutes":{"type":"integer","minimum":0,"maximum":10080}}},"snapshot":{"type":"object","required":["asOf","exposureUsd","reservedUsd","dailyLossUsd","buyingPowerUsd"],"properties":{"asOf":{"type":"string","format":"date-time","description":"UTC timestamp ending in Z"},"exposureUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"reservedUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"dailyLossUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"buyingPowerUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"}}},"orders":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["id","symbol","assetType","side","limitPriceUsd","quantity","feesUsd"],"properties":{"id":{"type":"string","minLength":1,"maxLength":128},"symbol":{"type":"string"},"assetType":{"type":"string","enum":["equity","spot","option"]},"side":{"type":"string","enum":["buy"]},"limitPriceUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"quantity":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"feesUsd":{"type":"string","pattern":"^(0|[1-9][0-9]{0,12})(\\.[0-9]{1,6})?$"},"right":{"type":"string","enum":["call","put"]},"multiplier":{"type":"integer","const":100},"adjusted":{"type":"boolean","const":false},"positionEffect":{"type":"string","const":"open"},"expiresAt":{"type":"string","format":"date-time"},"optionSymbol":{"type":"string","description":"OCC symbol required for broker submission of an option order"}},"allOf":[{"if":{"properties":{"assetType":{"const":"option"}}},"then":{"required":["right","multiplier","adjusted","positionEffect","expiresAt","optionSymbol"]}}]}}}},"outputExample":{"verdict":"REJECT","reasons":[{"code":"ORDER_OUTLAY_LIMIT","orderId":"order-1","actual":"64.000000","limit":"60.000000"}],"dataSource":"live_instrument_validation_and_caller_account_snapshot"},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x5BBd32e0478e49A7540EF2D760E0B0F9AA6328b2","maxTimeoutSeconds":120,"resource":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","mimeType":"application/json","extra":{"name":"USD Coin","version":"2","rail":"base-usdc","symbol":"USDC","decimals":6,"product":"risk-evaluate","listPriceUsd":0.005,"priceUsd":0.005,"loyaltyDiscountPct":0,"payer":null,"loyaltyTiers":[{"minPaidCalls":10,"discountPct":20},{"minPaidCalls":100,"discountPct":30}],"catalog":"https://sml-risk-firewall.onrender.com/catalog"}},{"scheme":"exact","network":"eip155:5042","amount":"5000","asset":"0x3600000000000000000000000000000000000000","payTo":"0x5BBd32e0478e49A7540EF2D760E0B0F9AA6328b2","maxTimeoutSeconds":120,"resource":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","mimeType":"application/json","extra":{"name":"USDC","version":"2","rail":"arc-usdc","symbol":"USDC","decimals":6,"product":"risk-evaluate","listPriceUsd":0.005,"priceUsd":0.005,"loyaltyDiscountPct":0,"payer":null,"loyaltyTiers":[{"minPaidCalls":10,"discountPct":20},{"minPaidCalls":100,"discountPct":30}],"catalog":"https://sml-risk-firewall.onrender.com/catalog"}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"5000","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"Hv4cEGpyyNJDvxvgBb3C8GkcwtouF1qUfPT13innuXty","maxTimeoutSeconds":120,"resource":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","mimeType":"application/json","extra":{"feePayer":"7Re9Q6xC4wMSVTr8XRm334gQD2Sko4ZXoGRHVcrKxF7k","facilitatorFee":"5000","facilitatorFeeRecipient":"Hv4cEGpyyNJDvxvgBb3C8GkcwtouF1qUfPT13innuXty","rail":"solana-usdc","symbol":"USDC","decimals":6,"product":"risk-evaluate","listPriceUsd":0.005,"priceUsd":0.005,"loyaltyDiscountPct":0,"payer":null,"catalog":"https://sml-risk-firewall.onrender.com/catalog"}},{"scheme":"exact","network":"xrpl:0","amount":"4331","asset":"XRP","payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","maxTimeoutSeconds":300,"resource":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","mimeType":"application/json","extra":{"areFeesSponsored":false,"rail":"xrpl-xrp","symbol":"XRP","decimals":6,"product":"risk-evaluate","listPriceUsd":0.005,"priceUsd":0.005,"loyaltyDiscountPct":0,"payer":null,"catalog":"https://sml-risk-firewall.onrender.com/catalog","rateQuote":{"symbol":"XRP","usdPerUnit":1.15465,"source":"Coinbase spot XRP-USD","quotedAt":"2026-11-07T15:55:17.676Z","expiresAt":"2026-11-07T15:56:17.676Z"}}},{"scheme":"exact","network":"xrpl:21337","amount":"508554","asset":"XAH","payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","maxTimeoutSeconds":300,"resource":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","mimeType":"application/json","extra":{"areFeesSponsored":false,"facilitatorFee":"0","facilitatorFeeRecipient":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","rail":"xahau-xah","symbol":"XAH","decimals":6,"product":"risk-evaluate","listPriceUsd":0.005,"priceUsd":0.005,"loyaltyDiscountPct":0,"payer":null,"catalog":"https://sml-risk-firewall.onrender.com/catalog","rateQuote":{"symbol":"XAH","usdPerUnit":0.00983181,"source":"CoinGecko xahau/usd","quotedAt":"2026-11-07T15:55:17.676Z","expiresAt":"2026-11-07T15:56:17.676Z"}}},{"scheme":"402proof-invoice","network":"xrpl:0","amount":"5000","asset":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De.524C555344000000000000000000000000000000","payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","maxTimeoutSeconds":900,"resource":"https://sml-risk-firewall.onrender.com/v1/risk/evaluate","description":"Submit policy, timestamped account snapshot and 1–100 proposed orders. Returns PASS, REJECT or INSUFFICIENT_DATA, exact USD calculations and machine-readable rule codes. All money and quantity inputs are decimal strings. Live instrument validation and fresh provider quotes are required before payment. Account snapshot provenance remains explicit.","mimeType":"application/json","extra":{"rail":"xrpl-rlusd","symbol":"RLUSD","decimals":6,"product":"risk-evaluate","listPriceUsd":0.005,"priceUsd":0.005,"loyaltyDiscountPct":0,"payer":null,"catalog":"https://sml-risk-firewall.onrender.com/catalog","protocol":"402proof-invoice","invoiceUrl":"https://sml-risk-firewall.onrender.com/pay/invoice?product=risk-evaluate&resource=https%3A%2F%2Fsml-risk-firewall.onrender.com%2Fv1%2Frisk%2Fevaluate","paymentHeader":"X-402PROOF-PAYMENT","howToPay":"GET invoiceUrl -> pay `amount` RLUSD (issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De) to pay_to on XRPL with MemoData = memo_hex -> retry the same call with header X-402PROOF-PAYMENT: base64(JSON {claim, tx_hash, agent_wallet})"}}],"payOptions":{"howTo":"1) Choose one option below. 2) Follow that option's howToPay for its exact amount, asset, network and payTo, including any declared fee leg. 3) Retry the original request using the payment header declared by that option. Preserve the original accepted quote.","options":[{"choice":1,"howToPay":"Sign EIP-3009 transferWithAuthorization for exactly amount; retry with PAYMENT-SIGNATURE = base64(x402 v2 payload, accepted = this accepts entry incl. extra.quoteId).","acceptsIndex":0,"rail":"base-usdc","label":"Pay $0.005 in USDC on Base","priceUsd":0.005,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","decimals":6,"amount":"5000","payTo":"0x5BBd32e0478e49A7540EF2D760E0B0F9AA6328b2","scheme":"exact"},{"choice":2,"howToPay":"Sign EIP-3009 transferWithAuthorization for exactly amount; retry with PAYMENT-SIGNATURE = base64(x402 v2 payload, accepted = this accepts entry incl. extra.quoteId).","acceptsIndex":1,"rail":"arc-usdc","label":"Pay $0.005 in USDC on Arc","priceUsd":0.005,"network":"eip155:5042","asset":"0x3600000000000000000000000000000000000000","symbol":"USDC","decimals":6,"amount":"5000","payTo":"0x5BBd32e0478e49A7540EF2D760E0B0F9AA6328b2","scheme":"exact"},{"choice":3,"howToPay":"Build the x402 v2 exact SVM transaction (feePayer from extra; include the separate facilitatorFee transfer to facilitatorFeeRecipient); retry with PAYMENT-SIGNATURE, accepted = this entry byte-for-byte.","acceptsIndex":2,"rail":"solana-usdc","label":"Pay $0.005 in USDC on Solana","priceUsd":0.005,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","decimals":6,"amount":"5000","payTo":"Hv4cEGpyyNJDvxvgBb3C8GkcwtouF1qUfPT13innuXty","scheme":"exact"},{"choice":4,"howToPay":"Sign a native Payment of exactly amount drops to payTo bound to extra.invoiceId (x402 v2 exact XRPL; Xahau adds the fee leg as feeTxBlob when facilitatorFee > 0); retry with PAYMENT-SIGNATURE, accepted = this entry byte-for-byte.","acceptsIndex":3,"rail":"xrpl-xrp","label":"Pay $0.005 in XRP on XRPL","priceUsd":0.005,"network":"xrpl:0","asset":"XRP","symbol":"XRP","decimals":6,"amount":"4331","payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","scheme":"exact"},{"choice":5,"howToPay":"Sign a native Payment of exactly amount drops to payTo bound to extra.invoiceId (x402 v2 exact XRPL; Xahau adds the fee leg as feeTxBlob when facilitatorFee > 0); retry with PAYMENT-SIGNATURE, accepted = this entry byte-for-byte.","acceptsIndex":4,"rail":"xahau-xah","label":"Pay $0.005 in XAH on Xahau","priceUsd":0.005,"network":"xrpl:21337","asset":"XAH","symbol":"XAH","decimals":6,"amount":"508554","payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","scheme":"exact"},{"choice":6,"howToPay":"GET invoiceUrl -> pay `amount` RLUSD (issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De) to pay_to on XRPL with MemoData = memo_hex -> retry the same call with header X-402PROOF-PAYMENT: base64(JSON {claim, tx_hash, agent_wallet})","acceptsIndex":5,"rail":"xrpl-rlusd","label":"Pay $0.005 in RLUSD on XRPL","priceUsd":0.005,"network":"xrpl:0","asset":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De.524C555344000000000000000000000000000000","symbol":"RLUSD","decimals":6,"amount":"5000","payTo":"rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX","scheme":"402proof-invoice"}]}}],"free":[{"door":"https://sml-risk-firewall.onrender.com/v1/risk/capabilities","what":"Supported order types and decision contract"},{"door":"https://sml-risk-firewall.onrender.com/catalog","what":"this catalog"},{"door":"https://sml-risk-firewall.onrender.com/.well-known/x402","what":"x402 discovery"},{"door":"https://sml-risk-firewall.onrender.com/llms.txt","what":"agent guide"},{"door":"https://sml-risk-firewall.onrender.com/mcp","what":"MCP JSON-RPC (tools/list, tools/call for free samples)"}]}