Players in CCTP Express

Users

An user is the player who initiate a transaction. He signs an off-chain message that indicate the details of the order, and the necessary funds will be transferred to the source chain SpokePool once a CrossChainOrder is initiated by any filler.

Fillers

Fillers listen to the orders disseminated from the mempool. They initiate a CrossChainOrder on source chain SpokePool and fillOrder on the destination chain SpokePool with necessary funds.

Fillers save transaction time and cost for users, they earn filler fees from the gas fee saved for the users. They get funds repaid at the destination chain.

Running a filler is permissionless. Developers can run the open source filler software or build their own.

Iris

Iris is the off-chain attestation service developed by Circle team that facilitates message passing in its Generalized Message Passing procedure adopted by CCTP. Message passing is a three-step process:

  1. An on-chain component on source domain emits a message.

  2. Iris signs the message.

  3. The on-chain component at the destination domain receives the message, and forwards the message body to the specified recipient.

Datadaemon

Datadaemon is an off-chain player that maintain the stability and functionality of the system, which:

  1. Calls repayFunds and rebalanceFunds at the HubPool, initiating the compution of -

    1. the aggregate amount to repay each filler, and

    2. the amount to transfer from a SpokePool with surplus fund to one in deficit to ensure sufficient funds for settling repayments to fillers.

  2. Checks the state balance at the HubPool with the SpokePools to ensure the accuracy of the repayment and rebalancing system.

  3. Calls repayFunds and rebalanceFunds at SpokePools and provides merkle root hash with transaction details, which executes funds repayment and rebalancing.

Datadaemon is a decentralized player where anyone can run the software.

Hub Pool

The Hub Pool is a smart contract deployed on the settlement chain. It performs below functions:

  1. Controlling repayments and rebalancing - the HubPool collects attestations from Iris, it determines the aggregate amounts to repay to fillers and rebalance between SpokePools. (See Step#7 of CCTP Express Architecture)

  2. Data Availability Layer - it collects and stores all Deposit and Fill attestations from Iris, which represents all transactions processed by fillers in the system. They are made available to everyone.

Spoke Pool

Spoke Pools are the smart contracts deployed on every supported chain to perform below functions:

  1. After fillers initiated a CrossChainOrder, the Spoke Pool on the origin chain receives the funds from the User as an escrow, and emits a Deposit message to Iris;

  2. After fillers initiated a fillOrder, the Spoke Pool on the destination chain releases funds to the user and emits a Fill message to Iris;

  3. It repays to fillers and transfer funds to other Spoke Pools according to the repayFunds and rebalanceFunds instructions.

Last updated