Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make sure that Squidrouter transactions are always using express #431

Open
ebma opened this issue Jan 28, 2025 · 2 comments
Open

Make sure that Squidrouter transactions are always using express #431

ebma opened this issue Jan 28, 2025 · 2 comments
Assignees
Labels
priority:high Do it now type:bug Something isn't working

Comments

@ebma
Copy link
Member

ebma commented Jan 28, 2025

Context

Even though we are enabling the express feature on Squidrouter when we create the bridging requests, it seems like this is sometimes ignored, especially for larger amounts. This leads to very long transaction times, making users wait up to 30 minutes instead of a few seconds for the bridging to Moonbeam to finish.

TODO

Investigate why/when this happens and if there is a way to ensure that express is always used.

@ebma ebma added priority:high Do it now type:bug Something isn't working labels Jan 28, 2025
@gianfra-t gianfra-t self-assigned this Jan 30, 2025
@Sharqiewicz
Copy link
Member

Axelar supports a concept called "Express transactions" as part of its General Message Passing (GMP) framework. This speed is achieved through a mechanism where an "Express relayer" fronts the transaction on the destination chain before the source chain transaction is fully finalized, essentially acting as a temporary liquidity provider.
Relayers in Axelar are off-chain services that facilitate cross-chain communication. They monitor events on source chains (e.g., via gateway contracts), relay them to the Axelar network for validator approval, and execute approved transactions on destination chains.
There are two main types of relayers:
Normal Relayers: These handle standard GMP transactions, executing them after full validator confirmation, which aligns with the typical 10-15 minute finality window.
Express Relayers: These enable the "Express" feature by pre-executing transactions on the destination chain using their own liquidity, then settling the loan once the source chain transaction is finalized and approved by validators.
Express relayers assume more risk (fronting funds) and require higher liquidity (e.g., $445k USD vs. $77k USD for normal relayers, per Hashbasis data from 2023), which is why the extra fee exists as insurance.
Why Express Might Fall Back to Normal Above 5,000 USDC
Here’s why your Express transaction might revert to a normal transaction for larger amounts like 5,000 USDC:
Express Relayer Liquidity Limits:
Express relayers front the funds or gas for the destination chain execution, meaning they need sufficient liquidity to cover the transaction amount (e.g., 5,000 USDC worth of tokens or native gas tokens). If the relayer’s available balance is below this threshold, it can’t pre-execute the transaction.
For example, data from 2023 (via Hashbasis) shows Express relayers holding ~$445k USD in liquidity versus ~$77k USD for normal relayers. While this suggests capacity for larger transactions, individual relayer liquidity could still be capped or fluctuate. For a 5,000 USDC transaction, the relayer might need at least that much in equivalent assets (plus gas), and if it’s short, the system might default to a normal relayer to avoid failure.
Risk Management Thresholds:
Express relayers assume risk by fronting funds before source chain finality. For larger transactions (e.g., 5,000 USDC), the financial exposure might exceed a risk threshold set by the relayer or Axelar’s protocol. To mitigate this, the system could automatically downgrade to a normal transaction, waiting for full validator approval to ensure safety over speed.
The $1 Express fee might not scale with transaction size, meaning it doesn’t adequately cover the risk for high-value transactions, prompting a fallback.

📛 Moonbeam Express Relayer 1 holds now 5003axlUSDC https://moonbeam.subscan.io/account/0xe743a49f04f2f77eb2d3b753ae3ad599de8cea84
Probably SquidRouter is using only the Relayer 1
📛 So the transactions bigger than 5003USDC are going to fail

📛 You still pay the Express fee (if charged), but the execution follows the slower path, which might feel like a bug or oversight.

@ebma
Copy link
Member Author

ebma commented Mar 4, 2025

We reached out to Axelar team to try and increase the funds the Moonbeam Express Relayer 1 holds on Moonbeam.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority:high Do it now type:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants