Resolving Disputes
Resolve disputes by generating txo confirmations from the sender and validating them on the receiver
In some cases when sending a transaction, the recipient will report not having received the transaction. Please use the following steps to triage and resolve disputes.
Verify Transaction Success
First, verify whether the transaction was a success by examining the transaction_log for the transaction using the get_transaction_log endpoint, which will provide an example result as below:
{
"id":"01cf3c1a5ac2a6b884ef81c1bdd2191a3860d59158118b08f1f8f61ec3e09567",
"account_id":"d43197097fd50aa944dd1b1025d4818668a812f794f4fb4dcf2cab890d3430ee",
"input_txos":[
{
"txo_id":"fa737a8e65e480fc7f75dbc17e6875b75cf4b14f3cde02b49b8cd8921fdf7dbb",
"amount":{
"value":"5999600000000",
"token_id":"0"
}
}
],
"output_txos":[
{
"txo_id":"454c511ddab33edccc4b686b67d1f9a6c4eb101c28386e0f4e21c994ea35aa2f",
"public_key":"728e73bd8675562ab44dea5c2b0edd4bfdf037a73d4afd42267442337c60f73b",
"amount":{
"value":"1234600000000",
"token_id":"0"
},
"recipient_public_address_b58":"41mZTnbwQ3E73ZrPQnYPdU7G6Dj3ZrYaBkrcAYPNgm61P7gBvzUke94HQB8ztPaAu1y1NCFyUAoRyYsCMixeKpUvMK64QYC1NDd7YneACJk"
}
],
"change_txos":[
{
"txo_id":"34f8a29a2fdd2446694bf175e533c6bf0cd4ecac9d52cd793ef06fc011661b89",
"public_key":"3c0225fab2d6df245887b7acebf22c238ffafa54842ab2663ac27833975a2212",
"amount":{
"value":"4764600000000",
"token_id":"0"
},
"recipient_public_address_b58":"f7YRA3PsMRNtGaPnxXqGE8Z6eaaCyeAvZtvpkze86aWxcF7a4Kcz1t7p827GHRqM93iWHvqqrp2poG1QxX4xVidAXNuBGzwpCsEoAouq5h"
}
],
"value_map":{
"0":"1234600000000"
},
"fee_amount":{
"value":"400000000",
"token_id":"0"
},
"submitted_block_index":"1352852",
"tombstone_block_index":"1352860",
"finalized_block_index":"1352852",
"status":"succeeded",
"sent_time":null,
"comment":""
}Confirm Status and Block Index
For a successful transaction, the status is succeeded, and the finalized_block_index is populated.
Confirm Recipient Address
The output_txos for the transaction contain details about the txo itself, including the value and token_id. The recipient_public_address_b58 specifies the address to which the amount was sent.
Confirm with the Block Explorer
You can use the txo_id from the output_txos to get more information about the specific txo over which there may be a dispute, with the get_txo endpoint.
You can use the public_key to confirm with the block explorer. The MobileCoin Foundation hosts a public block explorer at https://block-explorer.mobilecoin.foundation/.
For the example above, we can go to the block index indicated in the transaction_log: 318163, here: https://block-explorer.mobilecoin.foundation/blocks/318163, and scroll down to the Transaction Outputs section, where we see the public key 8e279a2326d585a9c8b24c0b3c9d356e63f1c4276b22bb97f25b45bb58ec810d (with the prefix 0a20 removed)
Provide Confirmation Receipt to the Receiver
After you have confirmed that the transaction_log indicates that you sent the transaction to the correct recipient, and you confirmed that the transaction outputs are in the blockchain, the next step of dispute resolution involves providing a cryptographic proof that you created the transaction, called a confirmation. You can follow the steps below to create a confirmation:
Sender Provides the TXO Confirmations
Using the
transaction_log_idobtained from the previous step, callget_confirmationsThis will return a response that has an array of confirmations.
For the TXO that you wish to confirm, this is where you would send the recipient the
txo_idtxo_indexandconfirmationfor each txo you wish to have them validate.
Receiver Validates the TXO Confirmation
For each of the confirmations generated in the previous step, call
validate_confirmationusing theaccount_idof receiving account.
If all is successful, you should have gotten a response with a result of "validated": true
Last updated
Was this helpful?