DEV Community

Jerome Barton
Jerome Barton

Posted on

Why Can One Bridge Transfer Need Two Wallet Signatures?

If your token is an ERC-20 and the bridge has no spending allowance yet, approve the allowance first, then confirm the transfer. Those are separate on-chain actions, so each can require a wallet signature and source-chain gas. The bridge then waits for the source transaction to finalize and the destination chain to process it.

The first signature gives the bridge permission to spend

An ERC-20 token contract does not let a bridge take tokens directly from your wallet. You first send an approval transaction that sets an allowance: the amount a specified bridge contract may spend on your behalf. This permission is separate from the transfer, so approving it does not move your tokens.

Wallets show this as a transaction to the token contract. Check the spender and allowance amount before confirming. A limited allowance covers a set amount; a larger or unlimited allowance can avoid another approval later, but gives the spender permission over more of that token.

The second signature starts the cross-chain transfer

After approval, confirm the transfer itself. The bridge contract uses the allowance to lock the original token—or burn a wrapped token—on the source chain, then emits a message with the transfer details. On the destination chain, the corresponding token is released or minted after that message is verified.

For example, sending an ERC-20 from Ethereum to Solana may mean one Ethereum transaction to approve the bridge and a second Ethereum transaction to start the transfer. Portal Bridge presents the transfer through an interface, while the underlying approval and transfer remain distinct blockchain actions. If you already approved enough for that contract, the approval step may be skipped.

Wallet signatures are not Guardian signatures

Your wallet signs actions you authorize; Wormhole Guardians sign the cross-chain message after observing the source transaction. A supermajority—13 of 19 Guardians—creates a Verifiable Action Approval (VAA), a proof the destination contract checks before completing the transfer. You do not need to collect or sign those Guardian attestations yourself.

Wait time depends largely on the source chain’s finality—the point at which a transaction is treated as settled. Wormhole’s current documentation estimates about 19 minutes for Ethereum and about 14 seconds for Solana, before any additional relaying or destination processing. Portal Bridge can show the transfer status; Wormhole Explorer can help you check whether the source transaction produced a message and VAA.

Check the prompt and status before trying again

For a routine transfer, use this order:

  1. Confirm the source network, destination network, token, amount and recipient.
  2. If asked, review and approve the token allowance. Keep enough of the source chain’s gas token for both this transaction and the transfer.
  3. Confirm the transfer transaction, then save its transaction hash.
  4. Wait for the destination status before retrying. If the source transaction succeeded but delivery did not complete automatically, check the transfer in Wormhole Explorer and follow the interface’s manual completion steps if offered.

A native gas token usually does not need an ERC-20 approval, so a transfer may take one wallet confirmation. A token not yet registered for that destination may also need a one-time attestation step, adding transactions. If a prompt appears after the transfer has already started, read what it authorizes; destination redemption may require a separate transaction when completion is manual. Your next step is to confirm the exact prompt in your wallet, then track the transfer using its source transaction hash.

Top comments (0)