ClementineVerifier service handles verifier operations including parameter management, deposit signing, optimistic payouts, and transaction debugging.
GetParams
Returns verifier metadata. Called once per setup to retrieve the verifier’s public key. Request:Empty
Response: VerifierParams
The verifier’s 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
SetOperator
Saves operator information to the verifier’s database. Request:stream OperatorParams
Operator’s configuration details
Winternitz public keys for each kickoff UTXO (used to commit blockhash)
Unspent kickoff signatures
Empty
Usage: Called by aggregator during setup to distribute operator public keys to all verifiers.
SetOperatorKeys
Sets the operator’s Winternitz keys and challenge ACK hashes, saving them to the database. Request:OperatorKeysWithDeposit
Operator’s cryptographic keys
Deposit parameters containing deposit details, actors, and security council
Operator’s x-only public key
Empty
Usage: Called by aggregator during new deposit to distribute operator deposit information to all verifiers.
NonceGen
Generates nonces for a deposit signing session. Request:NonceGenRequest
Number of nonces to generate
stream NonceGenResponse
Initial response containing session metadata
Individual public nonce (streamed after first response)
DepositSign
Signs deposit transactions using aggregated nonces and the verifier’s secret nonce. Request:stream VerifierDepositSignParams
Initial deposit sign session containing deposit parameters and nonce responses
Aggregated nonce for signing
stream PartialSig
Partial signature for MuSig2 aggregation
OptimisticPayoutSign
Signs optimistic payout transactions with the given aggregated nonce and withdrawal information. Request:OptimisticPayoutParams
Optimistic withdrawal parameters
Nonce generation response
Aggregated nonce for signing
PartialSig
Partial signature for the optimistic payout
DepositFinalize
Verifies all signatures and signs the move-to-vault transaction. Request:stream VerifierDepositFinalizeParams
Deposit sign session data
Aggregated Schnorr signature
Aggregated nonce for move-to-vault transaction
Aggregated nonce for emergency stop transaction
VerifierDepositFinalizeResponse
Partial signature for move-to-vault transaction
Partial signature for emergency stop transaction
DebugTx
Retrieves the current state and history of a transaction for debugging purposes. Request:TxDebugRequest
Internal transaction ID to debug
TxDebugInfo
Transaction internal ID
Whether the transaction is currently active
Current state of the transaction
History of submission errors
UTXOs used for fee payment
Timestamp of transaction creation
Bitcoin transaction ID
Fee payment method (CPFP, RBF, etc.)
Total count of fee payer UTXOs
Count of confirmed fee payer UTXOs
Raw transaction bytes
Transaction metadata including deposit outpoint, operator, and transaction type
RestartBackgroundTasks
Restarts all background tasks for the verifier. Request:Empty
Response: Empty
InternalHandleKickoff
Checks if a kickoff transaction is malicious and attempts to punish the operator if necessary. Request:Txid
Bitcoin transaction ID to check
Empty
GetCurrentStatus
Returns the current status of tasks running on the verifier 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
InternalCreateSignedTxs
Creates and signs transactions for a given deposit and kickoff. Request:TransactionRequest
Deposit UTXO outpoint
Kickoff identifier
SignedTxsWithType
Array of signed transactions with their types
InternalCreateWatchtowerChallenge
Signs the verifier’s own watchtower challenge transaction for the corresponding kickoff. Request:TransactionRequest
Deposit UTXO outpoint
Kickoff identifier
RawTxWithRbfInfo
Raw signed transaction bytes
RBF (Replace-By-Fee) signing information
Vergen
Returns version and build information. Request:Empty
Response: VergenResponse
Version and build information string