Scam Protection Reversing Transactions

I need to be able to reverse transactions or something along these lines to protect against fraud
:computer: Environment
Just the StandardToken design using ERC20 in remix

:memo:Details
Not sure how to implement this

:1234: Code to reproduce

pragma solidity ^0.6.10;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor (string memory name, string memory symbol)
        ERC20('sampletoken', 'smt')
        public
    {
        _mint(msg.sender, 1000000 * 10 ** uint(decimals()));
    }
}
1 Like

Hi @exosquad,

Welcome to the community :wave:

Can you provide more detail on what you are trying to do?

Hi,

Thank you! I’m glad to be here. I’m not sure what happened to my original post, but I am just wondering if there is a way to protect my coin from fraudsters, because I plan on using my coin for people to buy things online from one another. If someone were to be scammed I would like to be able to reverse the transaction so they could recover their losses.

Thank you for your time and consideration!

1 Like

Sounds like you need a function just like blacklist in some stablecoin, such as USDC, but this is only useful when the token in the scammer wallet, if he swaps the token to another token, there is nothing you can do.

1 Like

Hi @exosquad,

As @Skyge says, adding a block or a deny list only works if the tokens are still being held by that user and haven’t been used/exchanged for something else.

Though where possible you would ideally design without needing a centralized trusted party.

You may be better to look at some form of escrow: https://docs.soliditylang.org/en/v0.7.5/solidity-by-example.html#safe-remote-purchase and https://docs.openzeppelin.com/contracts/3.x/api/payment#escrow

Hi @exosquad,

Did you have any more questions?