Operating Set Protocol Manually (2024)

Operating Set Protocol Manually (3)

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

  • RebalancingSetIssuanceModuleThis smart contract facilitates minting and redeeming of Sets
  • TransferProxyThis 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 ContractThis contract is used to wrap, unwrap, approve, and transfer WETH
  • WBTC ContractThe Wrapped Bitcoin ERC-20 smart contract
  • DAI ContractThe Dai ERC-20 smart contract
  • USDC ContractThe 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)

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.
Operating Set Protocol Manually (4)

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.
Operating Set Protocol Manually (5)

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.
Operating Set Protocol Manually (6)

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.

Operating Set Protocol Manually (7)
  • 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
Operating Set Protocol Manually (8)

Approving USDC for Use with Set Protocol

Operating Set Protocol Manually (9)
  • 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
Operating Set Protocol Manually (10)

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.

Operating Set Protocol Manually (11)
  • 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.
Operating Set Protocol Manually (12)

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.

Operating Set Protocol Manually (13)
  • 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.
Operating Set Protocol Manually (14)

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

Operating Set Protocol Manually (2024)
Top Articles
Latest Posts
Article information

Author: Stevie Stamm

Last Updated:

Views: 6357

Rating: 5 / 5 (80 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Stevie Stamm

Birthday: 1996-06-22

Address: Apt. 419 4200 Sipes Estate, East Delmerview, WY 05617

Phone: +342332224300

Job: Future Advertising Analyst

Hobby: Leather crafting, Puzzles, Leather crafting, scrapbook, Urban exploration, Cabaret, Skateboarding

Introduction: My name is Stevie Stamm, I am a colorful, sparkling, splendid, vast, open, hilarious, tender person who loves writing and wants to share my knowledge and understanding with you.