{"service":"x402 Derivatives Desk","productName":"x402 Derivatives Analytics Desk","version":"1.6.0","tagline":"Pay-per-call European option pricing, analytic Greeks, IV surfaces, and multi-leg book risk for power, commodity, equity, and crypto agents.","description":"Production x402 quant API for autonomous trading and risk agents. Price European options with full analytic Greeks; invert market premiums to implied vol (single quote or multi-maturity surface); price and revalue books on a submitted IV smile (total-variance bilinear in log-moneyness); aggregate multi-leg net Greeks; reprice books under spot/vol/time scenarios. Designed for power and energy desks (forward marks that differ by maturity), commodities, equities, and crypto — no API keys, USDC exact settlement via HTTP 402 on Solana and/or Base. Free fixed demo at /v1/demo/option-price; MCP tools at /mcp; paid HTTP routes remain the source of truth.","capabilitySummary":["Single-contract Black-Scholes-Merton fair value + delta/gamma/vega/theta/rho","Implied vol from one premium (fast) or a full strike×maturity surface (book)","Price / scenario on a submitted IV surface (TV bilinear in k,T; flat_vol wings)","Per-row underlyings so power/commodity forwards can differ by maturity","Multi-leg portfolio net Greeks, MTM, optional dollar Greeks, scenario reprice","x402 USDC exact on Solana mainnet and Base mainnet; free fixed demo for discovery","MCP façade: one tool per paid HTTP route (same services + USDC prices)"],"capabilities":["european_option_pricing","analytic_greeks","single_premium_implied_vol","implied_volatility_surface","price_from_iv_surface","scenario_from_iv_surface","multi_maturity_underlyings","portfolio_net_greeks","portfolio_scenario_analysis","power_energy_forward_marks","x402_usdc_micropayments","mcp_tool_facade","bazaar_discoverable","idempotent_retries","free_demo_sample"],"useCases":["Price power/gas/oil European options off maturity-specific forward marks","Build multi-maturity IV surfaces from broker or exchange premium dumps","Price options on a submitted smile without inventing Dupire/SABR","Book reval on a smile under sticky moneyness/strike/fixed_vol shocks","Delta/vega hedging loops for automated market makers","Net Greeks and MTM for multi-leg books (long/short signed quantity)","Scenario P&L under relative spot/vol shocks and calendar time decay","MCP hosts (Claude, Cursor, Windsurf) calling the full tool set (price, IV, surface, portfolio)"],"markets":["power_and_energy","commodities","equities","crypto","fx_style_european"],"pricing":{"currency":"USDC","scheme":"exact","summary":"option $0.01 · implied-vol $0.03 · surface $0.10 · price-from-surface $0.08 · scenario-from-surface $0.15 · portfolio-greeks $0.15 · scenario $0.25 · free fixed demo at /v1/demo/option-price","optionPrice":{"path":"POST /v1/option/price","price":"$0.01","env":"PRICE_USD"},"impliedVol":{"path":"POST /v1/option/implied-vol","price":"$0.03","env":"PRICE_IMPLIED_VOL_USD"},"volatilitySurface":{"path":"POST /v1/volatility/surface","price":"$0.10","env":"PRICE_VOL_SURFACE_USD"},"portfolioGreeks":{"path":"POST /v1/portfolio/greeks","price":"$0.15","env":"PRICE_PORTFOLIO_GREEKS_USD"},"portfolioScenario":{"path":"POST /v1/portfolio/scenario","price":"$0.25","env":"PRICE_PORTFOLIO_SCENARIO_USD"},"optionFromSurface":{"path":"POST /v1/option/price-from-surface","price":"$0.08","env":"PRICE_OPTION_FROM_SURFACE_USD"},"scenarioFromSurface":{"path":"POST /v1/option/scenario-from-surface","price":"$0.15","env":"PRICE_SCENARIO_FROM_SURFACE_USD"},"freeDemo":{"path":"GET|POST /v1/demo/option-price","price":"$0.00","note":"Fixed ATM sample via live BSM engine; no wallet"}},"mcp":{"enabled":true,"path":"/mcp","url":"https://derivatives-pricer-production.up.railway.app/mcp","tools":["service_info","price_option","implied_vol","implied_vol_surface","price_from_surface","scenario_from_surface","portfolio_greeks","portfolio_scenario"],"transport":"streamable-http-stateless","note":"MCP is a façade over the same pricing services; USDC payment may be required on paid tools."},"freeTier":{"demoEnabled":true,"firstNOnOptionPrice":0,"windowMs":86400000},"iconUrl":"https://derivatives-pricer-production.up.railway.app/favicon.ico","settlement":{"networks":[{"alias":"solana","caip2":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"USDC","scheme":"exact"},{"alias":"base","caip2":"eip155:8453","asset":"USDC","scheme":"exact"}],"facilitators":{"payai":true,"cdp":{"enabled":true,"lastProbe":"200"},"base":"cdp","solana":"payai"},"note":"No API keys. Clients may pay USDC on any listed network (exact scheme). Receive addresses appear only in the 402 PAYMENT-REQUIRED protocol payload, not on free discovery."},"endpoints":{"free":[{"method":"GET","path":"/health","description":"Liveness and active network/pricing snapshot"},{"method":"GET","path":"/","description":"Machine-readable service card: capabilities, use cases, endpoint catalog, examples"},{"method":"GET|POST","path":"/v1/demo/option-price","description":"Free fixed ATM BSM sample (live engine, constant inputs) for discovery indexes"},{"method":"POST","path":"/mcp","description":"MCP Streamable HTTP (stateless): service_info + one paid tool per HTTP route"},{"method":"GET","path":"/.well-known/x402","description":"x402 well-known discovery manifest (JSON)"},{"method":"GET","path":"/.well-known/x402.json","description":"x402 well-known discovery manifest (JSON, alias)"},{"method":"GET","path":"/openapi.json","description":"OpenAPI 3.1 specification for all endpoints"},{"method":"GET","path":"/swagger.json","description":"Alias of /openapi.json (same OpenAPI document)"},{"method":"GET","path":"/llms.txt","description":"Agent-oriented Markdown summary (llms.txt convention): capabilities, paid endpoints, discovery links"},{"method":"GET","path":"/skill.md","description":"Short agent skill loader (Markdown): what, pay, free/paid routes, surface value-add, examples"},{"method":"GET","path":"/SKILL.md","description":"Alias of /skill.md"}],"paid":[{"method":"POST","path":"/v1/option/price","serviceName":"BSM Price+Greeks","description":"When to use: you already have model inputs (S or forward mark, K, T, r, σ) and need fair value + hedge ratios — not market-premium IV. European BSM price + analytic Greeks (delta, gamma, vega, theta, rho). Works for equity spots and power/commodity forwards (use the maturity mark as spot). USDC exact on Solana/Base. Free fixed sample: GET /v1/demo/option-price.","price":"$0.01","mimeType":"application/json","tags":["options","greeks","power","multi-chain","usdc"],"agentHints":{"whenToCall":"Have S/K/T/r/σ (or a power forward mark as S) and need price + Greeks. Prefer this over surface when you are not inverting market premiums.","relatedEndpoints":["GET /v1/demo/option-price","POST /v1/option/implied-vol","POST /v1/volatility/surface","POST /v1/portfolio/greeks"]}},{"method":"POST","path":"/v1/option/implied-vol","serviceName":"Single IV Solver","description":"When to use: one market premium → need σ̂ + Greeks; cheaper/faster than a full surface. Solves Black-Scholes IV then prices Greeks at the solved σ. Same engine as the surface endpoint (fastImpliedVol). Prefer surface when you have a multi-strike/maturity book. USDC exact on Solana/Base.","price":"$0.03","mimeType":"application/json","tags":["implied-vol","options","greeks","multi-chain","usdc"],"agentHints":{"whenToCall":"One premium to mark or hedge. Use /v1/volatility/surface instead for books and multi-maturity power/commodity grids.","relatedEndpoints":["POST /v1/option/price","POST /v1/volatility/surface"]}},{"method":"POST","path":"/v1/volatility/surface","serviceName":"IV Surface Desk","description":"When to use: book of market premiums → need IV grid + per-quote Greeks (not a single contract). Shared rate/yield; each row has its own underlying (power/commodity forwards by maturity). Returns strike×maturity IV surface, fit quality, solve stats. USDC exact on Solana/Base. Prefer single IV endpoint for one premium.","price":"$0.10","mimeType":"application/json","tags":["volatility","iv-surface","power","multi-chain","usdc"],"agentHints":{"whenToCall":"Multi-strike/multi-maturity premiums (e.g. power stack or commodity curve). Use price_option / /v1/option/price when σ is already known.","relatedEndpoints":["POST /v1/option/price","POST /v1/option/implied-vol"]}},{"method":"POST","path":"/v1/portfolio/greeks","serviceName":"Portfolio Net Greeks","description":"When to use: multi-leg European book → need net MTM + net Greeks (long/short via signed quantity). Shared rate/yield; each leg has underlying, strike, T, type, quantity, vol. Optional dollar Greeks. Prefer scenario endpoint for what-if P&L. USDC exact on Solana/Base.","price":"$0.15","mimeType":"application/json","tags":["portfolio","greeks","risk","multi-chain","usdc"],"agentHints":{"whenToCall":"Aggregate delta/gamma/vega/theta/rho across a multi-leg book. Use scenario for shocked MTM.","relatedEndpoints":["POST /v1/portfolio/scenario","POST /v1/option/price"]}},{"method":"POST","path":"/v1/portfolio/scenario","serviceName":"Portfolio Scenarios","description":"When to use: what-if P&L under relative spot/vol shocks and calendar time decay on a European book. Returns base MTM+Greeks and per-scenario shocked MTM, MTM change, full Greeks. Single-option or multi-leg. USDC exact on Solana/Base.","price":"$0.25","mimeType":"application/json","tags":["scenario","portfolio","risk","multi-chain","usdc"],"agentHints":{"whenToCall":"Need shocked MTM and Greeks (spotShock, volShock, timeDecayDays). Use portfolio/greeks for base risk only.","relatedEndpoints":["POST /v1/portfolio/greeks","POST /v1/option/price"]}},{"method":"POST","path":"/v1/option/price-from-surface","serviceName":"Price From Surface","description":"When to use: you already have an IV surface (k,T,σ) and need to price options on it — not invert premiums and not scalar σ. Interpolates total variance w=σ²T bilinear in log-moneyness k=ln(K/F); wingRule=flat_vol. Returns price, interpolated σ, k, F, BS Greeks. USDC exact on Solana/Base. Prefer /v1/option/price when σ is a single scalar.","price":"$0.08","mimeType":"application/json","tags":["surface-price","options","smile","multi-chain","usdc"],"agentHints":{"whenToCall":"Have a smile/surface grid and want European prices + Greeks at interpolated σ. Use scalar /v1/option/price if you already know one σ.","relatedEndpoints":["POST /v1/option/price","POST /v1/volatility/surface","POST /v1/option/scenario-from-surface"]}},{"method":"POST","path":"/v1/option/scenario-from-surface","serviceName":"Surface Scenarios","description":"When to use: book reval on an IV surface under F/rate/time/vol shocks with sticky moneyness|strike|fixed_vol. Vol order: interpolate → volAbs → volRel → smileTwist*k. Greeks are sticky-σ BS Greeks (not smile bump deltas). USDC exact on Solana/Base. Prefer scalar /v1/portfolio/scenario for per-leg scalar σ books.","price":"$0.15","mimeType":"application/json","tags":["scenario","surface-price","risk","multi-chain","usdc"],"agentHints":{"whenToCall":"Need base vs scenario MTM on a smile with sticky conventions. Use price-from-surface for static pricing only.","relatedEndpoints":["POST /v1/option/price-from-surface","POST /v1/portfolio/scenario"]}}]},"discovery":{"bazaar":true,"protocol":"x402","howToDiscover":"Unpaid POST to a paid path returns HTTP 402 with PAYMENT-REQUIRED (base64). Extensions.bazaar carries input/output schemas for agent tooling.","paymentHeader":"PAYMENT-REQUIRED","wellKnown":["/.well-known/x402","/.well-known/x402.json"]},"baseUrl":"https://derivatives-pricer-production.up.railway.app","examples":{"optionPrice":{"request":{"spot":100,"strike":100,"timeToExpiry":1,"rate":0.05,"volatility":0.2,"optionType":"call","dividendYield":0},"response":{"price":10.45057562,"greeks":{"delta":0.63683059,"gamma":0.01876202,"vega":37.52403469,"theta":-6.41402764,"rho":53.23248343},"inputs":{"spot":100,"strike":100,"timeToExpiry":1,"rate":0.05,"volatility":0.2,"optionType":"call","dividendYield":0},"model":"black-scholes-merton","units":{"price":"option value in spot currency units","delta":"dV/dS (share equivalent)","gamma":"d²V/dS²","vega":"dV/dσ per 1.0 absolute volatility (not per 1%)","theta":"dV/dT per year (not per day)","rho":"dV/dr per 1.0 absolute rate (not per 1%)"},"requestId":"00000000-0000-4000-8000-000000000001","computedAt":"2026-01-01T00:00:00.000Z"}},"impliedVol":{"request":{"underlying":100,"strike":100,"timeToExpiry":1,"rate":0.05,"dividendYield":0,"optionType":"call","premium":10.45057562},"response":{"impliedVol":0.2,"greeks":{"delta":0.63683059,"gamma":0.01876202,"vega":37.52403469,"theta":-6.41402764,"rho":53.23248343},"modelPrice":10.45057562,"priceError":0,"iterations":12,"converged":true,"inputs":{"underlying":100,"strike":100,"timeToExpiry":1,"rate":0.05,"dividendYield":0,"optionType":"call","premium":10.45057562},"requestId":"00000000-0000-4000-8000-000000000003","computedAt":"2026-01-01T00:00:00.000Z"}},"volatilitySurface":{"request":{"rate":0.05,"dividendYield":0,"options":[{"underlying":100,"strike":90,"timeToExpiry":0.25,"optionType":"call","premium":12.5},{"underlying":102,"strike":100,"timeToExpiry":0.5,"optionType":"call","premium":8.7},{"underlying":101,"strike":110,"timeToExpiry":1,"optionType":"put","premium":9.1}]},"response":{"surface":{"strikes":[90,100,110],"maturities":[0.25,0.5,1],"impliedVols":[[0.25,null,null],[null,0.22,null],[null,null,0.2]]},"market":{"rate":0.05,"dividendYield":0},"points":[{"index":0,"underlying":100,"strike":90,"timeToExpiry":0.25,"optionType":"call","premium":12.5,"impliedVol":0.25,"greeks":{"delta":0.75,"gamma":0.02,"vega":15,"theta":-8,"rho":10},"modelPrice":12.5,"priceError":0,"status":"ok"}],"fit":{"okCount":3,"failedCount":0,"meanAbsPriceError":1e-8,"maxAbsPriceError":2e-8,"rmsePriceError":1.2e-8},"stats":{"optionCount":3,"elapsedMs":1.2,"solver":"fastImpliedVol","avgIterations":4},"requestId":"00000000-0000-4000-8000-000000000002","computedAt":"2026-01-01T00:00:00.000Z"}},"portfolioGreeks":{"request":{"rate":0.05,"dividendYield":0,"includeDollarGreeks":true,"positions":[{"underlying":100,"strike":100,"timeToExpiry":1,"optionType":"call","quantity":10,"volatility":0.2},{"underlying":100,"strike":110,"timeToExpiry":1,"optionType":"put","quantity":-5,"volatility":0.22}]},"response":{"net":{"mtm":47.16439511,"greeks":{"delta":9.05941615,"gamma":0.09736793,"vega":176.68540458,"theta":-58.62185203,"rho":858.77721991},"dollarGreeks":{"deltaCash":905.941615,"gammaCash":486.8396,"vegaPerPoint":1.76685405,"thetaPerDay":-0.16060781,"rhoPerPoint":8.5877722}},"legs":[{"index":0,"quantity":10,"underlying":100,"strike":100,"timeToExpiry":1,"optionType":"call","volatility":0.2,"price":10.45057562,"contribution":104.50575619,"greeks":{"delta":6.3683059,"gamma":0.18762017,"vega":375.24034692,"theta":-64.1402764,"rho":532.32483426}},{"index":1,"quantity":-5,"underlying":100,"strike":110,"timeToExpiry":1,"optionType":"put","volatility":0.22,"price":11.46827222,"contribution":-57.34136108,"greeks":{"delta":2.69111025,"gamma":-0.09025225,"vega":-198.55494233,"theta":5.51842437,"rho":326.45238565}}],"positionCount":2,"requestId":"00000000-0000-4000-8000-000000000004","computedAt":"2026-01-01T00:00:00.000Z"}},"portfolioScenario":{"request":{"rate":0.05,"dividendYield":0,"positions":[{"underlying":100,"strike":100,"timeToExpiry":1,"optionType":"call","quantity":10,"volatility":0.2},{"underlying":100,"strike":110,"timeToExpiry":1,"optionType":"put","quantity":-5,"volatility":0.22}],"scenarios":[{"name":"spot_down_10","spotShock":-0.1,"volShock":0,"timeDecayDays":0},{"name":"vol_up_20pct_rel","spotShock":0,"volShock":0.2,"timeDecayDays":1}]},"response":{"base":{"mtm":47.16439511,"greeks":{"delta":9.05941615,"gamma":0.09736793,"vega":176.68540458,"theta":-58.62185203,"rho":858.77721991}},"scenarios":[{"name":"spot_down_10","shocks":{"spotShock":-0.1,"volShock":0,"timeDecayDays":0},"mtm":-37.85755566,"mtmChange":-85.02195077,"greeks":{"delta":7.8848641,"gamma":0.13279827,"vega":201.29852574,"theta":-55.98280497,"rho":747.49532487}},{"name":"vol_up_20pct_rel","shocks":{"spotShock":0,"volShock":0.2,"timeDecayDays":1},"mtm":53.31386329,"mtmChange":6.14946818,"greeks":{"delta":8.86589449,"gamma":0.08214409,"vega":178.51169933,"theta":-60.74906514,"rho":830.99263852}}],"positionCount":2,"scenarioCount":2,"requestId":"00000000-0000-4000-8000-000000000005","computedAt":"2026-01-01T00:00:00.000Z"}},"optionFromSurface":{"request":{"surfaceConvention":"log_moneyness_forward","interpolation":"total_variance_bilinear","wingRule":"flat_vol","rate":0.05,"dividendYield":0,"surface":[{"k":-0.1,"timeToExpiry":0.25,"iv":0.22},{"k":0,"timeToExpiry":0.25,"iv":0.2},{"k":0.1,"timeToExpiry":0.25,"iv":0.23},{"k":-0.1,"timeToExpiry":0.5,"iv":0.21},{"k":0,"timeToExpiry":0.5,"iv":0.2},{"k":0.1,"timeToExpiry":0.5,"iv":0.22},{"k":-0.1,"timeToExpiry":1,"iv":0.205},{"k":0,"timeToExpiry":1,"iv":0.2},{"k":0.1,"timeToExpiry":1,"iv":0.215}],"options":[{"underlying":100,"strike":100,"timeToExpiry":1,"optionType":"call","quantity":1}]},"response":{"results":[{"index":0,"underlying":100,"strike":100,"timeToExpiry":1,"optionType":"call","quantity":1,"forward":100,"k":0,"impliedVol":0.2,"price":10.45057562,"greeks":{"delta":0.63683059,"gamma":0.01876202,"vega":37.52403469,"theta":-6.41402764,"rho":53.23248343},"contribution":10.45057562}],"book":{"mtm":10.45057562,"greeks":{"delta":0.63683059,"gamma":0.01876202,"vega":37.52403469,"theta":-6.41402764,"rho":53.23248343}},"units":{"price":"option value in spot currency units","delta":"dV/dS (share equivalent) at sticky/interpolated σ","gamma":"d²V/dS²","vega":"dV/dσ per 1.0 absolute volatility (not per 1%)","theta":"dV/dT per year (not per day)","rho":"dV/dr per 1.0 absolute rate (not per 1%)"},"surfaceMeta":{"pointCount":9,"kCount":3,"tCount":3,"convention":"log_moneyness_forward","interpolation":"total_variance_bilinear","wingRule":"flat_vol"},"warnings":[],"model":"black-scholes-merton+surface-tv-bilinear","requestId":"00000000-0000-4000-8000-000000000006","computedAt":"2026-01-01T00:00:00.000Z"}},"scenarioFromSurface":{"request":{"surfaceConvention":"log_moneyness_forward","interpolation":"total_variance_bilinear","wingRule":"flat_vol","rate":0.05,"dividendYield":0,"surface":[{"k":-0.1,"timeToExpiry":0.25,"iv":0.22},{"k":0,"timeToExpiry":0.25,"iv":0.2},{"k":0.1,"timeToExpiry":0.25,"iv":0.23},{"k":-0.1,"timeToExpiry":0.5,"iv":0.21},{"k":0,"timeToExpiry":0.5,"iv":0.2},{"k":0.1,"timeToExpiry":0.5,"iv":0.22},{"k":-0.1,"timeToExpiry":1,"iv":0.205},{"k":0,"timeToExpiry":1,"iv":0.2},{"k":0.1,"timeToExpiry":1,"iv":0.215}],"sticky":"moneyness","positions":[{"underlying":100,"strike":100,"timeToExpiry":1,"optionType":"call","quantity":1}],"scenario":{"underlyingRel":0.1,"rateBp":0,"timeDays":0,"volAbs":0,"volRel":0,"smileTwist":0}},"response":{"sticky":"moneyness","scenario":{"underlyingRel":0.1,"rateBp":0,"timeDays":0,"volAbs":0,"volRel":0,"smileTwist":0,"rateScenario":0.05},"legs":[{"index":0,"quantity":1,"optionType":"call","strike":100,"base":{"underlying":100,"timeToExpiry":1,"forward":100,"k":0,"impliedVol":0.2,"price":10.45057562,"greeks":{"delta":0.63683059,"gamma":0.01876202,"vega":37.52403469,"theta":-6.41402764,"rho":53.23248343},"contribution":10.45057562},"scenario":{"underlying":110,"timeToExpiry":1,"forward":110,"k":-0.09531018,"impliedVol":0.20476824,"price":17.8125541,"greeks":{"delta":0.79160899,"gamma":0.01273721,"vega":31.55892407,"theta":-6.69435438,"rho":69.26443492},"contribution":17.8125541},"deltaValue":7.36197848}],"book":{"valueBase":10.45057562,"valueScenario":17.8125541,"deltaValue":7.36197848,"greeksBase":{"delta":0.63683059,"gamma":0.01876202,"vega":37.52403469,"theta":-6.41402764,"rho":53.23248343},"greeksScenario":{"delta":0.79160899,"gamma":0.01273721,"vega":31.55892407,"theta":-6.69435438,"rho":69.26443492},"greeksNote":"Greeks are analytic BS Greeks at sticky/scenario σ — NOT full smile-recalibrated bump deltas"},"surfaceMeta":{"pointCount":9,"kCount":3,"tCount":3,"convention":"log_moneyness_forward"},"warnings":[],"model":"black-scholes-merton+surface-tv-bilinear","requestId":"00000000-0000-4000-8000-000000000007","computedAt":"2026-01-01T00:00:00.000Z"}}}}