Skip to main content

contracts_accept_proposal

Accepts an escrow contract proposal received by this wallet, contributing side B's pledge and activating the contract.

This call is made by side B (normally the seller), the party that received the proposal. It completes and broadcasts the two-of-two multisig escrow transaction prepared by side A, which moves the contract from state 1 (proposal sent) to state 2 (contract accepted). The contract must currently be in state 1, otherwise the call fails.

Request

{
"jsonrpc": "2.0",
"id": 0,
"method": "contracts_accept_proposal",
"params": {
"contract_id": "b6f2c3d18e47a05b9c2d4e6f81a30b57cd94e2f16a8b0c37d5e19f4a2b6c08d3",
"acceptance_fee": 10000000000
}
}

Request parameters

  • contract_id - string; hex-encoded identifier of the contract being accepted, as reported by contracts_get_all. It is the id of the multisig output that holds the escrowed coins.
  • acceptance_fee - unsigned int; fee paid by side B for the acceptance transaction, in atomic units (1 coin = 10^12 atomic units). This is separate from the release fee (b_fee) that side A reserved inside the escrow template when sending the proposal.

Side B's pledge amount is not passed here — it is taken from the contract's private details as agreed in the proposal, and the corresponding coins are spent from this wallet by the acceptance transaction.


Response

{
"id": 0,
"jsonrpc": "2.0",
"result": {}
}

Response information

The result object is empty. A successful call means the acceptance transaction was built, signed and broadcast; failures are reported as a JSON-RPC error. Poll contracts_get_all to observe the contract switching to state 2 (contract accepted) once the transaction is confirmed.