Skip to main content
The Deposit model represents a user’s deposit UTXO and associated metadata in the Clementine protocol.

Deposit

Core deposit structure containing the deposit outpoint and deposit-specific data.
deposit_outpoint
Outpoint
required
User’s deposit UTXO
base_deposit
BaseDeposit
New original deposit request details (one of base_deposit or replacement_deposit)
replacement_deposit
ReplacementDeposit
Replacement deposit details (one of base_deposit or replacement_deposit)
A deposit contains either base_deposit for new deposits or replacement_deposit for deposits replacing existing move-to-vault transactions.

DepositParams

Complete deposit parameters including deposit details, actors, and security council configuration.
deposit
Deposit
required
Core deposit information
actors
Actors
required
Participating actors in the deposit
security_council
SecurityCouncil
required
Security council configuration

DepositSignSession

Session data for deposit signing including deposit parameters and nonce generation responses.
deposit_params
DepositParams
required
Complete deposit parameters
nonce_gen_first_responses
repeated NonceGenFirstResponse
required
Nonce generation initial responses from all verifiers
Used during the MuSig2 signing protocol to coordinate nonce generation across all verifiers.

DepositSignatures

Collection of tagged signatures for deposit transactions.
signatures
repeated TaggedSignature
required
Array of tagged signatures identifying the transaction input each signature is for

Outpoint

References a specific output of a Bitcoin transaction.
txid
Txid
required
Transaction ID (bytes)
vout
uint32
required
Output index (0-based)

Outpoints

Collection of multiple outpoints.
outpoints
repeated Outpoint
required
Array of outpoints

Txid

Bitcoin transaction identifier.
txid
bytes
required
32-byte transaction ID

Example Usage

Base Deposit

{
  "deposit_outpoint": {
    "txid": {"txid": "<32_bytes>"},
    "vout": 0
  },
  "base_deposit": {
    "evm_address": "<20_bytes_evm_address>",
    "recovery_taproot_address": "bc1p..."
  }
}

Replacement Deposit

{
  "deposit_outpoint": {
    "txid": {"txid": "<32_bytes>"},
    "vout": 1
  },
  "replacement_deposit": {
    "old_move_txid": {"txid": "<32_bytes>"}
  }
}

Build docs developers (and LLMs) love