{"openapi":"3.1.0","info":{"title":"CoinMargin Agent Math API","version":"1.1.0","description":"Five deterministic, fee-aware crypto trade calculation tools sold per successful response through x402.","contact":{"name":"CoinMargin","url":"https://coinmargin-lab.ak10082247.workers.dev"},"x-guidance":"Choose the narrowest calculator for the task. Send the documented numeric query parameters with GET. Each successful response costs $0.001 USDC on Base; unpaid calls return an x402 v2 Payment Required challenge. Results are calculation only, not market data or financial advice."},"servers":[{"url":"https://coinmargin-lab.ak10082247.workers.dev"}],"externalDocs":{"description":"CoinMargin's five one-cent marketplace offers","url":"https://payanagent.com/agents/j570p15f0dvyzt2w129s2qgn698bg8zd"},"paths":{"/api/tiny-trade":{"get":{"operationId":"checkTinyTrade","summary":"Tiny-trade viability","description":"Calculate fee-aware break-even, profit or loss, ROI, and the exit needed to make a target profit on a small crypto trade.","tags":["Trade maths"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"investment","in":"query","required":true,"description":"Cash committed to the trade, in USD.","schema":{"type":"number","minimum":0.000001,"description":"Cash committed to the trade, in USD."},"example":5},{"name":"entry","in":"query","required":true,"description":"Asset entry price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Asset entry price in USD."},"example":1},{"name":"exit","in":"query","required":true,"description":"Candidate asset exit price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Candidate asset exit price in USD."},"example":1.01},{"name":"buyFee","in":"query","required":false,"description":"Buy fee as a percentage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Buy fee as a percentage."},"example":0.1},{"name":"sellFee","in":"query","required":false,"description":"Sell fee as a percentage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Sell fee as a percentage."},"example":0.1},{"name":"fixedCosts","in":"query","required":false,"description":"Total fixed costs across the round trip, in USD.","schema":{"type":"number","minimum":0,"default":0,"description":"Total fixed costs across the round trip, in USD."},"example":0},{"name":"targetProfit","in":"query","required":false,"description":"Desired net profit in USD.","schema":{"type":"number","minimum":0,"default":0.01,"description":"Desired net profit in USD."},"example":0.01}],"responses":{"200":{"description":"Successful paid calculation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"profitable":true,"meetsTarget":true,"netProfit":0.03990005,"roiPercent":0.798001,"breakEvenExit":1.002003,"targetExit":1.004007}}}},"400":{"description":"Invalid calculation inputs"},"402":{"description":"Payment Required"},"502":{"description":"Payment facilitator temporarily unavailable"}}}},"/api/break-even":{"get":{"operationId":"calculateBreakEven","summary":"Break-even and target exit","description":"Find the exact exit price that recovers buy fees, sell fees, fixed costs, and an optional target profit.","tags":["Trade maths"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"investment","in":"query","required":true,"description":"Cash committed to the trade, in USD.","schema":{"type":"number","minimum":0.000001,"description":"Cash committed to the trade, in USD."},"example":100},{"name":"entry","in":"query","required":true,"description":"Asset entry price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Asset entry price in USD."},"example":2.5},{"name":"buyFee","in":"query","required":false,"description":"Buy fee as a percentage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Buy fee as a percentage."},"example":0.5},{"name":"sellFee","in":"query","required":false,"description":"Sell fee as a percentage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Sell fee as a percentage."},"example":0.5},{"name":"fixedCosts","in":"query","required":false,"description":"Total fixed costs across the round trip, in USD.","schema":{"type":"number","minimum":0,"default":0,"description":"Total fixed costs across the round trip, in USD."},"example":0},{"name":"targetProfit","in":"query","required":false,"description":"Desired net profit in USD.","schema":{"type":"number","minimum":0,"default":0,"description":"Desired net profit in USD."},"example":1}],"responses":{"200":{"description":"Successful paid calculation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"quantity":39.8,"breakEvenExit":2.525189,"targetExit":2.550315,"breakEvenMovePercent":1.007563,"targetMovePercent":2.012626}}}},"400":{"description":"Invalid calculation inputs"},"402":{"description":"Payment Required"},"502":{"description":"Payment facilitator temporarily unavailable"}}}},"/api/dca-average":{"get":{"operationId":"calculateDcaAverage","summary":"Fee-aware DCA average","description":"Combine three purchases into a fee-aware average entry, total quantity, current value, and unrealised profit or loss.","tags":["Trade maths"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"amount1","in":"query","required":true,"description":"First purchase amount in USD.","schema":{"type":"number","minimum":0.000001,"description":"First purchase amount in USD."},"example":300},{"name":"price1","in":"query","required":true,"description":"First purchase price in USD.","schema":{"type":"number","minimum":1e-12,"description":"First purchase price in USD."},"example":2.8},{"name":"amount2","in":"query","required":true,"description":"Second purchase amount in USD.","schema":{"type":"number","minimum":0.000001,"description":"Second purchase amount in USD."},"example":450},{"name":"price2","in":"query","required":true,"description":"Second purchase price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Second purchase price in USD."},"example":2.2},{"name":"amount3","in":"query","required":true,"description":"Third purchase amount in USD.","schema":{"type":"number","minimum":0.000001,"description":"Third purchase amount in USD."},"example":250},{"name":"price3","in":"query","required":true,"description":"Third purchase price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Third purchase price in USD."},"example":1.9},{"name":"currentPrice","in":"query","required":true,"description":"Current asset price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Current asset price in USD."},"example":2.5},{"name":"fee","in":"query","required":false,"description":"Fee percentage applied to each purchase.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Fee percentage applied to each purchase."},"example":0.5}],"responses":{"200":{"description":"Successful paid calculation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"totalInvested":1000,"quantity":447.57,"averageEntry":2.2343,"currentValue":1118.92,"unrealisedPnl":118.92}}}},"400":{"description":"Invalid calculation inputs"},"402":{"description":"Payment Required"},"502":{"description":"Payment facilitator temporarily unavailable"}}}},"/api/position-size":{"get":{"operationId":"calculatePositionSize","summary":"Risk-based position size","description":"Calculate a position quantity and notional value from account size, risk percentage, entry price, stop price, and a fee buffer.","tags":["Trade maths"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"accountSize","in":"query","required":true,"description":"Total account value in USD.","schema":{"type":"number","minimum":0.000001,"description":"Total account value in USD."},"example":1000},{"name":"riskPercent","in":"query","required":true,"description":"Maximum account percentage at risk.","schema":{"type":"number","minimum":0.000001,"maximum":100,"description":"Maximum account percentage at risk."},"example":1},{"name":"entry","in":"query","required":true,"description":"Planned entry price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Planned entry price in USD."},"example":2.5},{"name":"stop","in":"query","required":true,"description":"Planned stop price in USD; must differ from entry.","schema":{"type":"number","minimum":1e-12,"description":"Planned stop price in USD; must differ from entry."},"example":2.25},{"name":"feeBuffer","in":"query","required":false,"description":"Extra percentage of entry reserved per unit for fees and slippage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Extra percentage of entry reserved per unit for fees and slippage."},"example":0.2}],"responses":{"200":{"description":"Successful paid calculation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"side":"long","riskBudget":10,"priceRiskPercent":10,"quantity":39.215686,"positionValue":98.039216}}}},"400":{"description":"Invalid calculation inputs"},"402":{"description":"Payment Required"},"502":{"description":"Payment facilitator temporarily unavailable"}}}},"/api/risk-reward":{"get":{"operationId":"calculateRiskReward","summary":"Fee-aware risk/reward","description":"Compare a target and stop around an entry price, including transaction fees, to calculate net reward, net risk, and their ratio.","tags":["Trade maths"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"entry","in":"query","required":true,"description":"Entry price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Entry price in USD."},"example":2.5},{"name":"stop","in":"query","required":true,"description":"Stop price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Stop price in USD."},"example":2.25},{"name":"target","in":"query","required":true,"description":"Target price in USD.","schema":{"type":"number","minimum":1e-12,"description":"Target price in USD."},"example":3},{"name":"quantity","in":"query","required":false,"description":"Asset quantity.","schema":{"type":"number","minimum":1e-12,"default":1,"description":"Asset quantity."},"example":10},{"name":"buyFee","in":"query","required":false,"description":"Entry fee as a percentage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Entry fee as a percentage."},"example":0.5},{"name":"sellFee","in":"query","required":false,"description":"Exit fee as a percentage.","schema":{"type":"number","minimum":0,"maximum":99,"default":0,"description":"Exit fee as a percentage."},"example":0.5}],"responses":{"200":{"description":"Successful paid calculation","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"side":"long","netReward":4.725,"netRisk":2.7375,"rewardRiskRatio":1.726027,"breakEvenWinRatePercent":36.690648}}}},"400":{"description":"Invalid calculation inputs"},"402":{"description":"Payment Required"},"502":{"description":"Payment facilitator temporarily unavailable"}}}}}}