Skip to main content

Multichain market for asset token

Goals
  • Have tokens on different l1-blockchains representing ownership of assets.
  • In a transparent, trustless, traceable manner, being able to move the representation of assets ownership from one l1-blockchain to another l1-blockchain.
  • On each l1-blockchain, these tokens must follow the blockchain's common standard, so they can interact with the rest of the l1-blockchain's DeFi eco-system.
  • A unified view to keep a global view of the assets to be honored among the multiple blockchains.
  • Not to rely on oracles or validators for asset migration between blockchain, only relying on each l1-blockchain's native consensus.

Approach:

  • The project P uses a set of smart contracts where assets in the multichain market are defined. Associated with this project is a dApp.
tip

Using create-coinweb-dapp you can create such a dApp.

  • Every time a new asset is to be represented on a l1-blockchain, a new l1-token will be created.

  • Using the Coinweb-protocol, any user can validate a given token-id to know whether the token is legitimate or fraudulent.

    • The legitimacy of a token is an stateless property. A token will either always be legitimate since the moment it is created till the last of its piece is burnt; or the token will always be fraudulent.

    • This means an user only needs to validate the token once, for example, by copying and pasting the token-id into a dApp webpage, having the dApp list all valid tokens, or if it is an advanced user, by locally running a script.

    • To make it more convenient to causal users, the asset issuer can wrap common DeFi dApps frontends and libraries to add a filter to remove any fraudulent token to be displayed to the user's UI.

  • A token will be considered legitimate on creation if and only if:

    • It was created through a whitelisted token-contract factory contract. This means that the logic of the token contract is fixed and complies with the expected standards; that it will carry metadata about the assets it represents; and that the token will only be mintable on creation.

    • The he user who created the token can be associated to an unlocked balance (on coinweb, l2) of the underlying asset equal or greater than the amount minted on l1 (coinweb contracts will react locking this amount from the balance).

  • Therefore any user can create legitimate tokens to move asset representation from one l1 blockchain to another as long as the reactive coinweb contract can audit the user holds enough balance of the asset.

    • Normal users will be able to increase/decrease their l2 assets balance by burning/minting l1-token related to those assets.

    • Some special users ( for example well trusted DAOs, or physical gold vault storage ) will be allowed to increase their l2-coinweb-balance of that assets in exchange of providing tracking information of their assets ownership. Through this mechanism it will be possible to add new real world assets (RWA) to the system.

Important

Under-the-hood, the system will track the ownership claim such, 1 kg of gold claimed to be physically held by vault V1 would not considered to be the same asset as 1kg claimed be physically held by vault V2. It is expected that the price of the assets will reflect how much the market trust the claims from V1 vs V2, creating incentives for the claimers to be transparent.

Example:

  • Paul hold tokens A and B on Polygon representing ownership of 1g1g and 3g3g of gold respectively, and in addition to that, tokens C on BNB representing 4g4g of gold.

  • Paul burns his tokens A and B, and half of his tokens C.

  • Now Paul is allowed to mint tokens for a maximum value of 1g+3g+42g1g + 3g + \frac{4}{2} g of gold.

  • Paul creates a new token D on Ethereum, linked to 6g6g of gold (1g+3g+42g)(1g + 3g + \frac{4}{2}g) and starts trading it on Uniswap.

  • Mark is interested in buying gold, and owns ETH; He found on an index (on a web page) that Paul's D token represents gold ownership.

  • Mark checks with Coinweb that D is legitimate (always, don't trust verify!!). Since the project has a dApp, this can be done in this dApp.

  • Mark buys D using Uniswap as he would normally do for any token.