GCAC Token Flip-Flop Step-by-Step Tutorial

GCACToken
5 min readMay 27, 2021

--

Flip-Flop allows Cross-Fi token holders to have the ability to transfer their tokens from the Ethereum Network (ERC-20) to the Binance Smart Chain (BEP-20). Binance Smart Chain is often shortened to BSC. The reason people transfer between chains is because Uniswap runs on the Ethereum Network, while Pancakeswap runs on the BSC, so transferring between the two is great for taking advantage of an arbitrage opportunity, or also to escape the sometimes crazy fees of Uniswap. Flip goes in the direction of ERC-20 to BSC, while flop goes in reverse.

Flip:

1. Send GCAC tokens you want to flip from ERC-20 to BEP-20 network to this address:

0x2ec7d593763eed26defa231b4c566252e2667a6b

2. Set up your Metamask wallet so that your can see your BSC tokens.

a. From the same address you just sent the tokens from, click on the profile picture and find settings at the bottom of the dropdown menu.

b. Click on Networks and Add Network

c. Input the following data:

Network Name: Smart Chain

New RPC URL: https://bsc-dataseed.binance.org/

Chain ID: 56

Currency Symbol (Optional): BNB

Block Explorer URL (Optional): https://bscscan.com

Once you save this, you will now be able to see the BSC version of your wallet address.

3. After a few minutes, your tokens will show up in your BSC wallet. You’ll also see a bit of BNB has been added by us to allow you to trade on Pancakeswap without the need to buy BNB for transactions fees.

Flop:

1. Once you decide to return your tokens back to the ERC-20 network, we will need to flop them. To do this, we will use MyEtherWallet.com.

2. Go to your Metamask and make sure you are still on the Smart Chain network.

3. On the MyEtherWallet.com homepage, click Access My Wallet, click MEW CX, and connect to the same Metamask address we have been using.

4. On the left-hand side, you will see Contract, and in the dropdown from that there is Interact with Contract. We will use this to burn the tokens on the BSC side.

5. Under Select an Item, choose TEST.

6. Enter the BSC contract address for GCAC instead of the TEST hash which shows up:

0x3a3ee21157906a17ee9775d37e7a8cb3d7df86d6

7. Where it says ABI/JSON Interface, clear what is there and copy and paste the following code into the textbox instead.

[

{

“inputs”: [],

“stateMutability”: “nonpayable”,

“type”: “constructor”

},

{

“anonymous”: false,

“inputs”: [

{

“indexed”: true,

“internalType”: “address”,

“name”: “owner”,

“type”: “address”

},

{

“indexed”: true,

“internalType”: “address”,

“name”: “spender”,

“type”: “address”

},

{

“indexed”: false,

“internalType”: “uint256”,

“name”: “value”,

“type”: “uint256”

}

],

“name”: “Approval”,

“type”: “event”

},

{

“anonymous”: false,

“inputs”: [

{

“indexed”: true,

“internalType”: “address”,

“name”: “previousOwner”,

“type”: “address”

},

{

“indexed”: true,

“internalType”: “address”,

“name”: “newOwner”,

“type”: “address”

}

],

“name”: “OwnershipTransferred”,

“type”: “event”

},

{

“anonymous”: false,

“inputs”: [

{

“indexed”: true,

“internalType”: “address”,

“name”: “from”,

“type”: “address”

},

{

“indexed”: true,

“internalType”: “address”,

“name”: “to”,

“type”: “address”

},

{

“indexed”: false,

“internalType”: “uint256”,

“name”: “value”,

“type”: “uint256”

}

],

“name”: “Transfer”,

“type”: “event”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “owner”,

“type”: “address”

},

{

“internalType”: “address”,

“name”: “spender”,

“type”: “address”

}

],

“name”: “allowance”,

“outputs”: [

{

“internalType”: “uint256”,

“name”: “”,

“type”: “uint256”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “spender”,

“type”: “address”

},

{

“internalType”: “uint256”,

“name”: “amount”,

“type”: “uint256”

}

],

“name”: “approve”,

“outputs”: [

{

“internalType”: “bool”,

“name”: “”,

“type”: “bool”

}

],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “account”,

“type”: “address”

}

],

“name”: “balanceOf”,

“outputs”: [

{

“internalType”: “uint256”,

“name”: “”,

“type”: “uint256”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [],

“name”: “decimals”,

“outputs”: [

{

“internalType”: “uint8”,

“name”: “”,

“type”: “uint8”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “spender”,

“type”: “address”

},

{

“internalType”: “uint256”,

“name”: “subtractedValue”,

“type”: “uint256”

}

],

“name”: “decreaseAllowance”,

“outputs”: [

{

“internalType”: “bool”,

“name”: “”,

“type”: “bool”

}

],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “spender”,

“type”: “address”

},

{

“internalType”: “uint256”,

“name”: “addedValue”,

“type”: “uint256”

}

],

“name”: “increaseAllowance”,

“outputs”: [

{

“internalType”: “bool”,

“name”: “”,

“type”: “bool”

}

],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [],

“name”: “name”,

“outputs”: [

{

“internalType”: “string”,

“name”: “”,

“type”: “string”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [],

“name”: “owner”,

“outputs”: [

{

“internalType”: “address”,

“name”: “”,

“type”: “address”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [],

“name”: “renounceOwnership”,

“outputs”: [],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [],

“name”: “symbol”,

“outputs”: [

{

“internalType”: “string”,

“name”: “”,

“type”: “string”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [],

“name”: “totalSupply”,

“outputs”: [

{

“internalType”: “uint256”,

“name”: “”,

“type”: “uint256”

}

],

“stateMutability”: “view”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “recipient”,

“type”: “address”

},

{

“internalType”: “uint256”,

“name”: “amount”,

“type”: “uint256”

}

],

“name”: “transfer”,

“outputs”: [

{

“internalType”: “bool”,

“name”: “”,

“type”: “bool”

}

],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “sender”,

“type”: “address”

},

{

“internalType”: “address”,

“name”: “recipient”,

“type”: “address”

},

{

“internalType”: “uint256”,

“name”: “amount”,

“type”: “uint256”

}

],

“name”: “transferFrom”,

“outputs”: [

{

“internalType”: “bool”,

“name”: “”,

“type”: “bool”

}

],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “newOwner”,

“type”: “address”

}

],

“name”: “transferOwnership”,

“outputs”: [],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “address”,

“name”: “who”,

“type”: “address”

},

{

“internalType”: “uint256”,

“name”: “amount”,

“type”: “uint256”

}

],

“name”: “mint”,

“outputs”: [],

“stateMutability”: “nonpayable”,

“type”: “function”

},

{

“inputs”: [

{

“internalType”: “uint256”,

“name”: “amount”,

“type”: “uint256”

}

],

“name”: “burn”,

“outputs”: [],

“stateMutability”: “nonpayable”,

“type”: “function”

}

]

8. Click Continue

9. Where it says “Select an Item”, scroll to the bottom where you will find Burn

10. Enter the amount of tokens you want to flop back to the Ethereum network, but make sure to remember that THIS COUNTS 18 DECIMALS, so 1 GCAC token is written as 1000000000000000000 (i.e. 18 zeros). You can leave the value in ETH as 0.

11. Once we have executed the burn function and confirmed it in our Metamask, all we need to do is send the flip address wallet (0x2ec7d593763eed26defa231b4c566252e2667a6b) ETH to cover the transaction costs. To find how much ETH we need to send, we can go to Abbey.ch and click Cross-Fi Flip Flop. This shows the most updated amount of ETH needed to cover the costs.

12. Once all these are completed, we will now see the GCAC tokens return to our ERC-20 side of our wallet!

--

--

GCACToken

Official Medium of the $GCAC token available on Uniswap