Ethereum is a pioneer within the blockchain space because it introduced smart contracts and the Solidity programming language as a core function of its blockchain. While Bitcoin introduced decentralized money, Ethereum brought in decentralized and immutable contracts, where two or more accounts can go into an agreement with eachother, without requiring any intervention from a human being. Because computers are not like people, the contract result will always be executed as it should be without any kind of interference.
Smart Contracts
Ethereum smart contracts can be written in any way according to the wishes of the business. They are written using the Solidity programming language. There are many different kinds of smart contracts that Winterwind can write and deploy for your business, and we will touch on some of them here:
ERC-20 Token Development
The most common type of smart contract in Ethereum is the ERC-20 token. A standard ERC-20 contract will maintain some basic functionality regarding to the token. It will maintain which accounts hold how many tokens, it may let the contract issuer create or burn tokens within their supply (but not tokens owned by others). It lets users transfer the tokens to other accounts. Sometimes they have the ability to freeze tokens up to a certain date, but after the date they are automatically unfrozen. The contract will also define the name of the token, the symbol and the divisibility of a single token.
ERC-223 Token Development
The ERC-223 spec was designed to address some problems within the ERC-20 design. One problem with ERC-20 is that it will allow the user to send their tokens to any address, including smart contract addresses which don't contain any token transfer functionality. The result is that millions of dollars worth of ERC-20 have been lost other the years because they have essentially been sent into a black hole. This is more of a user error rather than technology problem, however, since error-prone human beings are one of the main users of custom Ethereum tokens, ERC-223 adjusted its design to only allow these tokens to be sent to addresses with a transfer function. I.e. if they were mistakenly sent to an address, the recipient would have the ability (although not obligation) to send them back.
ERC-223 transfers are also use half the gas that is needed by ERC-20 by performing the transfer using one operation instead of two. The result is that it is twice as cheap to make transfers. They are also backwards compatible with ERC-20.
While being a superior token on a technical level, many wallets and exchanges still do not support the less common ERC-223 token. For this reason, many new projects will still decide to go with an ERC-20 for business reasons. Speak with Winterwind on the best token design for your business' needs.
ERC-721 Token Development
The ERC-721 is a non-fungible token specification. Non-fungible means that one token is not the same as another token in the same collection, for one reason or another. Whereas one ether is identical to another ether in every way. NFTs can specify different properties on each one, as such they used to create unique digital assets.
CryptoKitties was the first application to use ERC-721 tokens extensively within their website. In their marketplace, users could purchase CryptoKitties (ERC-721 tokens) in a decentralized way by sending ether to the appropriate smart contract. The kitten could then breed with other kittens to make a unique new kitten (and also new smart contract). The token's value was determined by what users would bid for them within the marketplace.
The possibilities for ERC-721, however, extend far beyond digital cats. They can be used to certify ownership for any number of things including artwork, real estate, in-game items or characters or tickets to an upcoming movie premiere.
Winterwind has experience with working non-fungible tokens, specifically, we developed a decentralized game where the characters and the items in the game were all non-fungible tokens. The gold in the game was a fungible token and the non-fungible items in the game could be purchased using the gold.
ERC-777 Token Development
The ERC-777 is similar to the 223 because it also improves upon the ERC-20 contract. Like the 223, it addresses the issue of sending tokens to contracts where the tokens cannot be recovered from. One unique feature of the 777 contract is that it allows "approved operators" (other smart contracts) to execute functions on its behalf. This is useful because it allows for easier interactive between two different contracts, which makes them more programmatic and allows for a lot of automation. The 777 also creates a standard for minting and burning tokens which is not present in the 20 or 223. Finally, the ERC-777 standard includes a unique send function which makes it easy to send ether itself to any other account.
The downside of the ERC-777 is that it lacks adoption from exchanges and wallets as of the time of writing (November, 2019) so the decision to go with ERC-777 must be given thought.