Fungible and non-fungible tokens
In finance, on blockchains, and in the Ethereum world you’ll eventually notice the terms fungibility and non-fungibility. Non-fungible tokens (NFTs) have received a lot of focus lately, often tied to some form of digital art or media, and fungible tokens a few years before that during the ICO boom.
In short, a fungible token is one where each unit of this token is interchangeable with another unit of the same token. If you borrow me one $100 bill, and I give you back a $100 bill a bit later, we don’t care if it was the same bill if they’re both real $100 bills. They are interchangeable, or fungible. I could even give you back two $50 bills, as it all adds up and is all fungible.
On the other hand, if you borrow me an artwork over the weekend, you’ll want to get the same artwork back afterwards, because another one isn’t interchangeable. They’re non-fungible.
Stablecoins are fungible tokens. 1 token received from me is of as much value as 1 token received from someone else, assuming they’re the same tokens managed by the same smart contract. A stablecoin is not equal to the asset it wraps, so we need to keep in mind that 1 dollar isn’t the same as 1 stablecoin token wrapping 1 dollar. They might have the same value, but they are distinct. You might be able to wrap or unwrap between dollars and stablecoins, but the process of wrapping or unwrapping will alter what assets you hold.
Markets, exchanges and risk takers might also view different stablecoins, each wrapping the same asset, as having different values. This comes down to the risk profile and features tied to the stablecoins, such as third-party risks, technical risk, accessibility, etc.
Fungible tokens on Ethereum are represented using the ERC-20 standard, while non-fungible tokens on Ethereum are represented using the ERC-721 standard. While they each offer much the same functionality, like owning or transferring tokens, when dealing with non-fungible assets the smart contract takes care of ensuring that the rightful owner holds on to the specific token, not just the same amount of tokens.
We can imagine converting a non-fungible assets into fungible assets. An example could be taking an artwork, say a famous picture, and then tokenize this into 1 million equal tokens. Each token gives the same proportional ownership rights to the picture. If you happen to hold all the tokens, you own 100%. If you hold 100k tokens, you hold a 10% stake. This is much like shares in a company, or ownership to property of some kind. Put differently, a stablecoin could wrap a non-fungible asset, and provide fungible tokens as its output. This would allow for fractional ownership of the asset, enabling liquidity, and allow for its value to participate in the greater DeFi ecosystem. You would not be able to unwrap such a stablecoin unless you held all the tokens, again, because the underlying asset is non-fungible. But you could maybe put in place a Decentralized Autonomous Organization (DAO) as part of the smart contract, and let the majority vote on what to do with the non-fungible asset.
Many such constructs can be imagined. Wrapping fungible assets into a non-fungible asset, so that for example a pot of money remains untouched until some condition is meet on the non-fungible contract wrapping it, like a time lock. You can transfer the full pot of money as a whole to a new holder, but the holder can’t break it apart and unwrap it before the end of the time lock. Then, assuming people believe this time lock will correctly unlock the underlying money at the stated time in the future, why not just re-wrap the non-fungible contract into a new stablecoin, re-enabling the fungible property of the underlying asset? That might be on one extreme end of the programmable money spectrum, where instead of wrapping fungible assets into non-fungible, we can simply add conditions onto a new stablecoin wrapper, keeping the assets fungible, but, as in the example, putting a time lock on its usability.