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:
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.
The precision of the value of the txo depends on which token it is. To see more info about the precision of each token and what token are supported, check out our Supported Tokens page.
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_id
obtained from the previous step, callget_confirmations
This will return a response that has an array of confirmations.
In most cases, there will only be 1 confirmation, but if you created a multi-output transaction there will be more (1 for each output txo).
For the TXO that you wish to confirm, this is where you would send the recipient the
txo_id
txo_index
andconfirmation
for 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_confirmation
using theaccount_id
of receiving account.
If all is successful, you should have gotten a response with a result of "validated": true
Last updated