{"x402Version":2,"payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","resources":[{"id":6296,"slug":"6296","resource":"https://api.getplexa.com/v1/quote","description":"Plexa /v1/quote — executable swap quote: the realizable fill price at your trade size, not a mid/spot price feed. Returns price impact (bps), worst-case slippage, depth and the per-leg route across Base/Polygon/Arbitrum liquidity, from canonical on-chain quoters. Call it before a swap to see what the fill actually costs. Informational data, not financial advice.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"20000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:137","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","amount":"20000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:42161","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","amount":"20000","maxTimeoutSeconds":300},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"D6FqEyoFvkgGy4PpJjckHc3xRXhzL6mWQ25gz4rkVLor","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"20000","maxTimeoutSeconds":300}],"outputSchema":{"bazaar":{"info":{"input":{"body":{"chain":"base","sizeUSD":"5000","tokenIn":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","tokenOut":"0x4200000000000000000000000000000000000006"},"bodyType":"json","method":"POST","type":"http"},"output":{"example":{"confidence":"high","depthAtSize":2.6386839328112384,"executablePrice":0.0005277367865622476,"priceImpactBps":0,"route":{"dex":"univ3","legs":[{"dex":"univ3","feePips":500,"pool":"0xd0b53D9277642d899DF5C87A3966A349A798F224","venue":"uniswap-v3"}]},"ts":1786022127490,"validUntil":1786022130490,"worstCaseSlippageBps":0},"type":"json"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"anyOf":[{"required":["sizeIn"]},{"required":["sizeUSD"]}],"examples":[{"chain":"base","sizeUSD":"5000","tokenIn":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","tokenOut":"0x4200000000000000000000000000000000000006"}],"properties":{"chain":{"description":"Optional, default \"base\". One of: base | polygon | matic | arbitrum | arbitrum-one | arb | eip155:8453 | eip155:137 | eip155:42161 — case-sensitive (see `enum`). This is the chain the QUOTE is computed on; the networks you may PAY on (including Solana) are a separate list in `accepts[]`.","enum":["base","polygon","matic","arbitrum","arbitrum-one","arb","eip155:8453","eip155:137","eip155:42161"],"type":"string"},"sizeIn":{"description":"Trade size as a human amount of tokenIn, e.g. \"1.5\" for 1.5 WETH. A STRING, not a number. At least one of sizeIn / sizeUSD is required; if BOTH are sent, sizeUSD wins and sizeIn is ignored.","maxLength":78,"pattern":"^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$","type":"string"},"sizeUSD":{"description":"Trade size as a USD notional, e.g. \"5000\". A STRING, not a number; positive, no thousands separator (\"5,000\" is rejected) and no exponent (\"5e3\" is rejected) — see `pattern`. At least one of sizeIn / sizeUSD is required; if BOTH are sent, sizeUSD wins.","maxLength":78,"pattern":"^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$","type":"string"},"tokenIn":{"description":"ERC-20 being SOLD. 0x + 40 hex (see `pattern`) — a symbol like \"USDC\" is rejected with 400.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"tokenOut":{"description":"ERC-20 being BOUGHT. 0x + 40 hex (see `pattern`) — a symbol like \"WETH\" is rejected with 400.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"}},"required":["tokenIn","tokenOut"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"confidence":{"description":"Engine confidence: high | medium | low","type":"string"},"depthAtSize":{"description":"Realizable output at the requested size, in human units of tokenOut (NOT USD)","type":"number"},"executablePrice":{"description":"REALIZABLE fill price for the full requested size — the price the swap actually executes at after price impact, NOT a mid/spot price feed. This is Plexa's core difference from a price oracle. Units: tokenOut PER tokenIn (for USDC→WETH it is WETH per 1 USDC, a small number — not the reciprocal).","type":"number"},"priceImpactBps":{"description":"Price impact at this size, in basis points. Null when no defensible mid exists (P16) — impact is derived from the mid.","type":["number","null"]},"route":{"description":"Per-leg execution route (dex / pool / fee tier)","type":"object"},"worstCaseSlippageBps":{"description":"Worst-case slippage, in basis points. Null when no defensible mid exists (P16).","type":["number","null"]}},"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"}},"builder-code":{"info":{"a":"bc_g9x4yzn7"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"a":{"description":"App builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"},"s":{"description":"Service builder codes","items":{"pattern":"^[a-z0-9_]{1,32}$","type":"string"},"type":"array"},"w":{"description":"Wallet builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"}},"type":"object"}}},"tags":["bazaar","builder-code"],"sourceHost":"api.getplexa.com","lastUpdated":"2026-09-17T06:38:24.776Z","quality":{"calls30d":49,"uniquePayers30d":3,"lastCalledAt":"2026-09-17T06:38:24.283Z"},"liveness":{},"verified":false,"featured":false},{"id":6297,"slug":"6297","resource":"https://api.getplexa.com/v1/pretrade/check","description":"Plexa /v1/pretrade/check — pre-trade token safety check on Base: can you still sell this token? avoid fires only on a trap proven on-chain now: no pool to exit into, an exit pot under 5% of your size, or the trading gate off (the honeypot shape). A drained pot is what a rug leaves behind — measured, not predicted. clear = no provable trap, NOT safe. risk_profile: token age, holder concentration, liquidity, transfer limits. Not financial advice.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:137","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:42161","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"D6FqEyoFvkgGy4PpJjckHc3xRXhzL6mWQ25gz4rkVLor","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"50000","maxTimeoutSeconds":300}],"outputSchema":{"bazaar":{"info":{"input":{"body":{"sizeUSD":"1000","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"bodyType":"json","method":"POST","type":"http"},"output":{"example":{"confidence":"medium","coverage":{"axesExpected":5,"axesReporting":4},"liquidityCoverage":{"asOfBlock":49784814,"asOfBlockFirst":49784813,"conclusive":true,"factoriesChecked":13,"poolsFound":32,"singletonPoolsCounted":1,"singletonPoolsHooked":0,"singletonPoolsRejected":0,"singletonPoolsSeen":1,"singletonScanTruncated":false,"unmeasuredVenueNames":[],"unmeasuredVenues":0,"venuesUnread":0},"market":{"holderCount":5223863,"marketCapUsd":542587444,"priceUsdSpot":2277.76,"volume24hUsd":551324354.8699999},"quote":{"confidence":"high","direction":"buy","executablePrice":0.0005214424247520731},"reasons":["no provable trap detected. This is NOT a safety rating: it means none of the checks that can PROVE a trap (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED) fired at this block, AND the liquidity sweep reached a conclusion (liquidityCoverage.conclusive). Structural risk — age, holder concentration, liquidity depth, transfer restrictions — is reported in risk_profile and can still be severe","could not check F_CONC — reported as unknown, never as clean; confidence reduced accordingly"],"risk_profile":{"age":{"ageDays":1143.6,"genesisBlock":381217},"concentration":{"ageSec":null,"source":null,"stale":null,"top10SharePct":null,"top1SharePct":null},"liquidity":{"exitLiquidityUsd":81553087.89,"poolCount":32,"venueCount":13},"oracle":{"deviationBps":16,"source":"chainlink:ETH / USD"},"transferability":{"fingerprints":"none","hasBlacklist":false,"tradingEnabled":null}},"sources":{"*":"measured","market":"vendor:dexscreener+goplus","market.holderCount":"vendor:goplus","risk_profile.concentration":"unavailable:holder-axis-produced-nothing"},"triggers":[],"ts":1786358976434,"validUntil":1786358979434,"verdict":"clear"},"type":"json"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"examples":[{"sizeUSD":"1000","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"properties":{"chain":{"description":"Optional, default \"base\". One of: base | polygon | matic | arbitrum | arbitrum-one | arb | eip155:8453 | eip155:137 | eip155:42161 — case-sensitive (see `enum`). The safety flags are Base-tuned, so a non-base value currently answers 422 rather than returning Base-calibrated flags for another chain.","enum":["base","polygon","matic","arbitrum","arbitrum-one","arb","eip155:8453","eip155:137","eip155:42161"],"type":"string"},"sizeUSD":{"description":"Optional USD notional for the executable-quote sub-result, default \"1000\". A STRING, not a number; positive, no thousands separator (\"1,000\" is rejected) — see `pattern`.","maxLength":78,"pattern":"^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$","type":"string"},"token":{"description":"ERC-20 to vet before buying. 0x + 40 hex (see `pattern`) — a symbol like \"WETH\" is rejected with 400.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"}},"required":["token"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"confidence":{"description":"high | medium | low. On \"avoid\" this is confidence IN THE TRIGGER, which is a measurement taken this call, so it is always \"high\" — a check that failed elsewhere does not make the measured trap less true. On \"clear\" it is how COMPLETE the checks were: fewer axes computed, lower confidence. On \"unknown\" it is capped at \"low\" by construction: the check the verdict depends on did not finish, so a high number there would contradict the verdict word next to it. Either way the gaps are reported explicitly — see `reasons` and the null fields in `risk_profile`.","type":"string"},"quote":{"description":"Executable quote sub-result (realizable fill under size, not mid/spot)","type":"object"},"reasons":{"description":"Human-readable reasons behind the verdict","items":{"type":"string"},"type":"array"},"risk_profile":{"description":"Structural risk as measured DATA (age, concentration, liquidity incl. exitLiquidityUsd, oracle availability, transfer restrictions), each section with a plain-language note. Never a severity: these factors do not separate live from dead tokens [M, n=40].","type":"object"},"triggers":{"description":"Proven traps that fired — CLOSED list (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED), empty when verdict is \"clear\".","items":{"type":"string"},"type":"array"},"verdict":{"description":"avoid | clear | unknown. \"avoid\" = a listed trap was PROVEN at this block (see `triggers`); \"clear\" = none of them fired AND the liquidity sweep reached a conclusion; \"unknown\" = none fired but the sweep did NOT reach a conclusion (`liquidityCoverage.conclusive: false`), so absence of a trap is not established — see the `exit-coverage-incomplete:<what>` line in `reasons`. \"clear\" is NOT a safety rating and NOT a prediction — structural risk lives in `risk_profile`. verdict semantics changed 2026-08-01 (v2): avoid = provable trap only; ok/caution are gone. 2026-08-27 (P67): a THIRD value \"unknown\" was added — it takes over the cases that used to answer \"clear\" while `liquidityCoverage.conclusive` was false. No existing value changed meaning; code branching on \"avoid\" is unaffected, and code branching on \"clear\" now gets strictly fewer, better-founded clears.","type":"string"}},"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"}},"builder-code":{"info":{"a":"bc_g9x4yzn7"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"a":{"description":"App builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"},"s":{"description":"Service builder codes","items":{"pattern":"^[a-z0-9_]{1,32}$","type":"string"},"type":"array"},"w":{"description":"Wallet builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"}},"type":"object"}}},"tags":["bazaar","builder-code"],"sourceHost":"api.getplexa.com","lastUpdated":"2026-09-01T11:59:23.895Z","quality":{"calls30d":42,"uniquePayers30d":1,"lastCalledAt":"2026-09-01T11:59:23.311Z"},"liveness":{},"verified":false,"featured":false},{"id":6298,"slug":"6298","resource":"https://api.getplexa.com/v1/rug-check","description":"Plexa /v1/pretrade/check — pre-trade token safety check on Base: can you still sell this token? avoid fires only on a trap proven on-chain now: no pool to exit into, an exit pot under 5% of your size, or the trading gate off (the honeypot shape). A drained pot is what a rug leaves behind — measured, not predicted. clear = no provable trap, NOT safe. Alias: same engine and price as /v1/pretrade/check.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:137","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:42161","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"D6FqEyoFvkgGy4PpJjckHc3xRXhzL6mWQ25gz4rkVLor","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"50000","maxTimeoutSeconds":300}],"outputSchema":{"bazaar":{"info":{"input":{"body":{"sizeUSD":"1000","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"bodyType":"json","method":"POST","type":"http"},"output":{"example":{"confidence":"medium","coverage":{"axesExpected":5,"axesReporting":4},"liquidityCoverage":{"asOfBlock":49784814,"asOfBlockFirst":49784813,"conclusive":true,"factoriesChecked":13,"poolsFound":32,"singletonPoolsCounted":1,"singletonPoolsHooked":0,"singletonPoolsRejected":0,"singletonPoolsSeen":1,"singletonScanTruncated":false,"unmeasuredVenueNames":[],"unmeasuredVenues":0,"venuesUnread":0},"market":{"holderCount":5223863,"marketCapUsd":542587444,"priceUsdSpot":2277.76,"volume24hUsd":551324354.8699999},"quote":{"confidence":"high","direction":"buy","executablePrice":0.0005214424247520731},"reasons":["no provable trap detected. This is NOT a safety rating: it means none of the checks that can PROVE a trap (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED) fired at this block, AND the liquidity sweep reached a conclusion (liquidityCoverage.conclusive). Structural risk — age, holder concentration, liquidity depth, transfer restrictions — is reported in risk_profile and can still be severe","could not check F_CONC — reported as unknown, never as clean; confidence reduced accordingly"],"risk_profile":{"age":{"ageDays":1143.6,"genesisBlock":381217},"concentration":{"ageSec":null,"source":null,"stale":null,"top10SharePct":null,"top1SharePct":null},"liquidity":{"exitLiquidityUsd":81553087.89,"poolCount":32,"venueCount":13},"oracle":{"deviationBps":16,"source":"chainlink:ETH / USD"},"transferability":{"fingerprints":"none","hasBlacklist":false,"tradingEnabled":null}},"sources":{"*":"measured","market":"vendor:dexscreener+goplus","market.holderCount":"vendor:goplus","risk_profile.concentration":"unavailable:holder-axis-produced-nothing"},"triggers":[],"ts":1786358976434,"validUntil":1786358979434,"verdict":"clear"},"type":"json"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"examples":[{"sizeUSD":"1000","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"properties":{"chain":{"description":"Optional, default \"base\". One of: base | polygon | matic | arbitrum | arbitrum-one | arb | eip155:8453 | eip155:137 | eip155:42161 — case-sensitive (see `enum`). The safety flags are Base-tuned, so a non-base value currently answers 422 rather than returning Base-calibrated flags for another chain.","enum":["base","polygon","matic","arbitrum","arbitrum-one","arb","eip155:8453","eip155:137","eip155:42161"],"type":"string"},"sizeUSD":{"description":"Optional USD notional for the executable-quote sub-result, default \"1000\". A STRING, not a number; positive, no thousands separator (\"1,000\" is rejected) — see `pattern`.","maxLength":78,"pattern":"^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$","type":"string"},"token":{"description":"ERC-20 to vet before buying. 0x + 40 hex (see `pattern`) — a symbol like \"WETH\" is rejected with 400.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"}},"required":["token"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"confidence":{"description":"high | medium | low. On \"avoid\" this is confidence IN THE TRIGGER, which is a measurement taken this call, so it is always \"high\" — a check that failed elsewhere does not make the measured trap less true. On \"clear\" it is how COMPLETE the checks were: fewer axes computed, lower confidence. On \"unknown\" it is capped at \"low\" by construction: the check the verdict depends on did not finish, so a high number there would contradict the verdict word next to it. Either way the gaps are reported explicitly — see `reasons` and the null fields in `risk_profile`.","type":"string"},"quote":{"description":"Executable quote sub-result (realizable fill under size, not mid/spot)","type":"object"},"reasons":{"description":"Human-readable reasons behind the verdict","items":{"type":"string"},"type":"array"},"risk_profile":{"description":"Structural risk as measured DATA (age, concentration, liquidity incl. exitLiquidityUsd, oracle availability, transfer restrictions), each section with a plain-language note. Never a severity: these factors do not separate live from dead tokens [M, n=40].","type":"object"},"triggers":{"description":"Proven traps that fired — CLOSED list (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED), empty when verdict is \"clear\".","items":{"type":"string"},"type":"array"},"verdict":{"description":"avoid | clear | unknown. \"avoid\" = a listed trap was PROVEN at this block (see `triggers`); \"clear\" = none of them fired AND the liquidity sweep reached a conclusion; \"unknown\" = none fired but the sweep did NOT reach a conclusion (`liquidityCoverage.conclusive: false`), so absence of a trap is not established — see the `exit-coverage-incomplete:<what>` line in `reasons`. \"clear\" is NOT a safety rating and NOT a prediction — structural risk lives in `risk_profile`. verdict semantics changed 2026-08-01 (v2): avoid = provable trap only; ok/caution are gone. 2026-08-27 (P67): a THIRD value \"unknown\" was added — it takes over the cases that used to answer \"clear\" while `liquidityCoverage.conclusive` was false. No existing value changed meaning; code branching on \"avoid\" is unaffected, and code branching on \"clear\" now gets strictly fewer, better-founded clears.","type":"string"}},"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"}},"builder-code":{"info":{"a":"bc_g9x4yzn7"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"a":{"description":"App builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"},"s":{"description":"Service builder codes","items":{"pattern":"^[a-z0-9_]{1,32}$","type":"string"},"type":"array"},"w":{"description":"Wallet builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"}},"type":"object"}}},"tags":["bazaar","builder-code"],"sourceHost":"api.getplexa.com","lastUpdated":"2026-09-01T10:20:19.015Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-01T10:20:18.478Z"},"liveness":{},"verified":false,"featured":false},{"id":6299,"slug":"6299","resource":"https://api.getplexa.com/v1/token-safety","description":"Plexa /v1/pretrade/check — pre-trade token safety check on Base: can you still sell this token? avoid fires only on a trap proven on-chain now: no pool to exit into, an exit pot under 5% of your size, or the trading gate off (the honeypot shape). A drained pot is what a rug leaves behind — measured, not predicted. clear = no provable trap, NOT safe. Alias: same engine and price as /v1/pretrade/check.","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:137","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"eip155:42161","payTo":"0xd993eAfBA87cFfa2ca2CFF5A56EF89034575A7ef","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","amount":"50000","maxTimeoutSeconds":300},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"D6FqEyoFvkgGy4PpJjckHc3xRXhzL6mWQ25gz4rkVLor","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"50000","maxTimeoutSeconds":300}],"outputSchema":{"bazaar":{"info":{"input":{"body":{"sizeUSD":"1000","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"bodyType":"json","method":"POST","type":"http"},"output":{"example":{"confidence":"medium","coverage":{"axesExpected":5,"axesReporting":4},"liquidityCoverage":{"asOfBlock":49784814,"asOfBlockFirst":49784813,"conclusive":true,"factoriesChecked":13,"poolsFound":32,"singletonPoolsCounted":1,"singletonPoolsHooked":0,"singletonPoolsRejected":0,"singletonPoolsSeen":1,"singletonScanTruncated":false,"unmeasuredVenueNames":[],"unmeasuredVenues":0,"venuesUnread":0},"market":{"holderCount":5223863,"marketCapUsd":542587444,"priceUsdSpot":2277.76,"volume24hUsd":551324354.8699999},"quote":{"confidence":"high","direction":"buy","executablePrice":0.0005214424247520731},"reasons":["no provable trap detected. This is NOT a safety rating: it means none of the checks that can PROVE a trap (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED) fired at this block, AND the liquidity sweep reached a conclusion (liquidityCoverage.conclusive). Structural risk — age, holder concentration, liquidity depth, transfer restrictions — is reported in risk_profile and can still be severe","could not check F_CONC — reported as unknown, never as clean; confidence reduced accordingly"],"risk_profile":{"age":{"ageDays":1143.6,"genesisBlock":381217},"concentration":{"ageSec":null,"source":null,"stale":null,"top10SharePct":null,"top1SharePct":null},"liquidity":{"exitLiquidityUsd":81553087.89,"poolCount":32,"venueCount":13},"oracle":{"deviationBps":16,"source":"chainlink:ETH / USD"},"transferability":{"fingerprints":"none","hasBlacklist":false,"tradingEnabled":null}},"sources":{"*":"measured","market":"vendor:dexscreener+goplus","market.holderCount":"vendor:goplus","risk_profile.concentration":"unavailable:holder-axis-produced-nothing"},"triggers":[],"ts":1786358976434,"validUntil":1786358979434,"verdict":"clear"},"type":"json"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"examples":[{"sizeUSD":"1000","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"properties":{"chain":{"description":"Optional, default \"base\". One of: base | polygon | matic | arbitrum | arbitrum-one | arb | eip155:8453 | eip155:137 | eip155:42161 — case-sensitive (see `enum`). The safety flags are Base-tuned, so a non-base value currently answers 422 rather than returning Base-calibrated flags for another chain.","enum":["base","polygon","matic","arbitrum","arbitrum-one","arb","eip155:8453","eip155:137","eip155:42161"],"type":"string"},"sizeUSD":{"description":"Optional USD notional for the executable-quote sub-result, default \"1000\". A STRING, not a number; positive, no thousands separator (\"1,000\" is rejected) — see `pattern`.","maxLength":78,"pattern":"^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$","type":"string"},"token":{"description":"ERC-20 to vet before buying. 0x + 40 hex (see `pattern`) — a symbol like \"WETH\" is rejected with 400.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"}},"required":["token"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"confidence":{"description":"high | medium | low. On \"avoid\" this is confidence IN THE TRIGGER, which is a measurement taken this call, so it is always \"high\" — a check that failed elsewhere does not make the measured trap less true. On \"clear\" it is how COMPLETE the checks were: fewer axes computed, lower confidence. On \"unknown\" it is capped at \"low\" by construction: the check the verdict depends on did not finish, so a high number there would contradict the verdict word next to it. Either way the gaps are reported explicitly — see `reasons` and the null fields in `risk_profile`.","type":"string"},"quote":{"description":"Executable quote sub-result (realizable fill under size, not mid/spot)","type":"object"},"reasons":{"description":"Human-readable reasons behind the verdict","items":{"type":"string"},"type":"array"},"risk_profile":{"description":"Structural risk as measured DATA (age, concentration, liquidity incl. exitLiquidityUsd, oracle availability, transfer restrictions), each section with a plain-language note. Never a severity: these factors do not separate live from dead tokens [M, n=40].","type":"object"},"triggers":{"description":"Proven traps that fired — CLOSED list (NO_EXIT_VENUE, EXIT_LIQUIDITY_DRAINED, TRADING_DISABLED), empty when verdict is \"clear\".","items":{"type":"string"},"type":"array"},"verdict":{"description":"avoid | clear | unknown. \"avoid\" = a listed trap was PROVEN at this block (see `triggers`); \"clear\" = none of them fired AND the liquidity sweep reached a conclusion; \"unknown\" = none fired but the sweep did NOT reach a conclusion (`liquidityCoverage.conclusive: false`), so absence of a trap is not established — see the `exit-coverage-incomplete:<what>` line in `reasons`. \"clear\" is NOT a safety rating and NOT a prediction — structural risk lives in `risk_profile`. verdict semantics changed 2026-08-01 (v2): avoid = provable trap only; ok/caution are gone. 2026-08-27 (P67): a THIRD value \"unknown\" was added — it takes over the cases that used to answer \"clear\" while `liquidityCoverage.conclusive` was false. No existing value changed meaning; code branching on \"avoid\" is unaffected, and code branching on \"clear\" now gets strictly fewer, better-founded clears.","type":"string"}},"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"}},"builder-code":{"info":{"a":"bc_g9x4yzn7"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"a":{"description":"App builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"},"s":{"description":"Service builder codes","items":{"pattern":"^[a-z0-9_]{1,32}$","type":"string"},"type":"array"},"w":{"description":"Wallet builder code","pattern":"^[a-z0-9_]{1,32}$","type":"string"}},"type":"object"}}},"tags":["bazaar","builder-code"],"sourceHost":"api.getplexa.com","lastUpdated":"2026-09-01T10:19:52.141Z","quality":{"calls30d":1,"uniquePayers30d":1,"lastCalledAt":"2026-09-01T10:19:51.563Z"},"liveness":{},"verified":false,"featured":false}]}