Skip to content

feat: Hyperlane cross-chain Warp Route action provider#1144

Open
Ridwannurudeen wants to merge 1 commit intocoinbase:mainfrom
Ridwannurudeen:feat/hyperlane-action-provider
Open

feat: Hyperlane cross-chain Warp Route action provider#1144
Ridwannurudeen wants to merge 1 commit intocoinbase:mainfrom
Ridwannurudeen:feat/hyperlane-action-provider

Conversation

@Ridwannurudeen
Copy link
Copy Markdown

Description

Closes #1142.

Adds a Hyperlane action provider so AgentKit agents can bridge ERC-20 tokens cross-chain via Hyperlane Warp Routes.

Two actions:

  • transfer_remote — approves the Warp Route, reads quoteGasPayment, dispatches transferRemote with the quoted amount as msg.value.
  • quote_transfer_remote — reads quoteGasPayment for a preview.

Origin chains supported: Base, Ethereum, Optimism, Arbitrum mainnets. Destinations are resolved by name (ethereum, optimism, base, arbitrum, polygon, bsc, etc.) to canonical Hyperlane domain IDs from the hyperlane-registry.

Follows the AaveActionProvider layout from #865 (provider, schemas, constants, utils, README, changelog, unit tests with a mocked EvmWalletProvider).

TypeScript provider will follow in a separate PR.

Tests

Unit tests: 14/14 passing.

$ make test  # filtered to action_providers/hyperlane
========================== test session starts ==========================
collected 14 items

tests/action_providers/hyperlane/test_hyperlane_provider.py .....   [ 35%]
tests/action_providers/hyperlane/test_hyperlane_schemas.py ....     [ 64%]
tests/action_providers/hyperlane/test_hyperlane_transfer.py .....   [100%]

========================== 14 passed in 0.32s ===========================

Coverage: supports_network, destination domain resolution (case-insensitive + unknown chain), schema validation, transfer happy path (asserts msg.value matches the quoted gas), unsupported origin, unknown destination, insufficient balance early-exit, quote action.

Lint / format: make lint and make format clean on the added files.

Live test: Pending. Happy to verify end-to-end with a small Base→Optimism or Base→Arbitrum USDC Warp Route transfer once a maintainer is reviewing — will paste the tx hash + Hyperlane Explorer link in a follow-up comment.

Checklist

  • Added documentation to all relevant README.md files
  • Added a changelog entry

Implements `transfer_remote` and `quote_transfer_remote` actions so AgentKit
agents can bridge ERC-20 tokens between EVM chains via Hyperlane Warp Routes.

Origin chains supported: Base, Ethereum, Optimism, Arbitrum mainnets.
Destinations are resolved by name (ethereum, optimism, base, arbitrum, polygon,
bsc, etc.) to canonical Hyperlane domain IDs from the hyperlane-registry.

The transfer flow reads decimals from the underlying ERC-20, checks balance,
quotes interchain gas via the Warp Route's quoteGasPayment, approves the Warp
Route to spend the token, then dispatches transferRemote with the quoted gas
attached as msg.value.

Closes coinbase#1142.
@cb-heimdall
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 python labels Apr 23, 2026
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 python

Development

Successfully merging this pull request may close these issues.

feat: Hyperlane cross-chain transfers action provider

2 participants