ClementineAggregator service orchestrates the Clementine protocol by coordinating verifiers, operators, and watchtowers for deposits, withdrawals, and system setup.
GetNofnAggregatedXonlyPk
Returns the aggregated n-of-n x-only public key and number of verifiers. Request:Empty
Response: NofnResponse
Aggregated n-of-n x-only public key
Number of verifiers participating
GetCompatibilityDataFromEntities
Returns compatibility data from all entities (operators, verifiers, aggregator). Request:Empty
Response: EntitiesCompatibilityData
Compatibility data from each entity
GetCompatibilityParams
Returns protocol parameters that affect contract transactions, Citrea syncing, and version compatibility. Request:Empty
Response: CompatibilityParamsRPC
Protocol parameter set in JSON format
Security council configuration
Citrea chain identifier
Current Clementine version
Bridge circuit constant value
SHA256 BitVM cache data
Setup
Sets up the system of verifiers, watchtowers, and operators. Request:Empty
Response: VerifierPublicKeys
Array of verifier public keys
- Collects verifier keys from each verifier
- Distributes these verifier keys to all verifiers
- Collects all operator configs from each operator
- Distributes these operator configs to all verifiers
NewDeposit
Creates a new deposit by orchestrating the MuSig2 signing protocol across all verifiers. Request:Deposit
User’s deposit UTXO
New original deposit request details
Replacement deposit details
RawSignedTx
Raw signed move-to-vault transaction
- Calls
DepositNonceGenfor every verifier - Aggregates nonces and sends to
DepositSign - Aggregates partial signatures and sends to
DepositFinalize - Calls operator to get their signatures
- Collects partial signatures and creates the move-to-vault transaction
Withdraw
Initiates a withdrawal by calling withdraw on specified operators or all operators. Request:AggregatorWithdrawalInput
Withdrawal parameters with optional verification signature
List of operator x-only public keys to send withdrawal request to. If empty, sends to all operators.
AggregatorWithdrawResponse
Response from each operator
OptimisticPayout
Performs an optimistic payout to reimburse a peg-out from Citrea. Request:OptimisticWithdrawParams
Withdrawal parameters
ECDSA signature from Citrea/aggregator for manual verification
RawSignedTx
Raw signed optimistic payout transaction
InternalSendTx
Sends a pre-signed transaction to the network. Request:SendTxRequest
Raw signed transaction
Fee payment methodOptions:
CPFP- Child-Pays-For-ParentRBF- Replace-By-FeeNO_FUNDING- No additional fee funding
Empty
SendMoveToVaultTx
Sends a move-to-vault transaction to the network. Request:SendMoveTxRequest
Raw signed move-to-vault transaction
Associated deposit outpoint
Txid
Transaction ID of the broadcasted move-to-vault transaction
GetEntityStatuses
Returns the current status of all operators and verifiers. Request:GetEntityStatusesRequest
If true, restart stopped tasks on entities before returning status
EntityStatuses
Status information for each entity
InternalGetEmergencyStopTx
Creates emergency stop transactions without broadcasting them. Request:GetEmergencyStopTxRequest
Array of transaction IDs to create emergency stop transactions for
GetEmergencyStopTxResponse
Array of transaction IDs
Array of encrypted emergency stop transactions (approximately 3 sat/vbyte fee)
Transactions are not broadcasted. Set
add_anchor to true to add an anchor output for CPFP.Vergen
Returns version and build information. Request:Empty
Response: VergenResponse
Version and build information string