Use MyEtherWallet or Etherscan to manually mint and redeem Sets.
Anthony Sassano · Follow
Published in · 11 min read · Sep 23, 2019
--
Set Protocol has been built to be an open system that anyone can participate in. Currently, almost all of our users interact with Set through our TokenSets platform by using MetaMask, Fortmatic, or a Web3-enabled mobile wallet.
In the unlikely event that the TokenSets website is unavailable, users still retain the ability to interact with the Set Protocol smart contracts directly through the Ethereum blockchain.
In this guide, we’ll walk through how to use MyEtherWallet, Etherscan, and MetaMask to interact with the Set Protocol smart contracts directly in order to approve tokens, issue and redeem a Set.
Below is a list of the resources that we will be using to interact with the Set Protocol system.
Main Smart Contracts
- RebalancingSetIssuanceModule — This smart contract facilitates minting and redeeming of Sets
- TransferProxy — This smart contract facilitates transferring ERC-20 tokens for all transactions. Users who wish to utilize their tokens must authorize the TransferProxy contract to move their tokens.
- WETH Contract — This contract is used to wrap, unwrap, approve, and transfer WETH
- WBTC Contract — The Wrapped Bitcoin ERC-20 smart contract
- DAI Contract — The Dai ERC-20 smart contract
- USDC Contract — The USDC ERC-20 smart contract
- LINK Contract — The LINK ERC-20 smart contract
Set Smart Contracts (Robo Sets)
- ETH20SMACO | 0x9ea463Ec4cE9E9E5bc9cFd0187C4Ac3a70DD951D
- ETH50SMACO | 0xa360F2aF3F957906468c0FD7526391AeD08aE3DB
- ETH12EMACO | 0x2c5a9980B41861D91D30d0E0271d1c093452DcA5
- ETH26EMACO | 0x614857c755739354d68ae0abd53849cf45d6a41d
- BTCETH5050 | 0xc06aEc5191bE16b94FfC97B6Fc01393527367365
- BTCETH7525 | 0xA35Fc5019C4dc509394Bd4d74591a0bF8852c195
- ETHBTC7525 | 0xA6c040045d962e4B8eFa00954c7d23CCd0a2b8AD
- ETHMACOAPY | 0xeF0fDA1d4bd73DDC2f93A4e46E2E5aDBC2D668f4
- ETHEMAAPY | 0x316b13B951Efe25AAd1Cb565385B23869A7D4c48
- ETHBTCRSI | 0xbf70A33A13fBe8D0106Df321Da0Cf654d2E9Ab50
- ETHRSI6040 | 0x93E01899c10532d76C0E864537a1D26433dBbDdB
- ETHRSIAPY | 0x136faE4333EA36A24bb751E2d505D6ca4Fd9f00b
- ETHBTCEMACO | 0xB9FfE0b8Ee2d1Af94202FFED366520300748A4d8
- iETH50SMACO | 0xAC1565e473F69FAdA09661A6B4103FBbF801CeEE
- iETH20SMACO | 0x5cD487CE4dB7091292F2E914F7B31445Bd4A5E1b
- LINKETHRSI | 0x8933ea1Ce67B946BdF2436cE860fFBb53Ce814d2
- LINKRSICO | 0x0329d23fC7B1b1e6Cca57aFA3F0090F1189069e8
Set Smart Contracts (Social Trader Sets)
- LINKPT | 0x78E29d35573beA6265aEDfCb9F45481B717EBFdE
- ETHDAIS | 0xa12a696B9B11788076A6cb384CAc6986b82545E1
- FART | 0xffEE21B4Bb7084a9416205544101Ae9f472c7159
- COINBTC | 0xBddD682E63dd9f9fA3b97aEa88772E77cf3e5013
- 100W | 0xC7D79021CD127A2f35b1E26fe3c4aAD67f5c28b8
- LELOAP | 0x8a63bE90F095F6777be3Ed25D9fC7CD2a63DDb30
- EBLOAP | 0x253444bd9ECf11E5516d6D00974e91c9F0857CCB
- BLOAP | 0xe6404a4472E5222b440F8faFb795553046000841
- ELOAP | 0xC19216eea17b2f4DD677f1024CdA59C7D142F189
- INTRATIO | 0xBA8Ea15b647F54D9ff849670FcaAcF35Df21A457
- BBB | 0x58723C7Afcd33A2Db6Ae06C37521725D65F0cC15
- BBE | 0xF43B2f981eFC5a611a97951Ce4fd7d3Bd87f4902
- BTCUSDCRSI | 0xe0a84699a583d467001fcfE1d52930cF6f3b0BFa
- BYTE | 0xAC8Ea871e2d5F4Be618905F36f73c760f8cFDC8E
- BRRR | 0x8abf3a95862619A55fA00CB3e4eeDBe113ff468C
- ETHPA | 0x09E4BDFb273245063eF5E800D891eFF7d04f9B83
- ETHMOONX2 | 0x2Bf417FdA6E73B8Ea605DF0F33aD029F8d4b795A
- MFCK | 0x3E6941521c85C7233632BF76e3ADB05dB8e2F1db
- FLEXBTC | 0xCAE169AFDE69f297c7817ed5F4A6816C0E38137D
- SGW | 0x33319fAe07128119166476a4bcDd96E5c9401cA4
- FLEXETH | 0x654424F4b3ed6DE828C9CA30484dc1A626bb5fBA
- ETHMOONX | 0xB1CA7E6714263a64659A3a89E1C313af30fD660A
- BTCUSDCTA | 0xd218D75BA0fC45858a4E9EF57A257Ed9977dB5f4
- ETHUSDCTA | 0x1Ce9200C98b6D9999B60bFf53860475A993a8b68
- MFBT | 0x9709bb5CE25FCd6f9786d3E4cCf422717367473C
- GREED2 | 0x15822A64c8Cb27D7828C45E0aAFC3e6C5DeCd172
- INTBTC | 0xB32c960c46f28059C2B5F1C3eCC2b9DD77aB0aA0
- INTETH | 0x89C0b027bD7cc2D17854B06F8322e29451192CE3
- LINKETHPA | 0x542156d51D10Db5acCB99f9Db7e7C91B74E80a2c
- ETAS | 0x856c4388C56c2a613c60507a4701af627157Fed6
- ETA | 0x1003eC54F51565fF86Ac611184Ea23d6310CaE71
- ETH10K | 0xAbC754aC2161B557D28062F41DcC0fc18440ac7E
Set Smart Contracts (Legacy Sets)
- ETHMOONX | 0x73104e9d3Da91e410A6c211068f7BFfabBbD3e26
- ETHUSDADL4 | 0xB8243B4eeca27A4191e879760b88fE2270561796
- INTETH | 0x7b8d9e95cAa85d7905c3435dA1bA9FA7f79bf4fA
- BBB | 0x78E14B9A8D006eC7E23988a0A87263569c3F4839
- BTCMOON | 0x09aE0c4c34A09875660E681FE1890F3b35175151
- INTBTC | 0xd235e29B1dd177cd74F2955d081204A6cd04515e
- GREED | 0x5958107be1Ecc8D0D1593b3d7cC75F5E48304682
- BTCMOONX | 0x90f49083ff588ec5a5459F4D2A64B8D409C03122
- EVOL | 0xaC6560DF686F3ac7039B0DD6867C874c99D9dA06
- TLS | 0xdc5BBCF8189a69337f693A9f3F63Ae37789eDe92
- FLEXETH | 0x8D66DF717FAF06c07b5D3E53FFD3eA66D612e150
- ICHIEMA | 0xe86811516F9E46F6F2a8a19754c893deD414D682
- FLEXBTC | 0xCf50bc1442A50D1756b34119fE1E26325Aa648e3
- FLEXETHBTC | 0xdBf5c7D8ac5007667617a15DB2c1B1D616c9D302
- RIC (TON) | 0xb272422B7d07B94859AD61E4435c6d5087f308de
- LONG | 0x28C6A58C2A5d8c5F6681e07bfa0AdA4bea14C9EE
- BTCUSDCRSI | 0xe33A35fD5cad21cE72ebbC8a2885Bdd0983De043
- BBE | 0x8C7C047051F37746BB1DCD16ae37851a3891635C
- ETHUSDCTA | 0xD9c6d58eC4b6045067190042999351889fd27Eb7
- BTCUSDCTA | 0x80AF3F06AefB9F436981cb12b9Da35c5dA023Efd
- ETHSS | 0xDD7ae9466C9CaAD4bF632F796EAF4287F9616A7a
- ETA | 0xaAa4eB35D08Dbb9b1B8760cb9fFE77b9023D7511
- ETHMINVOL | 0xF1E5F03086e1c0Ce55E54cd8146BC9c28435346F
- ETHLOVOL | 0x585C2cF94c41b528ec7329CBc3cdE3C4f8d268dB
- ETHHIVOL | 0x8Ddc86DbA7ad728012eFc460b8A168Aba60B403B
- BTCHIVOL | 0x6123A0CBC95Cb157995A0795187A60995B85e0A9
- BTCMINVOL | 0x81c55017F7Ce6E72451cEd49FF7bAB1e3DF64d0C
- BTCLOVOL | 0x20649d97b1393105cf92a5083fd2afF7C99eBe56
This guide will walk you through how to use Etherscan to interact with Set Protocol.
Approving Tokens for Use with Set Protocol
In order to mint a Set manually, we first need to approve your tokens for use with the system:
- Head to the Etherscan contract page for the asset that you’d like to supply (links found in the Resources section above)
- For simplicity, we’ll only be approving WETH and USDC in this tutorial as the same steps can be repeated for each other asset. Important note: approving USDC through Etherscan is not functional at this time — please follow the guide below on how to approve USDC using MyEtherWallet.
- To start the WETH approval process, head to https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2#writeContract
- Ensure that you have a greater than zero balance of WETH tokens in your wallet
- At the top of this box you will see a Write Contract Connect to Web3 field — click Connect to Web3 and approve the MetaMask prompt if it appears, then click OK on the pop-up window. Once connected, the dot next to Write Contract will turn green
- In the approve window pane, enter the TransferProxy contract address ( 0x882d80D3a191859d64477eb78Cca46599307ec1C) in the Guy (address) field
- In the Wad (uint256) field, enter the number of WETH tokens that you’d like to approve and multiply it by 10**18. The second number represents the decimal places of the ERC-20 token that you’re transferring. In this case, WETH has 18 decimal places.
Use this formula: ((number of WETH tokens to transfer) * (10**18)).Example: If you want to transfer 10 WETH tokens, use the formula ((10) * (10**18)).If you want to approve a different token, simply check the Etherscan page of the token and look for the Decimals field.To simply approve all of your WETH tokens, input a value of -1.
- Click the Write button and you will be prompted by MetaMask to approve the transaction.
- Once the transaction is complete, your tokens can now be used within Set Protocol.
For this section, we’ll be using the RebalancingSetIssuanceModule smart contract to manually mint an ETH20SMACO Set. It’s important to make sure that you have enough WETH in order to mint the amount of Sets you input in the _rebalancingSetQuantity (uint256) field, and that it’s within the amount of WETH that you approved for transfer.
- Head to https://etherscan.io/address/0xceda8318522d348f1d1aca48b24629b8fbf09020#writeContract
- At the top of this box you will see a Write Contract Connect to Web3 field — click Connect to Web3 and approve the MetaMask prompt if it appears, then click OK on the pop-up window. Once connected, the dot next to Write Contract will turn green
- In the issueRebalancingSet window pane, enter the address of the Set that you want to issue into the _rebalancingSetAddress (address) field. For this example, we’ll use the ETH20SMACO address ( 0x9ea463Ec4cE9E9E5bc9cFd0187C4Ac3a70DD951D)
- In the _rebalancingSetQuantity (uint256) field, enter the amount of ETH20SMACO Set that you would like to mint followed by 18 zeros (for example, 1000000000000000000 means 1 ETH20SMACO Set). All Sets have 18 decimal places, so you can assume issuance amounts will be the amount you want to issue times 10**18.
- Enter true into the _keepChangeInVault (bool) field. This is to keep the collateral Set dust (fractions of a cent) from spamming your wallet. You will always be able to withdraw the dust anytime.
- Click Write
- The ETH20SMACO Sets will now be minted using the collateral you supply to the contract, and transferred to the address you used to make the transaction.
For this section, we’ll be using the RebalancingSetIssuanceModule smart contract to manually sell an ETH20SMACO Set. Redeeming a Set is the process of reclaiming a Set’s underlying components tokens back into your wallet.
- Head to https://etherscan.io/address/0xceda8318522d348f1d1aca48b24629b8fbf09020#writeContract
- At the top of this box you will see a Write Contract Connect to Web3 field — click Connect to Web3 and approve the MetaMask prompt (if it appears) then click OK on the pop-up window. Once connected, the dot next to Write Contract will turn green
- In the redeemRebalancingSet window pane, enter the address of the Set that you want to redeem into the _rebalancingSetAddress (address) field. For this example, we’ll use the ETH20SMACO address ( 0x9ea463Ec4cE9E9E5bc9cFd0187C4Ac3a70DD951D)
- In the _rebalancingSetQuantity (uint256) field, enter the amount of ETH20SMACO Set that you would like to mint followed by 18 zeros (for example, 1000000000000000000 means 1 ETH20SMACO Set). All Sets have 18 decimal places, so you can assume issuance amounts will be the amount you want to issue times 10**18.
- Enter true into the _keepChangeInVault (bool) field. This is to keep the collateral Set dust (fractions of a cent) from spamming your wallet. You will always be able to withdraw the dust anytime.
- Click Write
- Your ETH20SMACO Sets will be unwrapped and the underlying assets will now be transferred to the address you used to make the transaction.
This guide will walk you through how to use MyEtherWallet to interact with Set Protocol.
Approving WETH for Use with Set Protocol
In order to mint a Set manually, we first need to approve your tokens for use with the system. For simplicity, we’ll only be approving WETH and USDC in this tutorial as the same steps can be repeated for each other asset.
- Head to https://www.myetherwallet.com/interface/interact-with-contract (make sure that you’re logged in with your Ethereum account)
- Ensure that you have a greater than zero balance of WETH tokens in your wallet
- Copy and paste the WETH contract address ( 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) into the Contract Address field and then copy and paste the WETH contract ABI into the ABI/JSON Interface field. The contract ABI is located here.
- Click Continue
- In this interface, select the approve menu item from the drop-down menu and enter the TransferProxy contract address ( 0x882d80D3a191859d64477eb78Cca46599307ec1C) in the Guy (address) field
- In the Wad (uint256) field, enter the number of WETH tokens that you’d like to approve and multiply it by 10**18. The second number represents the decimal places of the ERC-20 token that you’re transferring. In this case, WETH has 18 decimal places. To approve all of your WETH, input a value of -1.
Use this formula: ((number of WETH tokens to transfer) * (10**18)).Example: If you want to transfer 10 WETH tokens, use the formula ((10) * (10**18)).If you want to approve a different token, simply check the Etherscan page of the token and look for the Decimals field.
- Enter 0 into the Value in ETH field
- Click the Write button and you will be prompted by MetaMask to approve the transaction
- Once approved, your tokens can now be used within Set Protocol
Approving USDC for Use with Set Protocol
- Head to https://www.myetherwallet.com/interface/interact-with-contract (make sure that you’re logged in with your Ethereum account)
- Ensure that you have a greater than zero balance of USDC tokens in your wallet
- Copy and paste the USDC contract address ( 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48) into the Contract Address field and then copy and paste the ERC20 contract ABI into the ABI/JSON Interface field. The contract ABI is located here.
- Click Continue
- In this interface, select the approve menu item from the drop-down menu and enter the TransferProxy contract address ( 0x882d80D3a191859d64477eb78Cca46599307ec1C) in the _spender (address) field
- In the _value (uint256) field, enter the number of USDC tokens that you’d like to approve and multiply it by 10**6. The second number represents the decimal places of the ERC-20 token that you’re transferring. In this case, USDC has 6 decimal places. To approve all of your USDC, input a value of -1.
Use this formula: ((number of USDC tokens to transfer) * (10**6)).Example: If you want to transfer 100 USDC tokens, use the formula ((100) * (10**6)).If you want to approve a different token, simply check the Etherscan page of the token and look for the Decimals field.
- Enter 0 into the Value in ETH field
- Click the Write button and you will be prompted by MetaMask to approve the transaction
- Once approved, your tokens can now be used within Set Protocol
For this section, we’ll be using the RebalancingSetIssuanceModule smart contract to manually mint an ETH20SMACO Set. It’s important to make sure that you have enough WETH in order to mint the amount of Sets you input in the _rebalancingSetQuantity, and that it’s within the amount of WETH that you approved for transfer.
- Head to https://www.myetherwallet.com/interface/interact-with-contract (make sure that you’re logged in with your Ethereum account)
- Copy and paste the RebalancingSetIssuanceModule smart contract address ( 0xcEDA8318522D348f1d1aca48B24629b8FbF09020) into the Contract Address field and copy the Contract ABI (found here) into the ABI/JASON Interface field
- Click Continue
- From the drop-down menu, choose the issueRebalancingSet option
- In the _rebalancingSetAddress (address) field, enter the of the Set that you want to issue (found in the table above). For this example, we’ll use the ETH20SMACO address (0x9ea463Ec4cE9E9E5bc9cFd0187C4Ac3a70DD951D)
- In the _rebalancingSetQuantity (uint256) field, enter the amount of ETH20SMACO Set that you would like to mint followed by 18 zeros (for example, 1000000000000000000 means 1 ETH20SMACO Set). All Sets have 18 decimal places, so you can assume issuance amounts will be the amount you want to issue times 10**18.
- Change the _keepChangeInVault (bool) field to true. This is to keep the collateral Set dust (fractions of a cent) from spamming your wallet. You will always be able to withdraw the dust anytime.
- Leave the Value in ETH field set to 0
- Click Write
- The ETH20SMACO Sets will now be minted using the collateral you supply to the contract, and transferred to the address you used to make the transaction.
For this section, we’ll be using the RebalancingSetIssuanceModule smart contract to manually sell an ETH20SMACO Set. Redeeming a Set is the process of reclaiming a Set’s underlying components tokens back into your wallet.
- Head to https://www.myetherwallet.com/interface/interact-with-contract (make sure that you’re logged in with your Ethereum account)
- Copy and paste the RebalancingSetIssuanceModule smart contract address ( 0xcEDA8318522D348f1d1aca48B24629b8FbF09020) into the Contract Address field and copy the Contract ABI (found here) into the ABI/JASON Interface field
- Click Continue
- From the drop-down menu, choose the redeemRebalancingSet option
- In the _rebalancingSetAddress (address) field, enter the Set address you’d like to redeem. For this example, we’ll use the ETH20SMACO address (0x9ea463Ec4cE9E9E5bc9cFd0187C4Ac3a70DD951D)
- In the _rebalancingSetQuantity (uint256) field, enter the amount of ETH20SMACO Set that you would like to sell followed by 18 zeros (for example, 1000000000000000000 means 1 ETH20SMACO Set). All Sets have 18 decimal places, so you can assume redemption amounts will be the amount you want to redeem times 10**18.
- Change the _keepChangeInVault (bool) field to true. This is to keep the collateral Set dust (fractions of a cent) from spamming your wallet. You will always be able to withdraw the dust anytime.
- Leave the Value in ETH field set to 0
- Click Write
- Your ETH20SMACO Sets will be unwrapped and the underlying assets will now be transferred to the address you used to make the transaction.
If you ever have any trouble using Set, you can always send us a message using the bottom right chat icon on https://www.tokensets.com/ or by joining our telegram chat.
Learn more about Set and join our community
Newsletter | TokenSets | Website | Medium | Twitter | Discord