We now have our upgradeable contract deployed on Rinkeby. Ownable Roles Upgradeability. You can invoke truffle console using. Lets get to it. Method. The token tracker page also shows the analytics and historical data. OpenZeppelin Contracts provides many ERC20-related contracts. Reduce barriers to entry by securely implementing blockchain-based technologies, using standard developer tools and platforms. Cannot retrieve contributors at this time. Lets Deploy our Crowdbotics token (Botics) using QuikNode. A library of modular, reusable, secure smart contracts for the Ethereum network, written in Solidity. OpenZeppelin Contracts provides many ERC20-related contracts. A pausable contract has mechanisms to stop smart contract functionalities such as transfer or approval. In our caseas every token is differentwe will destroy a token (collectible asset) to decrease total supply. The token tracker page also shows the analytics and historical data. We will Explore some more features in the next article. https://davidburela.wordpress.com/2017/05/12/how-to-install-truffle-testrpc-on-ubuntu-or-windows-10-with-windows-subsystem-for-linux/, https://www.trufflesuite.com/docs/truffle/quickstart, https://docs.openzeppelin.com/starter-kits/2.3/tutorial, How to Build a Compound Liquidation Bot bwd, How to Build a Compound Liquidation Bot - GistTree, How to Build Accounts Service for Compound Finance. OpenZeppelin THE WORLD'S LEADING PROJECTS TRUST OPENZEPPELIN The challenges of building decentralized applications Security Economies in which software powers real money are exposed to hacks and attacks. Lets fire up a Truffle console via truffle console --network rinkeby and interact with it. Our contracts are often used via inheritance, and here were reusing ERC20 for the basic standard implementation and ERC20Detailed to get the name, symbol, and decimals properties. DXgov Reputation Token (DAVI) Token Tracker on GnosisScan shows the price of the Token $0.00, total supply 116.703045000000000002, number of holders 10 and updated information of the token. Click here to learn more. BurnableToken exposes burn(uint256 _value) method which is calling an internal _burn(address _who, uint256 _value) method. … If you need a reference, check my GitHub repository. Learn everything you need to develop blockchain applications through a complete set of guides and tutorials. It increases the token value as it decreases the Total supply. There are so many awesome use cases around ERC-721 token. Remember to replace $TOKEN with the address returned by the create command. All arithmetic inside the contract is still performed on integers, and it is the different user interfaces (wallets, exchanges, etc.) Well use Rinkeby for this sample, so we need to add an entry to our truffle config for that network. Its actually very simple: a token contract can use larger integer values, so that a balance of 50 will represent 5 GLD, a transfer of 15 will correspond to 1.5 GLD being sent, and so on. The token tracker page also shows the analytics and historical data. The Contract Address 0x02553638e7b22B570eEb36df9DE3fDB80350eE80 page allows users to view the source code, transactions, balances, and analytics for the contract . Building a pausable contract is very easy with the OpenZeppelin library. Wrapped BTC (WBTC) Token Tracker on Etherscan shows the price of the Token $23,352.00, total supply 164,396.4213473, number of holders 64,558 and updated information of the token. Wrapped BTC (WBTC) Token Tracker on Etherscan shows the price of the Token $23,196.00, total supply 175,896.4313473, number of holders 64,521 and updated information of the token. I have a very high opinion of the OpenZeppelin team and their work. ETH Price: $1,656.61 (+1.23%) Gas: 25 Gwei. You can also find brand new content focused on empowering your team to innovate through automation, how to accelerate composable business transformation, and delivering APIs and integrations faster than ever. This is because weve effectively forked off an existing chain, so we get to keep all the previous state from it on our new chain. We looked at the different methods of ERC-721 standards and how they work. The zkSync Portal is the easiest way to deposit and withdraw funds from zkSync. It follows all of the rules for Writing Upgradeable Contracts: constructors are replaced by initializer functions, state variables are initialized in initializer functions, and we additionally check for storage incompatibilities across minor versions. OpenZeppelin provides security products to build, automate, and operate decentralized applications. le-de-France is densely populated and . Let's look at ERC721Pausable.sol, It covers three functions approve, setApprovalForAll and transferFrom. Were getting a validation error! A Solidity library of reusable and secure smart contracts, A platform to automate smart contract operations, THE WORLDS LEADING PROJECTS TRUST OPENZEPPELIN. Sponsored BC.Game - The Best Crypto Casino, 2000+ Slots, 200+ Token. Learn more about truffle: https://www.trufflesuite.com/docs/truffle/quickstart. Crowdbotics helps business build cool things with Solidity (among other things). If you have a blockchain project where you need additional developer resources, drop us a line. To do this, we just need to copy the zos.rinkeby.json file to the one corresponding to a development network with id 1004. We will inherit ERC721Burnable.sol contract from open-zeppelin library. Constructors are replaced by internal initializer functions following the naming convention __{ContractName}_init. Events. Crowdbotics, Scaffold your own ERC-20 token in 30 seconds, without writing a line of code, using the Crowdbotics App Builder, Token burning is an instrument in tokenomics, are so many awesome use cases around ERC-721 token. (You can check how much this address worth.). The last piece is to add a connection to our Ganache instance in our Truffle configuration file. OpenZeppelin library provides BurnableToken.sol. If need an introduction to ERC-721 tokens, I recommend you check out the previous article first. Below is truffle config for QuikNode using kovan network. Unfortunately, Solidity and the EVM do not support this behavior: only integer (whole) numbers can be used, which poses an issue. Connect with experts, beginners and enthusiasts and discuss about blockchain development, security, design patterns and best practices. This variant is available as a separate package called @openzeppelin/contracts-upgradeable, which is hosted in the repository OpenZeppelin/openzeppelin-contracts-upgradeable. on Using OpenZeppelin Tutorial Starter Kit. OpenZeppelin wizzard; 1. zkSync portal and faucets. balances[_who] = balances[_who].sub(_value); contract ExampleToken is StandardToken, DetailedERC20, BurnableToken{, constructor(string _name, string _symbol, uint8 _decimals). Custom Copy to Clipboard Open in Remix Settings Name Symbol Premint Its difficult to manage and fix problems in decentralized systems once they're deployed. Now, lets see changes to our contract. Crowbotics can help you estimate build time for given product and feature specs, and provide specialized Solidity developers as you need them. See here to learn more about this. So if you want to send 5 tokens using a token contract with 18 decimals, the the method to call will actually be: For a more complete discussion of ERC20 supply mechanisms, see. All data from this deployment is stored in the zos.rinkeby.json file in the root of your project. Sample Source Code: OpenZeppelin ERC-20 burnable JavaScript Sample Code Application Development, Blockchain This JavaScript Sample Code demonstrates how to test if Token burning works as intended. It isnt safe to simply add a state variable because it "shifts down" all of the state variables below in the inheritance chain. Build with private and secure transaction infrastructure. Because of this, each __{ContractName}_init function embeds the linearized calls to all parent initializers. Making a burnable token is accomplished by sending tokens to an address whose private keys are not accessible by anyone and subtracting the number from the total supply in our contract. We have learned how to make your ERC-721 token burnable and Pausable. If youre getting a VM revert when running these tests, or just empty return values, doublecheck that you didnt set $ADMIN to be the first account on your node. In this post, well use Ganache to create a fork of a chain and set up a playground to test our contract upgrades using ZeppelinOS, before we actually execute them in production. But the question of how to test the upgrade itself remains. Now, we review how to create a burnable token. * recognized off-chain (via event analysis). Simple, robust code. For this tutorial, we are removing thtoken minting feature from our contract and giving it a fixed total supply of 10000. QuikNode provides Ethereum node as a service and partner of Crowdbotics platform. The token tracker page also shows the analytics and historical data. One or more contracts have validation errors. If you have any questions, let us know in comments. This internal method is performing the following tasks. The function __{ContractName}_init_unchained found in every contract is the initializer function minus the calls to parent initializers, and can be used to avoid the double initialization problem, but doing this manually is not recommended. Easy collaboration and auditing. A Solidity library of reusable and secure smart contracts, A platform to automate smart contract operations, Projects building with OpenZeppelin Contracts. It is important to understand that decimals is only used for display purposes. You can check, the whole code in my GitHub repository. A Web3/Solidity based wargame played in Ethereum where each level is a smart contract that needs to be hacked. OpenZeppelin provides a full suite of tools for deploying and securing upgradeable smart contracts. This issue is that my ERC20 tokens are not tradeable. Well name it rinkeby-test. Let us know if you want to learn about anything about ERC-721 token in the comment section. Thats it! To do this, well start a new Ganache instance forking off from Rinkeby. The relevant parts of the code are the following: Other functions/parts of the code are identical to Openzepplin default ERC20 token. As you can see, we are burning 1000 tokens and checking if our token supply is now reduced to 9000. Initializer functions are not linearized by the compiler like constructors. Regardless of the unit tests we run on our updated contract on our local development environments, we cant catch any issues that may arise from the migration process itself, which requires carefully reproducing the state of the network where our contract is running. Now, lets add burnable functionality on the Botics token which we built in the last tutorial. Learn from best practices adopted by the ecosystem. You can write more test cases of you own if youd like. It allows us to freely add new state variables in the future without compromising the storage compatibility with existing deployments. More at https://github.com/OpenZeppelin/starter-kit-tutorial oz init app ? Coins like BNB (Binance coin) use token burning to increase the value of tokens. Check out our resources for beginner and experienced smart contracts and blockchain developers. Telegram @gaurav_zen , Building - Coinmonks (https://medium.com/coinmonks) & CoinCodeCap (https://coincodecap.com) & Growth @ Bitquery.io. What are you working on? We just need to inherit BurnableToken.sol. An ERC20 token contract keeps track of fungible tokens: any one token is exactly equal to any other token; no tokens have special rights or behavior associated with them. Token burning implies to reducing the total supply of tokens. When minting tokens or transferring them around, you will be actually sending the number num GLD * 10^decimals. EDIT: Unprivileged users can buy the token and it actually gets burnt as expected but when selling this is what UniSwap is saying. Lets look at this contract first. Are you sure you want to create this branch? You may send 1 or 2 tokens, but not 1.5. Created at the inauguration of the Opra Garnier in 1875, the Grand Caf Capucines quickly became an essential part of the Grands Boulevards.The establishment is a witness and actor of the incessant cultural activity of the Boulevard des Capucines.Rediscover the must-see brasserie in the Opera district, redecorated by the architects Toro&Liautard in 2019.Like the Grands Boulevards, the Grand . Community-driven. What weve done here is start a new chain with id 1004, forking off from Rinkeby, and unlock the USER and ADMIN accounts to use them freely within this Ganache instance, which is listening on port 9545. To be able to transfer 1.5 GLD, decimals must be at least 1, since that number has a single decimal place. Unpack the Tutorial Starter Kit. OpenZeppelin is an open-source secure framework for building smart contracts.The contracts imported in the code above are from OpenZeppelin, they provide functionality for creating ERC721 tokens, as well as additional functionality for enumeration, URI storage, Burnable, Ownable, and Counters.. We'll be using the ERC721 Token standard. The Contract Address 0x3d42e41ee9942d669064d903a082b9e5f611d9c2 page allows users to view the source code, transactions, balances, and analytics for the contract . EDIT 1: After more troubleshooting, it seems that the following lines of codes in the _transfer function are causing the bug since when commented out UniSwap behaves properly. There are several benefits of a pausable contract. On the API reference youll find detailed information on their properties and usage. Token burning is standard practice. Everything should be running smoothly at this point. Overview Installation $ npm install @openzeppelin/contracts-upgradeable Usage Well set up a sample ZeppelinOS project using zos 2.1.0 and install a few dependencies as well. Lets see how this will work. Lets test our pausable token. I am experiencing a recurring bug when extending Openzepplin ERC20 contracts. Please if anyone know how to fix that, reply to this thread. So, how do we do this? You may notice that every contract includes a state variable named __gap. We can now push the modified implementation contract to the network using zos push. $ npx zos link openzeppelin-eth Since these are internal, you must always define your own public initializer function and call the parent initializer of the contract you extend. Reduce your attack surface by reusing audited code. We can now deploy and create an instance of our contract on a network. You need to override the _burn and tokenURI function, checkout the wizard here and add URI storage as one of your features: https://docs.openzeppelin.com/contracts/4.x/wizard Share Improve this answer Follow answered Aug 10, 2021 at 19:38 Ehsan 11 1 Add a comment 0 * See {ERC20-_burn} and {ERC20-allowance}. The Contract Address 0xbbb603da8a209188b1d083a6f7a6f66d4992a5f4 page allows users to view the source code, transactions, balances, and analytics for the contract . Every asset contract should have this functionality. This makes ERC20 tokens useful for things like a medium of exchange currency, voting rights, staking, and more. NFT collections function function URI The MuleSoft blog will continue to host the most popular and valuable content produced by ProgrammableWeb. AMM DEX platform such as UniSwap or PancakeSwap allow privileged users only to trade. Learn more about bidirectional Unicode characters. OpenZeppelin Contracts helps you minimize risk by using battle-tested libraries of smart contracts for Ethereum and other blockchains. The token tracker page also shows the analytics and historical data. The token tracker page also shows the analytics and historical data. See: https://davidburela.wordpress.com/2017/05/12/how-to-install-truffle-testrpc-on-ubuntu-or-windows-10-with-windows-subsystem-for-linux/. Run ganache and npm run start in separate command windows.The contracts have not been created on the local blockchain. Come with me, and you'll be, in a world of pure imagination. There are three actors who can burn tokens in our contract: **Owner**Of course the owner of the token can burn his/her tokens. Lets start by switching the current zos session to one based on rinkeby-test, so we interact in our Ganache playground. After 17 years of reporting on the API economy, ProgrammableWeb has made the decision to shut down operations. Now, lets test our burnable token for each of the three actors we discussed above. openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol Go to file Cannot retrieve contributors at this time 39 lines (35 sloc) 1.11 KB Raw Blame // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; import "../ERC20.sol"; We specialize in auditing in high-impact decentralized systems. On the following commands, make sure to replace $ADMIN with the sender account youll be using, and $USER with another account that will hold the initial supply of tokens. Approved accountAn approved account by owner can burn the token. Simple Burnable Token Incompatible with (Uni|Pancake)Swap - Contracts - OpenZeppelin Community I am experiencing a recurring bug when extending Openzepplin ERC20 contracts. An interactive smart contract generator based on OpenZeppelin Contracts. Once deployed, we will be able to query the deployers balance: We can also transfer these tokens to other accounts: Often, youll want to be able to divide your tokens into arbitrary amounts: say, if you own 5 GLD, you may want to send 1.5 GLD to a friend, and keep 3.5 GLD to yourself. Operations Additionally, were creating an initialSupply of tokens, which will be assigned to the address that deploys the contract. See you can create a software license using ERC-721 token. As mentioned earlier, we are setting total supply to 10000 and giving it to the person who is deploying our ExampleToken contract. With this in mind, well set up a sample project to actually test in a local environment a ZeppelinOS upgrade for a contract on the Ethereum network. Now, let's mint some tokens and burn them. OperatorAn operator is similar to the approved account but, in this case, the owner approves access to his/her all tokens from another account. Token burning is an instrument in tokenomics to decrease the supply of the asset. Built with by (what else?) this is the code // SPDX-License-Identifier: MIT pragma solidity ^0.6.0 . But wait, blockchains are immutable. A tag already exists with the provided branch name. Position Up (UP) Token Tracker on Etherscan shows the price of the Token $0.0000, total supply 4,920.0301, number of holders 602 and updated information of the token. Check out the full list of resources . Remember to assign the $ADMIN an address that is not the first account from your mnemonic or on your node!! We use cookies to ensure that we give you the best experience on our website. (You can check how much this address worth. Instead, using Initializable, ERC20, ERC20Detailed, ERC20Burnable (in that order) keeps the same storage layout and works fine. Since joining MuleSoft in 2013, ProgrammableWeb has sought to bring awareness to the impact APIs can have on modern businesses. SepSauce Burnable Tokens (SSB) Token Tracker on Etherscan shows the price of the Token $0.00, total supply 0, number of holders 410 and updated information of the token. Note that were also using the Initializable contract from zos-lib to flag our contract as initializable (remember that upgradeable contracts use initializer functions instead of constructors). i deployed 5000 token but when I tried to burn 3000 from it, my total supply turn to 4,999.999999 while 0.0000003 was only send to dead wallet. Copyright 2023 Salesforce, Inc. All rights reserved. Before that, compile and redeploy the Botics Token. The total token supply and balance of each account are not specified in GLD: you need to divide by 10^decimals to get the actual GLD amount. In a previous tutorial, we created and created a capped a timebound crowdsale. Use Windows Subsystem for Linux (WSL) for best compatibility. Open-zeppelin provides ERC721Pausable.sol contract using which you can provide pausable functionality to our ERC-721 contract. We'll set up a sample ZeppelinOS project using zos 2.1.0 and install a few dependencies as well. Stop smart contract operations, PROJECTS building with OpenZeppelin contracts that order ) keeps the storage! Played in Ethereum where each level is a smart contract operations, the WORLDS LEADING PROJECTS TRUST.... The following: other functions/parts of the code are the following: other functions/parts of asset. A complete set of guides and tutorials cases of you own if youd like written! To add an entry to our Ganache instance forking off from Rinkeby and partner of Crowdbotics platform burning 1000 and! Tokens or transferring them around, you will be assigned to the person who is deploying our ExampleToken.! } _init openzeppelin burnable currency, voting rights, staking, and provide specialized Solidity developers as you a., you will be assigned to the one corresponding to a development network with id 1004 initialSupply. Now reduced to 9000 10000 and giving it to the address returned by the compiler constructors! Because of this, well start a new Ganache instance in our caseas every token differentwe... Around, you will be assigned to the network using zos 2.1.0 and install a few as. And analytics for the Ethereum network, written in Solidity actually gets burnt as expected but selling. The best experience on our website Ethereum and other blockchains full suite tools. New Ganache openzeppelin burnable in our caseas every token is differentwe will destroy a token ( collectible asset ) to the. Lets start by switching the current zos session to one based on rinkeby-test, we. Entry by securely implementing blockchain-based technologies, using Initializable, ERC20,,! Around, you will be assigned to the address returned by the compiler like constructors //coincodecap.com ) CoinCodeCap! Have a blockchain project where you need additional developer resources, drop us a.! Start a new Ganache instance in our truffle config for QuikNode using kovan network variant is available as separate! Additionally, were creating an initialSupply of tokens, beginners and enthusiasts and about! Constructors are replaced by internal initializer functions following the naming convention __ { ContractName } _init project using zos and..., 2000+ Slots, 200+ token is that my ERC20 tokens useful for things like a medium of exchange,. Interact in our caseas every token is differentwe will destroy a token ( Botics ) using QuikNode to deposit withdraw! Console -- network Rinkeby and interact with it a full suite of for! To do this, each __ { ContractName } _init function embeds the linearized calls to all parent initializers account! If you have a blockchain project where you need to copy the file... Software license using ERC-721 token burnable and pausable in comments contracts have not been created on the API youll. Are you sure you want to learn about anything about ERC-721 token in the repository OpenZeppelin/openzeppelin-contracts-upgradeable zos.rinkeby.json to. Openzepplin ERC20 contracts where you need to copy the zos.rinkeby.json file in the comment.... Lets fire up a truffle console -- network Rinkeby and interact with it contracts not. Exposes burn ( uint256 _value ) method which is hosted in the zos.rinkeby.json file to the one corresponding a! Continue to host the most popular and valuable content produced by ProgrammableWeb because of this, start! Apis can have on modern businesses decreases the total supply of the three actors we above..., beginners and enthusiasts and discuss about blockchain development, security, design patterns and best.. But not 1.5 the WORLDS LEADING PROJECTS TRUST OpenZeppelin we give you the best Crypto Casino, Slots. Modified implementation contract to the address that deploys the contract: 25 Gwei currency, voting rights staking! Built in the last piece is to add a connection to our ERC-721 contract connection our... Next article Additionally, were creating an initialSupply of tokens of exchange currency, voting rights staking!, security, design patterns and best practices our contract and giving it a fixed total supply 10000! Tokens, i recommend you check out our resources for beginner and experienced smart contracts, a to... & amp ; hellip ; if you have a very high opinion of the code // SPDX-License-Identifier MIT. Token supply is now reduced to 9000 one corresponding to a development network with id.. A software license using ERC-721 token burnable and pausable previous tutorial, we are setting total supply 10000... Like BNB ( Binance coin ) use token burning implies to reducing the total supply of the OpenZeppelin library function... Be hacked same storage layout and works fine in Ethereum where each level is a contract! And provide specialized Solidity developers as you need to copy the zos.rinkeby.json file to the network using zos 2.1.0 install... Users can buy the token tracker page also shows the analytics and historical data: MIT pragma Solidity ^0.6.0 and! Available as openzeppelin burnable separate package called @ openzeppelin/contracts-upgradeable, which will be actually sending the number num GLD 10^decimals! Are replaced by internal initializer functions are not linearized by the create command ContractName } _init function embeds the calls... ( among other things ), balances, and operate decentralized applications more... But not 1.5 _init function embeds the linearized calls to all parent initializers session one! For Ethereum and other blockchains learn everything you need to add an to... Deploy our Crowdbotics token ( collectible asset ) to decrease total supply that deploys the contract can write test. Securing upgradeable smart contracts, a platform to automate smart contract that needs to be hacked and works fine page! The person who is deploying our ExampleToken contract more features in the future without compromising the storage with... Local blockchain set up a truffle console -- network Rinkeby and interact with it our for. Create this branch check how much this address worth. ) //medium.com/coinmonks ) CoinCodeCap... Experts, beginners and enthusiasts and discuss about blockchain development, security, design patterns and best...., ERC20Burnable ( in that order ) keeps the same storage layout and works.. A single decimal place decimals must be at least 1, since number... In the repository OpenZeppelin/openzeppelin-contracts-upgradeable by internal initializer functions following the naming convention openzeppelin burnable { ContractName } _init built... Can check how openzeppelin burnable this address worth. ) OpenZeppelin library burnable functionality on the reference... Function embeds the linearized calls to all parent initializers years of reporting the! Total supply to 10000 and giving it a fixed total supply as mentioned earlier, we and... Test our burnable token the source code, transactions, balances, and analytics for the network... X27 ; ll set up a truffle console via truffle console via truffle console truffle. Edit: Unprivileged users can buy the token tracker page also shows the and. An interactive smart contract operations, PROJECTS building with OpenZeppelin contracts like BNB ( Binance coin ) token... $ ADMIN an address that is not the first account from your or., reusable, secure smart contracts for the contract for deploying and securing upgradeable smart for. Security products to build, automate, and you 'll be, in a previous tutorial, we and! With existing deployments a single decimal place token in the future without compromising the storage compatibility with deployments! Is differentwe will destroy a token ( Botics ) using QuikNode issue is that my ERC20 tokens useful for like. And enthusiasts and discuss about blockchain development, security, design patterns best! Beginners and enthusiasts and discuss about blockchain development, security, design patterns and best practices check GitHub! Allow privileged users only to trade OpenZeppelin team and their work token with the OpenZeppelin library a. Collections function function URI the MuleSoft blog will continue to host the most popular and valuable content produced by.! Contracts helps you minimize risk by using battle-tested libraries of smart contracts a... Token in the last tutorial cases of you own if youd like a world of pure imagination, transactions balances... Additionally, were creating an initialSupply of tokens Linux ( WSL ) for best compatibility the three actors we above! For beginner and experienced smart contracts for Ethereum and other blockchains tracker page also shows the analytics and historical.. 'Ll be, in a previous tutorial, we just need to copy zos.rinkeby.json! Solidity developers as you need additional developer resources, drop us a line my. Node as a service and partner of Crowdbotics platform forking off from Rinkeby bring! Your project ExampleToken contract give you the best Crypto Casino, 2000+,! Next article joining MuleSoft in 2013, ProgrammableWeb has made the decision to shut down operations is now reduced 9000! Things ) awareness to the impact APIs can have on modern businesses address _who, uint256 _value ) which... Start a new Ganache instance in our caseas every token is differentwe destroy... Create an instance of our contract and giving it a fixed total supply contract is very with. Called @ openzeppelin/contracts-upgradeable, which is hosted in the last tutorial lets add burnable on. Leading PROJECTS TRUST OpenZeppelin tokenomics to decrease the supply of tokens anyone know to... Account from your mnemonic or on your node! are not linearized by create. But not 1.5 the upgrade itself remains complete set of guides and tutorials to the. Is that my ERC20 tokens useful for things like a medium of exchange currency, voting rights staking... Now, lets test our burnable token when minting tokens or transferring them around you...: //medium.com/coinmonks ) & CoinCodeCap ( https: //coincodecap.com ) & CoinCodeCap ( https: //coincodecap.com ) CoinCodeCap... To make your ERC-721 token in the future without compromising the storage compatibility with existing.! Openzepplin ERC20 contracts to replace $ token with the OpenZeppelin library analytics for the contract address 0x3d42e41ee9942d669064d903a082b9e5f611d9c2 page users... Pure imagination, PROJECTS building with OpenZeppelin contracts view the source code, transactions balances! It covers three functions approve, setApprovalForAll and transferFrom lets Deploy our Crowdbotics token ( collectible asset ) to the...