Recently I came across a situation: a payment was executed by a customer on a site but then the consumer changed his mind.

What levels of transaction revert of such activity can be done?

e.g. X invested a coin into a dubious looking site and now there is no response from the site or site is taken down and site owner disappeared. Now what next can be done?

Can a smart contract react to such situations where I put a timeline for response to revert payment back?

3 Answers 3


Your question as to what levels of transaction revert of such activity can be done is an a way the question: what provisions should be in a contract for this of business. Although there are plenty of ways to create an appropriate contract, it remains a contract between parties that are expected to handle in good faith. And that may not be necessarily the case with the example you mentioned. That said: in the case of a ongoing investment on could envision a type of contract which remains active for the whole duration of the investment and which includes a provision for the investor to request a return of the funds, e.g. first into escrow in preparation of a timely return after an agreed period. Of course this assumes that there are funds there to be returned ...

  • i agree with you. thanks
    – Amit
    Jul 11, 2021 at 13:30

There is no way to revert a payment. One of the core features of a blockchain is that it is immutable (unchangeable).

As for smart contracts, you could definitely write a script to hold the funds in escrow. This would allow the parties to verify that the goods were passed before the funds are handed over.

This still wouldn't be "revert"ing, but could protect the customer in a similar way.

  • thanks for response i understand, this will be interesting if we could figure out over time human error is the biggest error to resolve... may be we can create a system where we have a settlement layer or something similar. may be reach the person using human genome code to find the unique individual :-)
    – Amit
    Jul 8, 2021 at 7:27

In case the transaction is recorded to the ledger, under no circumstances the funds cannot be returned. A particular case in which funds may not be spent is a CLI command transaction forget. This command allows you to forget a pending transaction for a given wallet.

cardano-wallet transaction forget --port 8090 <WALLET_ID> <TX_ID>

A robust option when communicating with an unknown seller is always to use an escrow smart contract.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.