EVM Integration (Ethereum, Polygon, Base)
On EVM chains, the signing and submission flow differs from Solana. This guide covers the key differences.Multi-Transaction Operations
On EVM chains, supply operations return two transactions that must be signed and submitted in order:- Approve transaction — Authorizes the protocol to spend your USDC
- Supply transaction — Deposits USDC into the yield strategy
Unsigned Transaction Format
EVM unsigned transactions are returned as JSON objects with these fields:| Field | Type | Description |
|---|---|---|
to | string | Contract/recipient address |
data | string | Encoded call data (hex string) |
value | string | Native token value in wei (usually '0') |
gasLimit | string | Gas limit |
maxFeePerGas | string | EIP-1559 max fee per gas |
maxPriorityFeePerGas | string | EIP-1559 priority fee per gas |
nonce | number | Transaction nonce |
chainId | number | Chain ID for replay protection |
Signing with ethers.js
Key Differences from Solana
| Solana | EVM | |
|---|---|---|
| Transactions per supply | 1 | 2 (approve + supply) |
| Transaction format | Base64-encoded | Hex-encoded |
transactionId on submit | Optional | Required |
| Gas token | SOL | ETH / POL / ETH (Base) |
The
transactionId parameter is required when submitting EVM transactions because operations contain multiple transactions. It tells RebelFi which transaction you are submitting. For Solana single-transaction operations, it is optional.Complete EVM Example
Next Steps
Wallet Profiles
Configure EVM chains in your wallet profile
Fireblocks Integration
Sign EVM transactions with Fireblocks custody
Integration Tutorial
Complete E2E walkthrough