What Problem are we trying to solve?
One of the biggest problems when it comes to onboarding new users into crypto/blockchains is on ramping. If you create your own fungible tokens, it is highly unlikely that Coinbase or other exchanges will list your token. On the other hand, Non fungible tokens are mostly treated as non currency so there are many platforms (MintBase, NBATopshot) which allows you to buy NFTs via CreditCard. Also, it is highly likely that NBATopshot packs will become the first digital asset the flow users will own.
Our solution is to provide a simple fungible token (MToken) Minting service by collateralizing NBATopshot packs based on its initial price (minting price) so that the owners of the same MToken can provide services to each other as a medium of exchange (eg: trading cards of different values) without using credit card payment for each transaction.
How does this work?
Given a user bought a NBATopshot pack worth $9.00 (NBATopshot A)
When User calls MintToken.mint(NBATopshot)
Then the user will receive MintToken worth 9 MToken
And the ownership of NBATopshot A is transferred to MintToken
When a user calls MintToken.redeem(9 MToken)
Then the user will receive NBATopshot A back.
Is 1MToken equal to $1? :
Not necessarily true. If a user buys the NBATopshot packs cheaper than the minting price at the secondary market, he/she could mint more MToken than the secondary market price (or vice versa). I expect that the overall price of MToken will depend on the popularity of collateralized fungible tokens. If people believe that most NBATopshot packs won’t value less than the initial price, the price would equal or higher to $1.
Is collateralising my Topshot tokens the only way to acquire MToken?
Initially yes, but the whole point is to provide a medium of exchange so eventually you will be able to acquire them in exchange for some sort of products or services (or via decentralised exchange service once an equivalent of Uniswap or Kyber on Flow emerges).
Why not use CreditCard to offer our services?
Credit card payment usually costs 3~5% transaction fee. You could use Coinbase wallet to pay via other cryptos (eg: Bitcoin/Ether) though their transaction cost is equally becoming expensive, and also mainstream users wouldn’t have other crypto currencies to begin with. Nonetheless, if you only rely on using credit card payment, what is the point of using Crypto?
Isn’t this the same thing as points on NBATopshot?
Points on NBATopshot are awarded as part of onboarding efforts such as verifying email and setting up social profiles, etc. You can get additional points by purchasing certain types of packs but points and purchased packs don’t seem to be directly correlated.
Shouldn’t people just use FlowToken as medium of exchange?
I would expect that FlowToken will be as difficult to purchase as any other fungible tokens and users have to pay high on-ramping fee to acquire their token. Also users don’t necessarily require to have FlowToken to interact with Dapps as Dapps can subsidies transaction cost. For the majority of users, it will be more cost effective to mint MToken based on their digital asset than buying FlowTokens using credit card.
- Will NBATopshot NFTs record its minting price on chain?
- Does NBATopshot NFTs contain the initial seller(eg; NBATopshot) information so that we can include any NFTs sold by the same seller under one currency?
- Should we allow it to mint $1 = 1 MToken, or make it over collateralized?
- Should we add some sort of minting fee?
- Can we have some market mechanism to reflect minting price (eg: based on the total market value of packs sold)?
- What if we don’t collateralise NFTs but simply mint new MToken tokens per NFT? This way we are less liable when there are bugs on smartcontract and people can’t redeem their NFTs (also lower barrier to entry for people to try out) . It still adds some sort of scarcity as MTokens can be only minted once per NFT (by recording minted Token id).
- Can we offer some sort of ways of controlling NFT while being collateralised? Just like Ethereum Name Service (aka ENS) controller/registrar separation allows you to transfer ownership while keeping administrative control.