- November 3, 2025
OpenZeppelin Security
OpenZeppelin Security
Security Audits
Summary
Type: DeFi / Stablecoin
Timeline: March 10, 2025 → March 10, 2025
Languages: Solidity, JavaScript, TypeScript
Findings
Total issues: 3 (0 resolved)
Critical: 0 (0 resolved)
High: 0 (0 resolved)
Medium: 0 (0 resolved)
Low: 1 (0 resolved)
Notes & Additional Information
2 notes raised (0 resolved)
Scope
OpenZeppelin conducted a differential audit of the Everdawn-Labs/usdt0-oft-contracts repository at pull request #63 and the Everdawn-Labs/usdt0-tether-contracts-hardhat repository at pull request #42.
The audit scope included the following files:
 usdt0-tether-contracts-hardhat
└── contracts
    ├── Tether
    |   └── TetherToken.sol
    └── Wrappers
        ├── ArbitrumExtension.sol
        ├── HyperliquidExtension.sol
        ├── OFTExtension.sol
        └── interfaces
            └── IERC7802.sol
usdt0-oft-contracts
└── contracts
    ├── OUpgradeable.sol
    └── interfaces
        └──IERC7802.sol
System Overview
USDT0 is an ERC-20 wrapper for Tether (USDT) that integrates with LayerZero's Omnichain token format, called Omnichain Fungible Token (OFT). This allows simple and seamless cross-chain transfers from the token itself. The goal of these pull requests is to update USDT0 and its chain-specific implementations to conform to the draft ERC-7802 Crosschain Token Interface Standard.
Security Model and Trust Assumptions
This being a diff audit, we assume that the core interactions and assumptions of the contracts that were unchanged are effective, robust, and secure. This includes the LayerZero infrastructure and the greater portion of the USDT0 contract code. There is an owner role in the system that allows the changing of critical functionality in the contracts. We assume that this owner will act competently and in good faith.
Low Severity
EIP-165 Conformity
EIP-165 specifies that the supportsInterface function must return true for all interfaces a contract implements. The TetherTokenOFTExtension and ArbitrumExtensionFlattened implementations will both return true for ERC-7802 and ERC-165, but they also implement ERC-20, ERC-3009, ERC-173, and ERC-2612 (TetherTokenOFTExtension only) for which they do not return true.
Consider returning true for the additional implemented interfaces as well.
Update: Acknowledged, not resolved.
Notes & Additional Information
Code Cleanliness
It is considered a good practice to have file names match the contract names and having one contract per file. This clarifies intention and makes the codebase easier to search/understand.
Consider renaming OFTExtension.sol to TetherTokenOFTExtension.sol and splitting ArbitrumExtension.sol into its constituent, self-named parts.
Update: Acknowledged, not resolved. The Everdawn team stated:
Acknowledged. We would prefer not to split
ArbitrumExtensionto eliminate confusion with similarly named contracts.
Missing Documentation
In HyperliquidExtension.sol, the transferWithHop function enables transferring ERC-20 tokens to HyperCore through HyperEVM. In addition, the owner can call the setTrusted function to whitelist any account which will be allowed to perform such transfers.
Consider adding documentation for transferWithHop as its functionality pertains to specific concepts of the Hyperliquid chain. In addition, consider documenting the entities which are expected to be registered as trusted via setTrusted.
Update: Acknowledged, not resolved.
Conclusion
OpenZeppelin audited the recent changes made to Everdawn's USDT0 token that aim to make it compliant with ERC-7802. The deployment scripts for the Corn Chain support were also reviewed. One low-severity issue regarding full compliance with ERC-165 standard was identified. In addition, a few recommendations aimed at improving the clarity and readability of the codebase were also made. The audit team is grateful to Everdawn as a partner and looks forward to their project's success.
Ready to secure your code?