Skip to content

feat: add AssetFare read-only cross-chain quote provider - #1513

Open
odaiin wants to merge 21 commits into
coinbase:mainfrom
odaiin:assetfare/action-provider
Open

odaiin wants to merge 21 commits into
coinbase:mainfrom
odaiin:assetfare/action-provider

Conversation

@odaiin

@odaiin odaiin commented Sep 23, 2026 •

Copy link
Copy Markdown

What changed\n\nAdds an assetfare ActionProvider with two read-only actions:\n\n- assetfare_get_capabilities reads the live six-chain, 76-route surface and current availability.\n- assetfare_get_quote requests one fresh non-custodial bridge or cross-chain swap quote, including total token-path cost, expected and minimum receive, ETA, TTL, ordered provider path, exact 1bp step, and quote-bound continuation_v3.\n\nThe provider supports the current Polygon and Optimism native-USDC source-only directions and rejects those chains as destinations. It treats AssetFare as one unranked candidate and directs agents to compare fresh executable routes.\n\n## Security boundary\n\n- no private keys or seed phrases\n- no wallet authentication\n- no action preparation\n- no signing or submission\n- no swap, bridge, funding, or order creation\n- rejects secret, signed, unsafe continuation, route-summary, intent, amount, Across-classification, and payload-hash mutations\n- preserves the server_signing=false and server_submission=false boundary\n\n## Verification\n\n- package-local Jest: 19 tests passed\n- package-local TypeScript check passed\n- package-local ESLint passed\n- actual Python Core 2.4.1 fixture reproduces the typed-canonical-v1 hash after JavaScript unsafe-integer parsing\n- number/string, negative zero, unsafe integral number, and lone-surrogate hostile cases pass\n- git diff check passed\n- the commit is GitHub-signed and verified\n\nThe public API and source are documented in the included provider README.\n\nCloses #1500\n\n## Checklist\n\n- [x] Added documentation to all relevant README.md files\n- [x] Added a changelog entry

Caller-owned continuation update

The provider remains read-only and still returns only a sanitized unranked continuation descriptor. It now also returns a structured executable/args handoff pinned to assetfare-mcp@1.3.0: first obtain a new exact validated mode-0600 quote file, then only after comparison and explicit caller approval request one verified unsigned session action. The provider itself still collects no wallet, creates no approval/session, and never signs or submits. The handoff is positioned for aggregate refill/material transfer, not automatic per-x402-micropayment top-up.

Revalidation at signed head d2643bb44f086d23cca440c509d89a145eb83704: TypeScript check passed, ESLint passed, Prettier passed, and all 19 AssetFare Jest tests passed.

@odaiin
odaiin requested a review from murrlincoln as a code owner September 23, 2026 02:16
@cb-heimdall

cb-heimdall commented Sep 23, 2026 •

Copy link
Copy Markdown

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@github-actions github-actions Bot added documentation Improvements or additions to documentation action provider New action provider typescript labels Sep 23, 2026
@odaiin
odaiin force-pushed the assetfare/action-provider branch from e5e527c to f774ed4 Compare September 24, 2026 03:16
@cb-heimdall

Copy link
Copy Markdown

Review Error for MVPuknowme @ 2026-09-25 19:27:29 UTC
User failed mfa authentication, either user does not exist or public email is not set on your github profile. \ see go/mfa-help

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action provider New action provider documentation Improvements or additions to documentation typescript

Development

Successfully merging this pull request may close these issues.

3 participants