XIP-17

Wormhole for Deposits

authorAxe, Kain
typeintegration-upgrade
networkEthereum & Base & Optimism
statusImplemented
created2024-02-05
updated2024-02-05

Proposal Summary

This XIP proposes the use of Wormhole CCTP for processing deposits.

Specification

Overview

We propose using Wormhole CCTP to process Infinex deposits. This implementation still relies on the Circle CCTP bridge but adds the security of the Wormhole decentralized guardians to validate transactions.

Rationale

While it would have been possible to rely only on CCTP for USDC bridging, many more assets are expected to be added to Infinex over the coming months. Using the Wormhole CCTP wrapper ensures these assets will conform to the same bridging process, reducing the complexity of future asset integrations.

Technical Specification

Building on from XIP-6, the flow is expanded with the following:

Instead of calling the Circle CCTP contracts, the deposit account now calls the Wormhole Circle integration. This takes an additional payload in which we specify the recipient of the token. The Wormhole contract transfers the tokens to itself, verifies the payload and parameters emits a message, and calls the Circle CCTP contract, which in turn burns the tokens, and emits a message.

In addition to calling Circle to get the attestation of the CCTP message, we also call Wormhole which uses its decentralized guardians to verify the Wormhole message and provide attestation.

Instead of calling the Circle CCTP contract on the target chain, we now call the Infinex account which is the intended recipient. This is required as wormhole only allows transfers from and to the same address, this also provides additional security and surety that the funds are going to the intended account. Wormhole verifies the attestation, and calls Circle CCTP, which in turn validates its attestation, before minting the tokens to the intended account.

This diagram details the updated cross-chain flow for a deposit:

Unfortunately, due to the account to account check, the withdrawal flow will still have to be processed via Circle CCTP, as we do not have the ability to ensure that the recipient will call the Wormhole contract with the necessary attestation.

Test Cases

The flow has been tested on Sepolia and Base Sepolia.

Copyright

Copyright and related rights waived via CC0.

Contribute to Proposals on GitHub