Install
openclaw skills install taiko-native-bridgeClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Use when an agent needs to bridge or claim ETH/ERC20/ERC721/ERC1155 across Taiko L1/L2 with send/wait-ready/claim workflows.
openclaw skills install taiko-native-bridgeUse bridge-cli for Taiko bridge send/wait/claim flows in both directions (L1->L2, L2->L1).
Preferred (remote install):
go install github.com/davidcai/taiko-bridge-cli/cmd/bridge-cli@latestLocal source build:
cd /path/to/taiko-bridge-cligo build -o bridge-cli ./cmd/bridge-cliDownload binary (if release artifact is available):
curl -L -o bridge-cli <release-binary-url>chmod +x bridge-cliQuick sanity check:
./bridge-cli --help./bridge-cli schemaSet RPC and key vars once, then reuse in commands.
export BRIDGE_CLI_PRIVATE_KEY=0x...
# Direction A: L1 -> L2
export L1_RPC=https://l1-rpc
export L2_RPC=https://l2-rpc
Base flags template:
COMMON_FLAGS=(
--src-rpc "$SRC_RPC"
--dst-rpc "$DST_RPC"
--private-key "$BRIDGE_CLI_PRIVATE_KEY"
)
Address override flags are optional and only needed for custom deployments.
Before running bridge commands, verify these required envs exist:
BRIDGE_CLI_PRIVATE_KEYSRC_RPCDST_RPCIf any are missing, do not run the command. Ask the user for the missing values first.
Example prompt:
I’m missing required env vars: SRC_RPC, DST_RPC. Please provide them so I can continue.Pipeline (fastest for agents):
./bridge-cli claim-eth "${COMMON_FLAGS[@]}" --to 0x... --value 1 --fee 0 --gas-limit 1000000./bridge-cli claim-erc20 "${COMMON_FLAGS[@]}" --token 0x... --amount 100 --to 0x... --fee 0./bridge-cli claim-erc721 "${COMMON_FLAGS[@]}" --token 0x... --token-ids 1 --to 0x... --fee 0./bridge-cli claim-erc1155 "${COMMON_FLAGS[@]}" --token 0x... --token-ids 1 --amounts 1 --to 0x... --fee 0Low-level explicit (debuggable):
send-*wait-ready --tx-hash <send_tx_hash>claim --tx-hash <send_tx_hash>Example ETH low-level:
SEND_JSON=$(./bridge-cli send-eth "${COMMON_FLAGS[@]}" \
--to 0xRecipient \
--value 1 \
--fee 0 \
--gas-limit 1000000)
TX_HASH=$(echo "$SEND_JSON" | jq -r '.tx_hash')
./bridge-cli wait-ready "${COMMON_FLAGS[@]}" \
--tx-hash "$TX_HASH" \
--timeout 20m \
--poll-interval 5s
./bridge-cli claim "${COMMON_FLAGS[@]}" \
--tx-hash "$TX_HASH" \
--timeout 20m \
--poll-interval 5s
For L2->L1, swap source and destination values:
SRC_* = L2 valuesDST_* = L1 valuesThen run the exact same commands.
jq.bridge-cli auto-checks getMessageMinGasLimit(len(data)).--gas-limit is too low, it auto-bumps and returns:
requested_gas_limitmin_gas_limiteffective_gas_limitgas_limit_adjustedbridge-* commands are legacy aliases of claim-*.claim reverts but status shows dest_message_status=2, message was already processed (usually relayer race).wait-ready never progresses:
signal_service addresses, not inbox/anchor addresses.execution reverted on send:
effective_gas_limit and bridge destination config.--timeout, then retry claim.