Introduction
We express our gratitude to the Echo Protocol team for the collaborative engagement that enabled the execution of this Smart Contract Security Assessment.
Echo Bridge protocol is an IOTA Ethereum bridge solution. The protocol enables cross-chain bridging and communication between the IOTA blockchain and EVM compatible chains. Its primary goal is to support bidirectional token bridging, allowing users to move assets seamlessly between chains using a validator committee for message verification. The system ensures trust-minimized operations through threshold-based signature approval, nonce-based replay protection, and committee governance. ERC20 tokens can be locked on the EVM side and minted as wrapped assets on IOTA, and vice versa.
Document | |
|---|---|
| Name | Smart Contract Code Review and Security Analysis Report for Echo Protocol |
| Audited By | Turgay Arda Usman, Khrystyna Tkachuk |
| Approved By | Ataberk Yavuzer |
| Website | https://www.echo-protocol.xyz/→ |
| Changelog | 04/08/2025 - Preliminary Report |
| 28/08/2025 - Final Report | |
| Platform | IOTA |
| Language | Move |
| Tags | Bridge, Signatures |
| Methodology | https://hackenio.cc/sc_methodology→ |
Document
- Name
- Smart Contract Code Review and Security Analysis Report for Echo Protocol
- Audited By
- Turgay Arda Usman, Khrystyna Tkachuk
- Approved By
- Ataberk Yavuzer
- Changelog
- 04/08/2025 - Preliminary Report
- 28/08/2025 - Final Report
- Platform
- IOTA
- Language
- Move
- Tags
- Bridge, Signatures
- Methodology
- https://hackenio.cc/sc_methodology→
Review Scope | |
|---|---|
| Repository | https://github.com/echo-proto/bridge-iota→ |
| Initial Commit | 686e118 |
| Final Commit | 89ffe353 |
Review Scope
- Initial Commit
- 686e118
- Final Commit
- 89ffe353
Audit Summary
The system users should acknowledge all the risks summed up in the risks section of the report
Documentation quality
Functional requirements are partially provided.
Use cases and project purpose are not provided.
Features are partially provided.
Technical description is not provided.
Key function descriptions are partilally provided.
Architecture is not described.
Code quality
The code mostly follows best practices and style guides.
See informational findings for more details.
Test coverage
Deployment and basic user interactions are covered with tests.
Negative cases coverage is missed.
Interactions by several users are not tested thoroughly.
System Overview
Echo Bridge is a bridge protocol that supports asset bridging from EVM chains to IOTA and vice versa. It includes the following modules:
bridge– the main contract serves as the central entry point for all bridge functionality. It handles the configuration of critical data and provides governance mechanisms for executing system-level configuration transactions;committee– responsible for managing the committee, this component tracks active members and maintains a blocklist for excluded participants;chain_ids– responsible for storing hardcoded chain IDs and managing the addition of supported bridge routes;crypto– a utility module providing a single function to convert an ECDSA public key into an Ethereum address;ibtc– defines and initializes theiBTCtoken as a bridged Bitcoin asset on IOTA. Sets up treasury, metadata, and finalizes bridge initialization;limiter– this module enforces rate limits on value transffered per route using a 24-hour ring buffer. It tracks hourly outflows, maintains a rolling sum, and checks if new transactions exceed the configured limit. Limits and asset prices are adjustable via a dedicated function;message_types– contains hardcoded message type codes, and getters for them;message– this module handles encoding and decoding of bridge messages. It also defines constants for pause and unpause message types and includes logic for determining the voting power required to execute each message type;treasury– manages separate treasuries for each supported token and tracks their approximate prices for rate-limiting purposes. It supports minting, burning, price updates, and adding new tokens. Token support, once added, cannot be removed.
Privileged roles
The bridge
AdminCapcan update thefee_recipientandsubmitters, and is responsible for registering and initializing the committee. Additionally, the admin can migrate the bridge and admin capability versions.The
TreasuryCapis responsible for adding new tokens to the bridge. Tokens are first placed in a waiting room and require approval through committees.The submitter is responsible for triggering the
approve_token_transferfunction to approve token bridging.The committees is responsible for executing system messages and signing bridge transaction approval requests.
Potential Risks
The audit does not cover all code in the repository. Contracts outside the audit scope may introduce vulnerabilities, potentially impacting the overall security due to the interconnected nature of smart contracts. The bridge protocol is designed to transfer assets from EVM-compatible chains to the IOTA chain. However, the audited scope included only the Move-based implementation on the IOTA side. The EVM-side bridge logic was not part of the review and may introduce security concerns that could affect the overall integrity of the bridging process.
Granting significant control to whitelist users without adequate checks leads to unpredictable operational disruptions, impacting user confidence and system stability.
The current version of the bridge does not support bridging the IOTA native asset. This limitation may restrict functionality or interoperability expectations for users intending to transfer IOTA tokens across chains.
The notional_amount, which represents the USD value of assets, is set and updated manually by committee governance. This value is not backed by an external price oracle and lacks any time-based guarantees for regular or accurate updates, potentially leading to stale or incorrect pricing.
Findings
Code ― | Title | Status | Severity | |
|---|---|---|---|---|
| F-2025-1195 | The Committee is Static and Cannot be Rotated | fixed | High | |
| F-2025-1191 | Token Supply Inflation via Improper Refund Logic in approvetokentransfer and claim_token | fixed | High | |
| F-2025-1202 | Artificially Low Asset Price Leads to Rate-Limiter Bypass | accepted | Medium | |
| F-2025-1199 | Ineffective Revocation of Submitter Privileges | fixed | Medium | |
| F-2025-1196 | Blocklisted Status is Not Persistent Across Committee Rotations | fixed | Medium | |
| F-2025-1185 | Mismatched Array Lengths in Admin Messages Can Lead to State Corruption or Denial of Service | accepted | Medium | |
| F-2025-1199 | Lack of Zero-Value Validation in updateroutelimit() Allows Setting Invalid Rate Limits | accepted | Low | |
| F-2025-1190 | Unchecked Read in peelu64be Leads to Transaction Abort and Denial of Service | accepted | Low | |
| F-2025-1185 | Token ID Collision Allows State Corruption | accepted | Low | |
| F-2025-1199 | Commented Code Parts | fixed | Observation |
Appendix 1. Definitions
Severities
When auditing smart contracts, Hacken is using a risk-based approach that considers Likelihood, Impact, Exploitability and Complexity metrics to evaluate findings and score severities.
Reference on how risk scoring is done is available through the repository in our Github organization:
Severity | Description |
|---|---|
Critical | Critical vulnerabilities are usually straightforward to exploit and can lead to the loss of user funds or contract state manipulation. |
High | High vulnerabilities are usually harder to exploit, requiring specific conditions, or have a more limited scope, but can still lead to the loss of user funds or contract state manipulation. |
Medium | Medium vulnerabilities are usually limited to state manipulations and, in most cases, cannot lead to asset loss. Contradictions and requirements violations. Major deviations from best practices are also in this category. |
Low | Major deviations from best practices or major Gas inefficiency. These issues will not have a significant impact on code execution. |
Severity
- Critical
Description
- Critical vulnerabilities are usually straightforward to exploit and can lead to the loss of user funds or contract state manipulation.
Severity
- High
Description
- High vulnerabilities are usually harder to exploit, requiring specific conditions, or have a more limited scope, but can still lead to the loss of user funds or contract state manipulation.
Severity
- Medium
Description
- Medium vulnerabilities are usually limited to state manipulations and, in most cases, cannot lead to asset loss. Contradictions and requirements violations. Major deviations from best practices are also in this category.
Severity
- Low
Description
- Major deviations from best practices or major Gas inefficiency. These issues will not have a significant impact on code execution.
Potential Risks
The "Potential Risks" section identifies issues that are not direct security vulnerabilities but could still affect the project’s performance, reliability, or user trust. These risks arise from design choices, architectural decisions, or operational practices that, while not immediately exploitable, may lead to problems under certain conditions. Additionally, potential risks can impact the quality of the audit itself, as they may involve external factors or components beyond the scope of the audit, leading to incomplete assessments or oversight of key areas. This section aims to provide a broader perspective on factors that could affect the project's long-term security, functionality, and the comprehensiveness of the audit findings.
Appendix 2. Scope
The scope of the project includes the following smart contracts from the provided repository:
Scope Details | |
|---|---|
| Repository | https://github.com/echo-proto/bridge-iota→ |
| Initial Commit | 686e118 |
| Final Commit | 89ffe35 |
| Whitepaper | N/A |
| Requirements | https://github.com/echo-proto/bridge-iota→ |
| Technical Requirements | https://github.com/echo-proto/bridge-iota→ |
Scope Details
- Initial Commit
- 686e118
- Final Commit
- 89ffe35
- Whitepaper
- N/A
- Requirements
- https://github.com/echo-proto/bridge-iota→
- Technical Requirements
- https://github.com/echo-proto/bridge-iota→
Assets in Scope
Appendix 3. Additional Valuables
Additional Recommendations
The smart contracts in the scope of this audit could benefit from the introduction of automatic emergency actions for critical activities, such as unauthorized operations like ownership changes or proxy upgrades, as well as unexpected fund manipulations, including large withdrawals or minting events. Adding such mechanisms would enable the protocol to react automatically to unusual activity, ensuring that the contract remains secure and functions as intended.
To improve functionality, these emergency actions could be designed to trigger under specific conditions, such as:
Detecting changes to ownership or critical permissions.
Monitoring large or unexpected transactions and minting events.
Pausing operations when irregularities are identified.
These enhancements would provide an added layer of security, making the contract more robust and better equipped to handle unexpected situations while maintaining smooth operations.