{"service":"canix402","name":"canix402","version":"0.1.0","description":"x402-gated DeFi opportunity API.","x402Version":2,"docsUrl":"https://canix402.compx.io/x402","llmsTxtUrl":"https://canix402.compx.io/llms.txt","openapiUrl":"https://canix402-api.compx.io/openapi.json","discoveryUrl":"https://canix402-api.compx.io/discovery","logoUrl":"https://canix402-api.compx.io/logo.png?v=2","bannerUrl":"https://canix402-api.compx.io/banner.png?v=2","facilitator":"https://facilitator.goplausible.xyz","chains":[{"namespace":"algorand","network":"algorand","assets":[{"symbol":"USDC","assetId":"31566704","decimals":6}]}],"resources":[{"id":"opportunities","method":"GET","path":"/opportunities","url":"https://canix402-api.compx.io/opportunities","description":"Returns ranked DeFi yield opportunities across supported chains (Algorand and Base). Each row includes `chain`. Default list mixes Algorand venues with Morpho Vaults, Aave V3 reserves, and Aerodrome basic-pool farms on Base. Filter with protocol= or chain=algorand|base. Ranking applies designed risk constraints (confidence, utilization, volatility, reward runway, wallet health factor when address is in context) before raw APY. Use when an agent needs to compare APY/APR, TVL, asset pairs, opportunity type, protocol, chain, source freshness, risk, and caveats before presenting yield options. This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","x402-global-challenge"],"price":{"amount":"0.01","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}],"amountUsdc":"0.01","amountMicro":"10000"}},{"id":"protocolOpportunities","method":"GET","path":"/protocols/{protocol}/opportunities","url":"https://canix402-api.compx.io/protocols/{protocol}/opportunities","description":"Returns ranked DeFi opportunities for one protocol: tinyman, pact, folks-finance, compx, dorkfi, myth-finance, haystack, reti, alpha-arcade, stamm, morpho, aave, or aerodrome. Morpho rows are Base listed ERC-4626 vaults. Aave rows are Aave V3 Base reserves. Aerodrome rows are basic volatile and stable pools with a live gauge. Other slugs are Algorand. Ranking applies designed risk constraints before raw APY. Use when an agent already knows the target protocol and needs normalized APY/APR, TVL, asset pair, opportunity type, timestamps, risk, and caveats for that venue. This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","protocol","x402-global-challenge"],"price":{"amount":"0.01","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}],"amountUsdc":"0.01","amountMicro":"10000"}},{"id":"filteredOpportunities","method":"GET","path":"/opportunities/search","url":"https://canix402-api.compx.io/opportunities/search","description":"Returns DeFi opportunities filtered by platform, chain (algorand|base), opportunity type, APY range, TVL threshold, and optional ASA assetIds across supported sources. Base Morpho, Aave, and Aerodrome rows use assetAddresses instead of assetIds. Use when an agent needs targeted discovery such as high-yield liquidity pools, lending markets, protocol-specific yield, minimum-liquidity opportunities, or yields for specific Algorand assets (assetIds=0 for ALGO). This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","search","x402-global-challenge"],"price":{"amount":"0.01","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}],"amountUsdc":"0.01","amountMicro":"10000"}},{"id":"personalizedOpportunities","method":"GET","path":"/opportunities/personalized","url":"https://canix402-api.compx.io/opportunities/personalized","description":"Returns Algorand DeFi opportunities whose underlying assets match a supplied wallet's holdings, including opted-in ASAs with positive balance and native ALGO when held. Matching applies POST /eligibility rules (min amount, ASA gates, capacity, unresolved NFD/creator gates) so full or gated venues are not recommended as enterable. Ranking prefers designed risk constraints (including wallet health factor from existing position snapshots) over raw APY. Each row includes canEnter, eligibilityFullyCheckable, and risk; quote-time on-chain checks remain authoritative. Use POST /eligibility for the diagnostic (missingAssets, gates, capacity, suggestedSwap). This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","personalized","wallet","x402-global-challenge"],"price":{"amount":"0.05","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.05"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.05"}],"amountUsdc":"0.05","amountMicro":"50000"}},{"id":"opportunityHistory","method":"GET","path":"/opportunities/{opportunityId}/history","url":"https://canix402-api.compx.io/opportunities/{opportunityId}/history","description":"Returns a rolling APY and TVL series for one opportunity over a bounded window (1d, 7d, or 30d). Snapshots are stored as cheap hourly Redis buckets — not a warehouse and not backfilled from explorers. Empty points until the snapshot job has run. Includes a stability signal (APY stdev / sample count) so snapshot APY cannot dominate plan sizing. Market data only; Canix does not sign or submit transactions.","tags":["defi","opportunities","history","x402-global-challenge"],"price":{"amount":"0.01","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}],"amountUsdc":"0.01","amountMicro":"10000"}},{"id":"eligibility","method":"POST","path":"/eligibility","url":"https://canix402-api.compx.io/eligibility","description":"Checks whether a wallet can enter one or more opportunities before requesting an execution quote. Resolves Réti entryRequirements and capacity (min amount, ASA gates, staker slots, ALGO room). NFD and creator gates are published as unresolved — canEnter is never true until eligibilityFullyCheckable is true. Returns missingAssets, gates, capacity, an optional suggestedSwap hint (not a live quote), and wallet healthFactor for lending venues that already expose it on positions. Quote-time on-chain checks remain authoritative. Canix does not sign or submit transactions.","tags":["defi","opportunities","eligibility","wallet","x402-global-challenge"],"price":{"amount":"0.01","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}],"amountUsdc":"0.01","amountMicro":"10000"}},{"id":"plans","method":"POST","path":"/plans","url":"https://canix402-api.compx.io/plans","description":"Agent states an allocation intent (address, budget/asset, constraints). Canix ranks enterable venues with designed risk constraints before raw APY, then returns ordered steps: eligibility, optional live multi-router swap compose (opt-in → swap → enter, driven by requiredAssetIds), protocol setup chains, and enter quotes as independent unsigned groups (never merged). Reuses quotes[] / order / prerequisiteShapeKeys. Includes expected position delta, a fail-closed simulation summary when compiled groups are available, x402 + network fee totals, and expiry. Quote-time on-chain checks remain authoritative. Canix does not sign or submit. Brownie and other agents should consume this SKU rather than forking a compiler.","tags":["defi","plans","execution","eligibility","wallet","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}},{"id":"plansRebalance","method":"POST","path":"/plans/rebalance","url":"https://canix402-api.compx.io/plans/rebalance","description":"Positions are the book; opportunities are the menu. Pass address plus targetWeights (bps summing to 10000) and/or harvestIdle to claim worth-claiming rewards and redeploy idle ALGO. Returns ordered unsigned groups — claims, partial exits, optional multi-router swap compose, and enters — only the delta legs that change the book (not a full unwind-and-rebuild). Reuses claim desk, eligibility, compose, and position exit/manage shapeKeys. Groups are never merged. Attaches a fail-closed simulation summary when compiled groups are available. Canix does not sign or submit.","tags":["defi","plans","rebalance","execution","eligibility","wallet","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}},{"id":"policyValidate","method":"POST","path":"/policy/validate","url":"https://canix402-api.compx.io/policy/validate","description":"Operators bring policy; Canix evaluates a compiled plan (or proposed quotes[]) against a versioned policy document (max protocol weight, ALGO reserve floor, TVL/freshness floors, no-new-borrows, execution-ready only). Returns { pass, reasons[] }. Reuses plan/eligibility/risk fields already on the compiled object and fails closed when a required field is missing — it does not re-quote on-chain. Canix does not sign or submit. Brownie and a second agent can share the same schema (protocol/docs/policy-schema.md).","tags":["defi","policy","plans","execution","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}},{"id":"positions","method":"GET","path":"/positions","url":"https://canix402-api.compx.io/positions","description":"Returns normalized DeFi positions for a wallet. An Algorand address is read across Algorand protocols, including Mallow open perps (close with mainnet:mallow:v1:close:market) and resting orders (cancel with mainnet:mallow:v1:cancelOrder:resting, including an orphaned take-profit or stop-loss). LP tokens indexed by HOGSWAP (STAMM, AlgoFi, Humble) are valued via GET /lp/{asset_id}?amount= — proportional NAV, null rather than guessed. Tinyman and Pact LP collectors remain canonical for those venues (no double-count by LP ASA). A Base 0x address returns Aave V3 supply and variable debt plus staked Aerodrome basic-pool LP. Unclaimed AERO is omitted. This endpoint provides position data only; it does not build or submit transactions.","tags":["defi","positions","wallet","x402-global-challenge"],"price":{"amount":"0.005","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.005"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.005"}],"amountUsdc":"0.005","amountMicro":"5000"}},{"id":"positionsClaimable","method":"GET","path":"/positions/claimable","url":"https://canix402-api.compx.io/positions/claimable","description":"Returns claimable reward rows for a wallet with USD value, network-fee / worth-claiming hints, compatible claim shapeKeys, and ready-to-POST quote inputs. Use claimAllQuotes (or selected per-row quotes) with POST /execution/quotes to compile unsigned claim groups — groups are never merged. Covers Tinyman farm, stALGO TINY claim, CompX staking, Pact farm, Haystack, and Alpha Arcade. This endpoint does not build or submit transactions.","tags":["defi","positions","rewards","wallet","execution","x402-global-challenge"],"price":{"amount":"0.001","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.001"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.001"}],"amountUsdc":"0.001","amountMicro":"1000"}},{"id":"haystackSwapTransactions","method":"POST","path":"/swaps/transactions","url":"https://canix402-api.compx.io/swaps/transactions","description":"Returns an ordered Algorand swap group for a fresh multi-router quote, including signer indexes and any pre-signed members from the winning router. The caller signs only the designated transactions and submits the complete group locally. The 0.005 USDC x402 access charge is separate from Haystack's SDK-default 10 bps output fee, other router fees, DEX fees, price impact, and Algorand network fees.","tags":["defi","swaps","haystack","transactions","x402","agents","x402-global-challenge"],"price":{"amount":"0.005","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.005"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.005"}],"amountUsdc":"0.005","amountMicro":"5000"}},{"id":"haystackLaunches","method":"GET","path":"/protocols/haystack/launches","url":"https://canix402-api.compx.io/protocols/haystack/launches","description":"Returns HayLaunch tokens with bondingOn = 0 inside a launch-date window. The default window is the last 60 days when launchedAfter is omitted. q is a case-insensitive name or ticker substring. minProgress and maxProgress are inclusive bonding percents from 0 to 100. order is asc or desc on bonding percent (default desc). Each row includes the buy shape key mainnet:haystack:v1:buy:bonding. Compile that buy, or mainnet:haystack:v1:launch:token, with POST /execution/quotes.","tags":["haystack","launch","discovery","x402","agents","x402-global-challenge"],"price":{"amount":"0.01","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}],"amountUsdc":"0.01","amountMicro":"10000"}},{"id":"executionQuote","method":"POST","path":"/execution/quotes","url":"https://canix402-api.compx.io/execution/quotes","description":"Accepts `{ quotes: [{ shapeKey, input }, ...] }` (min 1) and returns an array of fresh, validated, unsigned transaction groups in request order. Groups are never merged across quotes. On failure the whole request fails and error.details includes quoteIndex and shapeKey. Price is flat per request (not per quote item). Use when an agent has selected one or more DeFi actions and needs deterministic transaction bytes to sign locally. Currently supports all five Tinyman v2 LP shapes (flexible/initial/single-asset add; multiple-assets-out/single-asset-out remove), Tinyman v2 swap shapes (swap:fixedInput / swap:fixedOutput via Tinyman Swap Router, falling back to a single Tinyman pool when the router is not better; Tinyman-pool only, never a cross-DEX aggregator), Tinyman farm shapes (staking-v1 farm:commit / farm:uncommit / farm:claimRewards; v2 addLiquidityAndFarm flexible/single-asset that add liquidity and commit the new LP position in one atomic group, with LP tokens remaining in the wallet), Tinyman liquid-stake/restake shapes (liquid-stake-v1 mint/burn tALGO; restake-v1 increaseStake/decreaseStake/claimRewards stALGO), Folks Finance v2 lending escrow shapes (setup depositEscrow/optEscrowAsset; deposit:escrow; withdraw:escrow), Folks Finance v2 loan credit shapes (setup:loanEscrow; setup:addCollateral; collateral:sync / collateral:reduce; borrow:variable; repay:withTxn), Folks Finance xALGO liquid-stake shapes (xalgo-v1 stake/unstake immediate), Pact v1 LP add/remove shapes, Pact Smart Router unsigned swap (`mainnet:pact:smart-router:swap:fixed-input`; local graph + Pool.prepareSwap, not Haystack), CompX v1 lending shapes (deposit/withdraw ASA; borrow:asa; repay:asa) and CompX v1 staking shapes, Dork.fi v1 ASA lending shapes (deposit/withdraw; borrow:asa; repay:asa), Myth Finance dualSTAKE shapes (dualstake-v1 mint/redeem LST; farm yield accrues passively while holding the LST), Haystack v1 single-token HAY staking shapes (stake HAY; unstake HAY and claim USDC+HAY rewards; claim USDC+HAY rewards), Haystack Launch shapes (`mainnet:haystack:v1:launch:token` creates a bonding-curve ASA from an existing ipfs:// or https:// URL; `mainnet:haystack:v1:buy:bonding` buys a token still on the curve, directly in the bonding asset or through the Haystack router — list bonding tokens with paid GET /protocols/haystack/launches and read one token free at GET /protocols/haystack/launches/{tokenNum}), Réti v1 ALGO staking shapes (stake/unstake), Alpha Arcade v1 ALPHA staking shapes (stake/unstake/claim USDC), and STAMM v1 LP mint/redeem via HOGSWAP (unsigned groups; do not hardcode router app ids), and HOGSWAP v1 swap shapes (fixed-input / fixed-output; unsigned groups; routing fee already netted into expectedOut; do not hardcode router app ids), and Mallow v1 perps shapes (`mainnet:mallow:v1:openLimit:attached` for ALGO/USD or BTC/USD limit orders with leverage and attached take-profit and stop-loss; `mainnet:mallow:v1:close:market` to close an open ALGO or BTC position in full; `mainnet:mallow:v1:cancelOrder:resting` to cancel a resting order, including an orphaned take-profit or stop-loss; `mainnet:mallow:v1:optIn:usdc`). Read `GET /protocols/mallow/markets` for the live index and max leverage, `GET /protocols/mallow/positions` for a position id, and paid `GET /positions` for the wallet snapshot that includes Mallow perps and resting orders. Canix does not sign or submit transactions in this endpoint. Do not guess pool discovery, opt-ins, min-balance, slippage, liquidity limits, or app upgrades. Read protocol/docs/execution-shapes/protocol-caveats.md (GET /execution/shapes meta.caveatsDocsPath) and each shape's docsPath.","tags":["execution","transactions","x402","agents","x402-global-challenge"],"price":{"amount":"0.1","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.1"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.1"}],"amountUsdc":"0.1","amountMicro":"100000"}},{"id":"executionCompose","method":"POST","path":"/execution/compose","url":"https://canix402-api.compx.io/execution/compose","description":"Compiles “I hold asset A, I want this opportunity” into sequenced groups: optional ASA/app opt-in, multi-router swap (signer indexes and pre-signed members preserved), then enter — driven by requiredAssetIds. Groups are never merged. Failure modes (stale quote, missing opt-in, slippage) are listed on step warnings. Canix does not sign or submit. Caller signs user legs and submits locally in order.","tags":["execution","swaps","plans","x402","agents","x402-global-challenge"],"price":{"amount":"0.1","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.1"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.1"}],"amountUsdc":"0.1","amountMicro":"100000"}},{"id":"executionSimulate","method":"POST","path":"/execution/simulate","url":"https://canix402-api.compx.io/execution/simulate","description":"Given compiled unsigned group(s) from a plan or execution quote, returns predicted wallet balance and position deltas without signing or submitting. Fails closed with machine-readable reasons when the group would not succeed (stale quote, not opted in, min balance, health factor too low, capacity). Canix does not sign or submit. POST /plans attaches the same simulation summary when compiled groups are available.","tags":["defi","execution","plans","simulation","x402","agents","x402-global-challenge"],"price":{"amount":"0.1","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.1"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.1"}],"amountUsdc":"0.1","amountMicro":"100000"}},{"id":"sessionsCreate","method":"POST","path":"/sessions","url":"https://canix402-api.compx.io/sessions","description":"One compiler-priced x402 payment mints a walletless prepaid session receipt (canix://session/{id}). The receipt unlocks N research calls and M quotes/plans until TTL. Sessions are receipts, not keys — Canix never stores a wallet. Exact-scheme one-shots remain the default; omit X-Canix-Session to pay per request. Fail-closed on expiry, exhausted quota, or store unavailability.","tags":["sessions","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}},{"id":"sessionsRefresh","method":"POST","path":"/sessions/refresh","url":"https://canix402-api.compx.io/sessions/refresh","description":"Compiler-priced x402 payment that resets N/M quota and TTL on an existing session id, or mints a new receipt if the previous one is gone. Cannot be paid with an existing session — this route is one-shot only.","tags":["sessions","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}},{"id":"watchCreate","method":"POST","path":"/watch","url":"https://canix402-api.compx.io/watch","description":"Recurring compiler-priced x402 retainer that registers a walletless watch (address + thresholds + optional HTTPS webhook). Fires signed, idempotent notifications on health-factor, claimable-USD, APY-drop, or Réti-capacity crossings. Canix never stores wallet keys — only the address, callback, and a server-generated HMAC secret (shown once). Refresh with POST /watch/refresh before TTL. MCP resource canix://watch/{watchId} lists recent firings.","tags":["watch","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}},{"id":"watchRefresh","method":"POST","path":"/watch/refresh","url":"https://canix402-api.compx.io/watch/refresh","description":"Compiler-priced x402 payment that extends TTL on an existing watch id. Optionally rotateSecret to mint a new HMAC key (returned once). Cannot be paid with a prepaid session. Unknown or expired watches fail-closed; register again with POST /watch.","tags":["watch","x402","agents","x402-global-challenge"],"price":{"amount":"0.25","currency":"USDC","network":"algorand","asset":"31566704"},"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"},"accepts":[{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.25"}],"amountUsdc":"0.25","amountMicro":"250000"}}],"mcpInstall":"https://canix402.compx.io/x402#mcp","mcpUrl":"https://canix402-mcp.compx.io/mcp","mcpTransport":"streamable-http"}