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:
An on-chain component on source domain emits a message.
Iris signs the message.
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:
Calls
repayFundsandrebalanceFundsat theHubPool, initiating the compution of -the aggregate amount to repay each filler, and
the amount to transfer from a
SpokePoolwith surplus fund to one in deficit to ensure sufficient funds for settling repayments to fillers.
Checks the state balance at the
HubPoolwith theSpokePoolsto ensure the accuracy of the repayment and rebalancing system.Calls
repayFundsandrebalanceFundsat 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:
Controlling repayments and rebalancing - the
HubPoolcollects attestations from Iris, it determines the aggregate amounts to repay to fillers and rebalance betweenSpokePools. (See Step#7 of CCTP Express Architecture)Data Availability Layer - it collects and stores all
DepositandFillattestations 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:
After fillers initiated a
CrossChainOrder, the Spoke Pool on the origin chain receives the funds from the User as an escrow, and emits aDepositmessage to Iris;After fillers initiated a
fillOrder, the Spoke Pool on the destination chain releases funds to the user and emits aFillmessage to Iris;It repays to fillers and transfer funds to other Spoke Pools according to the
repayFundsandrebalanceFundsinstructions.
Last updated