Paid POST /plans intent compiler
Date: 16 August 2026
Flagship compiler SKU: an agent states an allocation intent and Canix returns a sequenced, unsigned plan. Groups stay unmerged; the client signs and submits. Brownie and other user agents should consume /plans rather than forking a compiler.
What shipped
Paid POST /plans accepts { address, budget: { assetId, amount }, constraints?, opportunityIds? } and returns ordered steps: eligibility, optional swap hints, protocol setup chains, and enter quotes as independent unsigned groups. The response reuses quotes[] / order / prerequisiteShapeKeys, plus expected position delta, x402 + network fee totals, and expiry.
Constraints include max protocol weight, no new borrows, execution-ready only, and TVL/freshness floors. Eligibility is reused from POST /eligibility; quote-time on-chain checks remain authoritative. Swap legs in this SKU are hints (not live Haystack groups). Folks-style setup steps that need a confirmed escrow are deferred with the quotes[] input for a later POST /execution/quotes.
MCP: canix_get_plan. Agent loop: optional personalized → canix_get_plan → review eligibility/warnings → local sign/submit in order.
Pricing
| Step | Route / tool | Price |
|---|---|---|
| Plan compiler | POST /plans / canix_get_plan | 0.25 USDC |
| Eligibility (standalone) | POST /eligibility / canix_check_eligibility | 0.01 USDC |
| Quote compile (standalone) | POST /execution/quotes / canix_get_execution_quote | 0.10 USDC flat per request |
Caddy env: X402_PRICE_PLANS_USDC=0.25 (250000 micro-USDC). Set it on both the gateway and protocol components so discovery matches the gate.