Changelog
Notable changes and updates to the Floe protocol.
Version History
v1.7.1 — x402 v2 Wire Protocol Support (May 2026)
The facilitator now negotiates between x402 v1 and x402 v2 per request based on what the merchant returns. Previously, only the v1 bare-requirement envelope was understood, which caused parse failures against modern @x402/hono and other v2-compliant servers — and which made the v2 entries already published in the Floe x402 directory unreachable in practice.
What changed:
parsePaymentRequirednow accepts either a v1 barePaymentRequirement(single or array) or a v2{ x402Version, accepts, resource, error, extensions }envelope, and normalizes the renamedamountfield back to the internalmaxAmountRequiredshape.On the outbound side, the signed payment header is written as
PAYMENT-SIGNATUREwhen the merchant advertised v2, orX-PAYMENTfor v1 — picked automatically per request.The settlement response header (
PAYMENT-RESPONSEin v2,X-PAYMENT-RESPONSEin v1) is base64-decoded when it carries a v2SettlementResponse; thetransactionfield becomes the recorded tx hash. v1 strings still pass through unchanged.GET /v1/proxy/checksurfaces the negotiatedx402Versionand, on parse failure, a typedcode(invalid_base64/invalid_json/no_compatible_requirement) so misformatted upstreams are diagnosable without a redeploy.
What didn't change:
EIP-3009
TransferWithAuthorizationtyped data and signing — identical between v1 and v2.Reservation lifecycle (RC-12), idempotency keys, rate limits, agent registration, and credit-line opening flows.
The supported asset (USDC) and network (Base mainnet); CAIP-2
"eip155:8453"and the short name"base"are both still accepted.
Why this matters: developers running v2 merchants no longer hit "Failed to parse PAYMENT-REQUIRED header" against Floe, and the directory's v2 entries (Firecrawl, Exa, Soundside, Freepik, and the rest) now negotiate correctly. Spec refs: x402-specification-v2.md, transports-v2/http.md, CDP migration guide.
v1.7.0 — Unified Agent Registration + Managed Credit Line (May 2026)
The legacy single-agent registration path is removed. All agent provisioning now flows through the same dashboard surface that multi-agent uses (POST /v1/developer/agents), authenticated by a dashboard session, a floe_live_* developer key, or a wallet signature. Provisioning is intentionally decoupled from credit-line opening: a new server-signed endpoint mints the facility loan from the agent's managed Privy wallet (USDC/USDC market).
Removed (breaking):
POST /v1/agents/pre-registerandPOST /v1/agents/register— replaced byPOST /v1/developer/agents(provision) +POST /v1/developer/agents/:id/keys(mint).developers.agentApiKeyHashlegacy fallback inapi_key_authmiddleware — all agents now resolve via theapi_keystable.
Added:
POST /v1/developer/agents/:agentId/open-credit-line— server-signsregisterBorrowIntentfrom the agent's managed Privy wallet in the USDC/USDC market. Body:{ depositRaw, maxLtvBps?, maxRateBps? }. Default LTV 9500 (95%, the same-token market cap). Returns{ loanId, registerTxHash, approveTxHash?, principalRaw, status: 'pending_on_chain' }. The existingFacilityLoanReconcileradvances the row topending_matchonce the receipt confirms; the solver matches it asynchronously. Idempotent via theIdempotency-Keyheader. This is the step that makes a managed agent'screditInnon-zero — without calling it,/proxy/fetchreturnsinsufficient_balance.
SDK migration (floe-agent v0.4.0 / floe-agentkit-actions v0.4.0):
New subcommands:
floe-agent register,agents,use,rotate,revoke,open-credit-line. Each developer can register up to 5 agents from the CLI.Per-agent API keys now live in the OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service) via
@napi-rs/keyring/keyring. Falls back toFLOE_AGENT_KEY_<NAME>env vars in headless environments.grant_credit_delegationaction rewired to the new provisioning flow. The schema gains a requiredname; thefacilitatorAddress/collateralToken/collateralApprovalfields are removed (the server's Privy wallet handles on-chain delegation and collateral). Return message points users at the newopen_credit_linestep.New
open_credit_lineaction — callsPOST /v1/developer/agents/:id/open-credit-linewith wallet-signed auth and prints the resultingloanId+ tx hashes. Available in both TS and Python SDKs.revoke_credit_delegationandcheck_credit_delegationunchanged — still pure on-chain operations against the lending matcher.
MCP server (@floelabs/mcp-server):
No code change; remote endpoint and stdio mode already accept per-request Bearer tokens. README +
.env.exampleclarify thatfloe_*agent keys are the recommended credential —floe_live_*developer keys still work but disable the agent-awareness tools.
Why this matters: one registration path, one key model, one explicit "open the credit line" step. Splitting provisioning from credit-line opening makes the lifecycle visible: developers see exactly when their agent gains spendable USDC instead of having it bundled invisibly into registration.
v1.6.0 — Same-Token Markets, Fiat On-Ramp, Multi-Agent (May 2026)
Same-Token Markets (Upgrade #13):
USDC/USDC market live on Base Mainnet. Deposit USDC, borrow up to 95% as working capital. No price-volatility risk — the oracle returns a hardcoded 1:1 ratio.
New protocol constants:
SAME_TOKEN_MAX_LTV_BPS(99.5% cap),SAME_TOKEN_MIN_LTV_GAP_BPS(0.5% gap). Normal markets (WETH/USDC, cbBTC/USDC) are completely unaffected.Oracle
getPrice()andgetPriceChecked()short-circuit for same-token pairs — immune to Chainlink staleness, circuit breaker, and sequencer downtime.Market ID:
0x5027ae5ed5c85380c5dfa34a79915f41f139f4e859f56d15a6f958ea6b6628204 contracts upgraded:
LendingLogicsManager,LendingCalcLib,LendingViewsUpgradeable,PriceOracleUpgradeable
Fiat On-Ramp:
Buy USDC from the Developer Dashboard via Coinbase CDP. Credit card, debit card, or bank transfer — USDC lands directly in your agent's wallet on Base. No crypto bridges needed.
POST /v1/onramp/session-tokenmints a CDP session token for authenticated developersWebhook verification via Hook0 HMAC-SHA256 for audit trail
Multi-Agent System:
Up to 5 agents per developer, each with independent credit limits, rate caps, and delegation expiry.
New API routes:
GET/POST /v1/developer/agents,GET /v1/developer/agents/:id,POST /v1/developer/agents/:id/close, key management per agent.Agent modes:
managed(new, server-provisioned) andlegacy(existing SDK-registered agents).Per-agent session spend limits via
PUT /v1/agents/spend-limit.
New Webhook Events:
credit.utilization_warning— fires when borrowed principal exceeds 80% of credit limit.delegation.expiry_warning— fires 7 days and 24 hours before operator delegation expires.
v1.5.0 — Agent Awareness Primitives (May 2026)
Lets agents reason about their own credit before committing capital. Answers the three rational-agent questions in one round-trip: "do I have credit?", "is this call worth its cost?", "where am I in the loan lifecycle?".
REST API (credit-api.floelabs.xyz):
GET /v1/agents/credit-remaining— available USDC, headroom to auto-borrow, utilization in bps, session-cap state.GET /v1/agents/loan-state— coarse state machine:idle | borrowing | at_limit | repaying.GET / PUT / DELETE /v1/agents/spend-limit— operator-defined session ceiling, enforced inside the proxy paid-request transaction.GET / POST / DELETE /v1/agents/credit-thresholds— webhook subscriptions forcredit.warning/credit.at_limit/credit.recovered. Atomic hysteresis guarantees exactly-once delivery per edge crossing. Cap of 20 per agent.POST /v1/x402/estimate— preflight an x402-protected URL, return cost + reflection against the calling agent's credit. SSRF-policy-keyed cache for cross-tenant isolation.
SDK Updates:
floe-agent(npm) andfloe-agentkit-actions(PyPI) updated to 0.3.0 — adds 9 agent-awareness actions toX402ActionProvider. 45 actions total (30 Floe + 15 X402: 6 credit-delegation + 9 agent-awareness).@floelabs/mcp-server(npm) updated to 0.2.0 — adds 9 corresponding MCP tools. 36 tools total.All names are snake_case and identical across REST / MCP / TS / Python:
get_credit_remaining,get_loan_state,{get,set,clear}_spend_limit,{list,register,delete}_credit_threshold,estimate_x402_cost.
Docs:
New concept page: Agent Awareness with the decision-loop pattern.
End-to-end demo:
examples/agent-awareness.tsand.py.
v1.4.0 — Unified Developer Platform + x402 Credit Facilitator (April 2026)
Developer Platform:
Developer Dashboard at dev-dashboard.floelabs.xyz — manage API keys, webhooks, and agents via wallet sign-in.
API Keys (
floe_live_*) — programmatic access without per-request wallet signing. See API Keys.Webhooks — push notifications for loan events (
loan.health_warning,loan.expiry_warning,loan.liquidated,loan.repaid) with HMAC-signed payloads and retry. See Webhooks.Unified API — all endpoints at
credit-api.floelabs.xyzunder one base URL, dual auth (floe_live_*developer keys +floe_*agent keys). See Credit REST API.
x402 Credit Facilitator:
Agents grant a scoped on-chain
setOperatorpermission, then callPOST /v1/proxy/fetchwith any x402 URL — the facilitator handles borrowing, EIP-3009 signing, and payment automatically.3-step setup: Create Wallet → Deposit & Delegate → Activate Agent. See Agent Quickstart.
Automated credit health monitoring and graceful wind-down via
POST /v1/agents/closeorrevokeOperator.See x402 Credit Facilitator and Agent Runtime Contract for the full API.
Smart Contract Upgrade #12 (Operator Delegation):
setOperator/revokeOperator/getOperatorPermission— scoped, revocable delegation withborrowLimit,maxRateBps,expiry, andonBehalfOfRestriction.All constraints re-validated at every borrow match — the facilitator provably cannot exceed the agent's bounds.
Proxy address unchanged:
0x17946cD3e180f82e632805e5549EC913330Bb175. See Contract Addresses.
Security:
SSRF hardening on outbound proxy requests.
Proxy request rate limiting and domain allowlisting.
See Error Codes and Environment Variables for operational reference.
AgentKit SDK Updates:
floe-agent(npm) andfloe-agentkit-actions(PyPI) updated to 0.2.0 — addsX402ActionProviderwith 6 new actions (36 total). See AgentKit Integration.
v1.3.0 — AgentKit, Flash Loans & Safe Support (March 2026)
AgentKit Integration:
floe-agent (npm) / floe-agentkit-actions (PyPI) — 36 AI agent actions for Floe via Coinbase AgentKit. Supports Vercel AI SDK, LangChain, OpenAI Agents SDK, and MCP server.
floe-agent CLI — interactive terminal agent for testing all 36 actions without framework code.
Flash Loan and Deploy actions included.
Flash Loans:
Uncollateralized loans borrowed and repaid within a single transaction via
flashLoan().FlashArbReceiver— deployable contract for executing flash arbitrage through Aerodrome DEX on Base.Pre-flight checks for fee, liquidity, circuit breaker, and router availability.
Credit Scores:
Cred Protocol integration — on-chain credit scores displayed as radar charts and tier badges (Excellent/Good/Fair/New).
Safe / Multisig Support:
Floe loads natively inside the Safe{Wallet} App Store. Automatic detection via RainbowKit, forced on-chain tx mode (no EIP-712 signing).
Smart Contract Updates:
Configurable grace period after loan expiry before liquidation.
Minimum interest floor for lenders on short-duration loans.
Duration ranges (min/max) instead of single values for improved matching.
v1.2.0 — Smart Contract Hardening (February 2026)
Telegram Bot — LendrBot available on Telegram.
X/Twitter Notifications — intent summaries and post-match alerts.
Farcaster Mini App.
DefiLlama TVL tracking.
v1.1.0 — Intent Creation Overhaul (February 2026)
Preset templates (Conservative, Balanced, Aggressive) for lending and borrowing.
Real-time risk preview panel with LTV risk levels and liquidation warnings.
Duration bucket selector (1W, 1M, 3M, 6M, 1Y).
Redesigned loan cards with LTV donut gauge.
4 active markets: USDC/WETH, USDC/cbBTC, USDT/WETH, USDT/cbBTC.
v1.0.0 — Mainnet Launch (January 2025)
Intent-based P2P lending on Base Mainnet.
USDC/WETH market with dual-oracle price feeds (Chainlink + Pyth).
Circuit breaker protection, solver-based matching, liquidation with 5% bonus.
LendingIntentMatcher proxy:
0x17946cD3e180f82e632805e5549EC913330Bb175.Web app at app.floelabs.xyz.
Protocol Parameters
minLtvGapBps
800 (8%)
Min gap between origination & liquidation LTV
withdrawalBufferBps
300 (3%)
Buffer below liquidation for withdrawals
stalenessTimeout
3,600 sec
Oracle staleness threshold
maxDeviationBps
1,500 (15%)
Max price deviation before circuit breaker
sequencerGracePeriod
3,600 sec
Post-recovery wait period
liquidationBonus
500 (5%)
Bonus for liquidators
minGracePeriod
86,400 sec
Min grace period after loan expiry (1 day)
maxGracePeriod
2,592,000 sec
Max grace period (30 days)
Security
Bug Bounty
Program active at security@floelabs.xyz
Critical: Up to $50,000
High: Up to $20,000
Medium: Up to $5,000
Low: Up to $1,000
Reporting Issues
Security issues: security@floelabs.xyz (do not disclose publicly)
General bugs: GitHub Issues or Discord
Feature requests: Discord #suggestions
Links
Last updated
