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
repayFunds
andrebalanceFunds
at theHubPool
, initiating the compution of -the aggregate amount to repay each filler, and
the amount to transfer from a
SpokePool
with surplus fund to one in deficit to ensure sufficient funds for settling repayments to fillers.
Checks the state balance at the
HubPool
with theSpokePools
to ensure the accuracy of the repayment and rebalancing system.Calls
repayFunds
andrebalanceFunds
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:
Controlling repayments and rebalancing - the
HubPool
collects 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
Deposit
andFill
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:
After fillers initiated a
CrossChainOrder
, the Spoke Pool on the origin chain receives the funds from the User as an escrow, and emits aDeposit
message to Iris;After fillers initiated a
fillOrder
, the Spoke Pool on the destination chain releases funds to the user and emits aFill
message to Iris;It repays to fillers and transfer funds to other Spoke Pools according to the
repayFunds
andrebalanceFunds
instructions.
Last updated