ClementineOperator service manages operator operations including withdrawals, reimbursements, deposit signing, and transaction creation.
GetXOnlyPublicKey
Returns the operator’s x-only public key. Request:Empty
Response: XOnlyPublicKeyRpc
The operator’s x-only public key
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
GetParams
Returns operator parameters including configuration and watchtower parameters. Called once by the aggregator during setup. Request:Empty
Response: stream OperatorParams
Operator’s configuration
Winternitz public keys for each kickoff UTXO (used to commit blockhash)
Unspent kickoff signatures
GetDepositKeys
Returns operator’s deposit keys including BitVM Assert Winternitz keys and challenge ACK hashes. Request:DepositParams
Deposit information
Participating actors (verifiers, watchtowers, operators)
Security council configuration
OperatorKeys
Winternitz public keys for each BitVM assert transaction
Hashes of preimages used to ACK watchtower challenges
GetCurrentStatus
Returns the current status of tasks running on the operator and their last synced heights. Request:Empty
Response: EntityStatus
Whether automation is enabled
Current wallet balance
Last synced height for transaction sender
Last synced height for finalized blocks
Last proven height for HCP
List of stopped background tasks
Current RPC tip height
Last synced height for Bitcoin syncer
Next height for state manager
Current Bitcoin fee rate in sat/vB
TransferToBtcWallet
Sends the given outpoints to the operator’s BTC wallet and broadcasts the transaction to the network. Request:Outpoints
Array of outpoints to transferEach outpoint must pay to the operator’s taproot address (x-only key, no merkle root). The method verifies that no outpoint is the operator’s collateral.
RawSignedTx
Raw signed transaction that transfers the outpoints to the operator’s BTC wallet address
DepositSign
Signs all transactions that include the operator’s burn connector. Request:DepositSignSession
User’s deposit information
Nonce metadata from all verifiers
stream SchnorrSig
Operator burn Schnorr signature
RestartBackgroundTasks
Restarts all background tasks for the operator. Request:Empty
Response: Empty
InternalWithdraw
Prepares a withdrawal if profitable and valid. Intended for operator’s own use without aggregator signature. Request:WithdrawParams
Withdrawal ID in Citrea
User’s
SinglePlusAnyoneCanPay signatureUser’s UTXO to claim the deposit
Withdrawal output’s script pubkey (signature is only valid for this pubkey)
Withdrawal output’s amount (signature is only valid for this amount)
RawSignedTx
Raw signed payout transaction
Withdraw
Prepares a withdrawal with optional verification signature. Checks verification address if configured. Request:WithdrawParamsWithSig
Withdrawal parameters
Optional ECDSA signature from Citrea/aggregator for authentication
RawSignedTx
Raw signed payout transaction
If verification address is set in operator config, the signature is verified before processing the withdrawal.
GetReimbursementTxs
Determines the next step in the kickoff process and returns raw signed transactions needed for the reimbursement process. Request:Outpoint
Transaction ID
Output index
SignedTxsWithType
Array of raw signed transactions that the operator needs to send next
Enables reimbursement process without automation.
InternalCreateSignedTxs
Creates and signs transactions for a given deposit and kickoff. Request:TransactionRequest
Deposit UTXO outpoint
Operator’s kickoff ID
SignedTxsWithType
Raw signed transactions (excludes asserts and watchtower challenge)
InternalCreateAssertCommitmentTxs
Creates all assert transactions (AssertBegin, MiniAsserts, AssertEnd), signs them, and returns the raw transactions. Request:TransactionRequest
Deposit UTXO outpoint
Operator’s kickoff ID
SignedTxsWithType
Raw signed assert transactions in order (AssertBegin, MiniAsserts, AssertEnd)
InternalFinalizedPayout
Finalizes a payout with the given blockhash. Request:FinalizedPayoutParams
Blockhash for the payout
Deposit outpoint
Txid
Transaction ID of the finalized payout
InternalEndRound
Ends the current round. Request:Empty
Response: Empty
Vergen
Returns version and build information. Request:Empty
Response: VergenResponse
Version and build information string