SolEnrich
POST api.solenrich.com/entrypoints/perps-basis-signal/invoke
Why an agent can trust this route.
Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.
Observed outcomes
Computes perp mark vs spot price across venues and surfaces actually-earnable yield (funding APR on Hyperliquid + dYdX, not viable on pool perps Jupiter + Adrena). Returns per-venue trade economics, opportunities above threshold, and best trade. Threshold defaults to 5% APR.
Resource: api.solenrich.com/entrypoints/perps-basis-signal/invoke
Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, eip155:8453 · Asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v · Pay to: 66Qvhr1xnwqbCT36KfHfZF1JpoWdmCQ3uFYTN335CGXe
Payment methods: — · Last validation: —
{
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"asset"
],
"properties": {
"asset": {
"enum": [
"SOL",
"BTC",
"ETH",
"BONK"
],
"type": "string",
"description": "Asset to scan"
},
"format": {
"enum": [
"json",
"llm",
"both"
],
"type": "string",
"default": "json"
},
"min_yield_apr_pct": {
"type": "number",
"default": 5,
"maximum": 100,
"minimum": 0,
"description": "Minimum net yield (APR %) for an opportunity to be surfaced"
}
}
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object"
}
}
},
"paymentRequirements": [
{
"raw": {
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"
},
"payTo": "66Qvhr1xnwqbCT36KfHfZF1JpoWdmCQ3uFYTN335CGXe",
"amount": "15000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 300
},
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"payTo": "66Qvhr1xnwqbCT36KfHfZF1JpoWdmCQ3uFYTN335CGXe",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"amountAtomic": "15000"
},
{
"raw": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x8EdE9eD2E6ACdd9B2BaFa42ff4078d3F3263607c",
"amount": "15000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0x8EdE9eD2E6ACdd9B2BaFa42ff4078d3F3263607c",
"scheme": "exact",
"network": "eip155:8453",
"amountAtomic": "15000"
}
]
}Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.