falcon.sol structures
falcon.sol structures: structured-note pricing for crypto. Send a JSON term sheet (autocallable, barrier reverse convertible, range accrual, principal-protected, shark fin) on BTC, ETH or SOL; get the fair coupon or participation, probabilities (autocall per observation, knock-in, loss), greeks, a spot x vol scenario grid and payoff-diagram data. Monte Carlo on live Deribit implied vol. Free preview; full quote $0.02 USDC via x402 on Solana or Base.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://falcon-structures.vercel.app/v1/quote
| Category | Commerce and shopping |
|---|---|
| Provider host | falcon-structures.vercel.app |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"issuerMarginBpsPa": 200,
"market": {},
"notionalUsd": 10000,
"product": {
"autocallBarrier": 1,
"couponBarrier": 0.8,
"knockInBarrier": 0.7,
"memory": true,
"nonCallDays": 0,
"obsFreqDays": 7,
"tenorDays": 30,
"type": "autocallable"
},
"seed": 20261023,
"underlying": "ETH"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"issuerMarginBpsPa": {
"default": 200,
"maximum": 2000,
"minimum": 0,
"type": "number"
},
"market": {
"additionalProperties": false,
"default": {},
"properties": {
"rate": {
"maximum": 0.5,
"minimum": -0.05,
"type": "number"
},
"spot": {
"exclusiveMinimum": 0,
"type": "number"
},
"vol": {
"maximum": 3,
"minimum": 0.05,
"type": "number"
}
},
"type": "object"
},
"notionalUsd": {
"default": 10000,
"exclusiveMinimum": 0,
"maximum": 1000000000,
"type": "number"
},
"paths": {
"maximum": 60000,
"minimum": 1000,
"type": "integer"
},
"product": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"autocallBarrier": {
"default": 1,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"couponBarrier": {
"default": 0.7,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"couponPerPeriod": {
"maximum": 5,
"minimum": 0,
"type": "number"
},
"knockInBarrier": {
"default": 0.6,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"memory": {
"default": true,
"type": "boolean"
},
"nonCallDays": {
"default": 0,
"maximum": 730,
"minimum": 0,
"type": "integer"
},
"obsFreqDays": {
"default": 30,
"maximum": 365,
"minimum": 1,
"type": "integer"
},
"tenorDays": {
"default": 180,
"maximum": 730,
"minimum": 7,
"type": "integer"
},
"type": {
"const": "autocallable",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"couponPa": {
"maximum": 5,
"minimum": 0,
"type": "number"
},
"knockInBarrier": {
"default": 0.7,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"strike": {
"default": 1,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"tenorDays": {
"default": 180,
"maximum": 730,
"minimum": 7,
"type": "integer"
},
"type": {
"const": "reverse_convertible",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"couponPa": {
"maximum": 5,
"minimum": 0,
"type": "number"
},
"protection": {
"default": 1,
"maximum": 1,
"minimum": 0,
"type": "number"
},
"rangeHigh": {
"default": 1.15,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"rangeLow": {
"default": 0.85,
"maximum": 3,
"minimum": 0.05,
"type": "number"
},
"tenorDays": {
"default": 180,
"maximum": 730,
"minimum": 7,
"type": "integer"
},
"type": {
"const": "range_accrual",
"type": "string"
}
},
"required": [
"type"
],
"type": "object