bridging-to-abstract
Bridging to Abstract
Abstract supports a native Ethereum bridge and six third-party bridge providers for moving assets from other chains. This skill covers bridge selection, timing, costs, and programmatic bridge quotes.
Operating Rules
- Identify the user's source chain and asset before recommending a bridge.
- For Ethereum → Abstract, recommend the native bridge for trustlessness or Relay for speed.
- For non-Ethereum chains (Base, Arbitrum, Solana, etc.), third-party bridges are the only option.
- Verify funds arrived via
agw wallet balancesafter bridging. - Read references/native-bridge.md for native bridge architecture, contracts, and timing.
- Read references/third-party-bridges.md for Relay API, Stargate, and other provider details.
Bridge Selection
digraph bridge_select {
"Source chain?" [shape=diamond];
"Speed priority?" [shape=diamond];
"Native Bridge" [shape=box];
"Relay / Jumper" [shape=box];
"Third-party only" [shape=box];
"Source chain?" -> "Speed priority?" [label="Ethereum L1"];
"Source chain?" -> "Third-party only" [label="Base, Arb, Solana, etc."];
"Speed priority?" -> "Native Bridge" [label="trustless, free\n~15 min deposit"];
"Speed priority?" -> "Relay / Jumper" [label="fast\nseconds to minutes"];
}
Timing and Costs
| Route | Time | Cost |
|---|---|---|
| Native L1→L2 deposit | ~15 minutes | Gas only (free protocol fee) |
| Native L2→L1 withdrawal | Up to 24 hours | Gas only (withdrawal delay) |
| Relay (any chain → Abstract) | Seconds to minutes | Small relay fee |
| Stargate | Minutes | LayerZero fee |
| Jumper/LI.FI | Minutes | Aggregated best route |
Native Bridge
The native bridge moves ETH and ERC-20 tokens between Ethereum and Abstract. Uses ZKsync shared bridge architecture.
- Deposits (L1→L2): ~15 minutes. Tokens locked on L1, minted on L2.
- Withdrawals (L2→L1): Up to 24 hours. Two-step: initiate on L2, then
finalizeWithdrawalon L1 after batch execution. - Portal UI:
https://portal.mainnet.abs.xyz/bridge/(mainnet),https://portal.testnet.abs.xyz/bridge/(testnet)
Discover bridge contracts programmatically
curl -X POST https://api.mainnet.abs.xyz \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"zks_getBridgeContracts","params":[],"id":1}'
Returns: l1Erc20DefaultBridge, l2Erc20DefaultBridge, l1WethBridge, l2WethBridge.
Relay API (Programmatic Bridging)
Relay is the best option for programmatic cross-chain bridging — clean REST API, near-instant, 85+ chains.
Get a quote
curl -X POST "https://api.relay.link/quote/v2" \
-H "Content-Type: application/json" \
-d '{
"user": "<SENDER_ADDRESS>",
"originChainId": 1,
"destinationChainId": 2741,
"originCurrency": "0x0000000000000000000000000000000000000000",
"destinationCurrency": "0x0000000000000000000000000000000000000000",
"amount": "1000000000000000000"
}'
The response includes transaction steps to sign and submit. Abstract mainnet chain ID is 2741, testnet is 11124.
Third-Party Bridges
| Provider | URL | Best For |
|---|---|---|
| Relay | relay.link | Programmatic API, near-instant |
| Jumper | jumper.exchange | Multi-route aggregation, best price |
| Stargate | stargate.finance/bridge | Cross-L2 via LayerZero |
| Symbiosis | symbiosis.finance | Abstract-specific routes |
| thirdweb | thirdweb.com/bridge | SDK integration |
| deBridge | app.debridge.com | Intent-based cross-chain |
For non-Ethereum source chains, guide users to the web UI of their preferred bridge unless programmatic access is needed (use Relay API).
Verification
After bridging, confirm funds arrived:
agw wallet balances --json '{"fields":["accountAddress","nativeBalance"]}'
For ERC-20 tokens:
agw wallet tokens list --json '{"pageSize":10,"fields":["items.symbol","items.tokenAddress","items.value"]}'
Common Issues
| Problem | Cause | Resolution |
|---|---|---|
| Deposit not showing | L1→L2 takes ~15 minutes | Wait and recheck balances |
| Withdrawal stuck | Batch not yet executed on L1 | Wait up to 24 hours; check isWithdrawalFinalized before calling finalizeWithdrawal |
| Bridge shows unsupported | Third-party may not support all tokens | Try a different bridge provider or use the native bridge |
Escalation
- Route wallet balance queries to
reading-agw-wallet. - Route session issues to
authenticating-with-agw.
More from abstract-foundation/agw-cli
mining-with-bigcoin
Interact with the Bigcoin virtual mining game on Abstract — buy facilities, purchase miners, claim rewards, check hashrate, and manage mining operations. Use when a user wants to play Bigcoin, mine $BIG tokens, buy a facility or miner, claim mining rewards, check pending rewards, view hashrate, upgrade their facility, sell miners, or interact with the Bigcoin game contracts on Abstract. Trigger for requests mentioning Bigcoin, $BIG, BIG token, virtual mining, hashrate, facility, miner purchase, mining rewards, claim BIG, or Bigcoin game on Abstract.
22upvoting-on-abstract
Vote for apps on the Abstract Portal using the AbstractVoting contract. Use when a user wants to upvote an app, check remaining votes, see vote counts for apps, check the current epoch or vote cost, or interact with Abstract Portal voting. Trigger for requests mentioning upvote, vote for app, Abstract voting, Portal voting, vote cost, epoch, voteForApp, votes remaining, or app popularity on Abstract.
22reading-agw-wallet
Read AGW wallet identity, balances, and token inventory with field trimming and pagination. Use when a user wants to know which wallet is linked, inspect balances, list tokens, confirm the current account before another workflow, or gather read-only wallet context without blowing the context window. Trigger for requests mentioning `agw wallet address`, `agw wallet balances`, `agw wallet tokens list`, portfolio inspection, token inventory, or linked wallet identity.
21trading-on-uniswap
Compose AGW wallet and contract commands for token swaps, price quotes, and liquidity on Abstract via Uniswap V2 and V3. Use when a user wants to trade tokens, swap ETH for USDC, swap USDC for ETH, check token prices, get swap quotes, add or remove liquidity, or interact with any Uniswap contract on Abstract. Trigger for requests mentioning swap, trade, exchange, Uniswap, DEX, liquidity pool, price quote, token pair, amountOut, slippage, or AGW trading actions on Abstract mainnet or testnet.
21authenticating-with-agw
Bootstrap, inspect, troubleshoot, and revoke AGW sessions through the companion approval flow. Use when a user needs to connect this machine to an AGW wallet, check session readiness, diagnose missing signer or delegated-access issues, inspect local session state, or explicitly revoke access. Trigger for requests mentioning `agw auth init`, `agw session status`, `agw session doctor`, onboarding, companion approval, or session revoke.
21executing-agw-transactions
Apply preview-first execution rules to AGW signing, sends, batched calls, token transfers, contract writes, and deployments. Use when a user wants to sign data, simulate a transaction, broadcast a transaction, transfer tokens, write a contract, deploy a contract, or build one of those payloads safely. Trigger for requests mentioning `agw tx`, `agw contract`, signing, dry-run, execute, preview, transfer, contract write, or deployment.
21