Polimec, Polkadot’s Liquidity Mechanism Brought To The Ecosystem By KILT Protocol
- Although I have written a general Medium article on KILT Protocol which included a section on Polimec I have decided to write a separate article solely dedicated to Polimec and how it will benefit the Polkadot ecosystem.
- Note there may be some overlap of information between the two Medium articles.
- Polkadot is on its way to become the basis for a new crypto economy as it solves many of the problems older major blockchains like Bitcoin and Ethereum struggle with.
- However, Polkadot’s success depends on a strong, healthy and lively ecosystem to gain significance. To help foster building out the Polkadot Ecosystem, on the one hand, projects within the Polkaverse will need significant funding due to long runways. On the other hand, DOT holders who already invested into the project need a mechanism to re-invest their now transferable assets into promising projects.
- What if we could enable DOT holders to re-invest their DOT tokens into the Polkadot ecosystem to fund projects (prospective parachains, application builders, etc.) and earn return on their investments in a sustainable and secure way?
- KILT proposes the Polkadot Liquidity Mechanism (Polimec), which is an open-source blockchain system designed to help get liquidity into Polkadot-based projects that are not yet ready to sell transferable currencies on their own technology.
- It is a concept like the ERC20 Smart Contract mechanism but for issuing pre-Currencies on Polkadot or Kusama as it enables Polkaverse projects to issue transferable pre-coins before they go live on their Main Net.
- Polimec will be a parathread of the Polkadot blockchain and derives its security from Polkadot.
- Polimec will monitor the Relay Chain to automatically trigger fund transfers to Investors.
- Polimec will use KILT blockchain via the relay chain to validate credentials.
- Polimec allows the migration of a pre-currency to its respective Main Net via the Relay Chain.
- Polimec can easily integrate other parachains, for example to receive ETH through a bridge for investments.
The Core Functionalities Of The System Can Be Summed Up As Follows:
- Issuers can:
1, Set the price and sell their pre-coins to Investors for DOTs or KSMs.
2, Set the later conversion rate to the main currency.
3, Freeze all transfers of pre-coins and migrate balances to their main net when it goes live.
1, Are identified before buying through KYC and AML processes tailored to the needs of the Issuer, supported by the KILT blockchain.
2, Can transfer pre-coins to any other Polimec address.
How Do Polimec & KILT Hang Together?
- Polimec utilizes the KILT Protocol issuance, proof and verification of KYC/AML Credentials.
- Issuers of currencies on Polimec have to make sure their first receivers have correctly performed KYC.
- They can attest this to their business partners and store the validity of the credential on the KILT Blockchain. Polimec can determine this validity via Polkadot messaging mechanisms before an initial fund transfer is initiated. This provides a high level of security and compliance to issuers.
- In addition to that, KILT will be one of the first parachain projects to issue its currency on Polimec.
How Does Polimec Work?
- Polimec is a dedicated blockchain, running as a Parathread to Polkadot which can hold balances of multiple currencies directly on its runtime.
It has no other functions than:
1, Creating a new currency and its supply inside the Issuer’s Polimec balance (Issue a currency).
2, Transferring tokens of the currency to other balances on Polimec (Transfer).
3, Migrating all balances to a Main Net when it is ready (Migrate).
Polimec Has Five Roles:
- A Founder founds the mechanism, acts as a Collator and is committed to governance.
- A Collator runs a blockchain node of the Transfer System and produces parathread blocks.
- An Issuer designs and offers a new pre-Currency (Issuers and Collators will in most cases be the same group of persons or entities).
- An Investor desires to buy new pre-Currency from the Issuer before transferring is enabled.
- A Buyer receives pre-Currency from an Investor or another Buyer after transfer is enabled.
Why Use Polimec Instead Of ERC20?
- Looking at the ERC20 mechanism, it has been very successful in the past years, though it has shown several problems.
- With Polimec KILT seeks to repair the main issues and establish a new, Polkadot compatible mechanism for blockchain projects.
- The most urgent problem with ERC20 based tokens is the gas price, for every transfer of an ERC20 token you need a Smart Contract which results in a gas-fee which can easily amount to more than $20.
- This makes trading of the coins in small amounts almost impossible.
What benefit can Polimec bring to the Polkadot Ecosystem?
- Besides issuing, transferring and migrating will Polimec have additional features?
Polimec also supports issuers through valuable features for initial coin offerings:
1, By monitoring the Polkadot Relay Chain, Polimec can associate DOT transfers on the Polkadot network with Currency sales on Polimec and thus automatically distribute new currency to buyers.
2, Currency issuers on Polimec can certify successful KYC/AML to their initial buyers on the KILT blockchain. Polimec checks the validity of these credentials during initial distribution on the KILT blockchain, using Polkadot Parachain communication mechanisms.
3, An off-chain application will be provided, which allows the design of highly complex coin offering and distribution schemes.
- The Polimec Transfer System is a Substrate based public-permissioned blockchain that runs as a Parathread that does not have a native token.
The transfer system handles the core functionalities:
1, Allows issuance of new currencies.
2, Holds all balances for each of the issued currencies.
3, Allows fund transfers within a currency.
4, Manages the migration of the balances to the main net of the parachain project after launch.
- Polimec essentially keeps track of the balances of any Issuer, Investor, Buyer or Collator in Polimec.
- This results in a balance sheet for each pre-Currency, which is compiled into and updated in the new block.
- The system does not act as an exchange. It just manages the balances for all pre-coins, which can be traded freely whenever the transfer functionality for a specific pre-Currency is enabled.
- The Polimec Transfer System exposes a simple Transfer API, which can be used by exchanges, wallets, the Polimec Smart Contract System and anyone who wants to build functionality on top of it, for making transfers between Polimec balances.
- As this system does not have a native coin and is a permissioned blockchain, truth is leased through the parachain mechanism from the Polkadot blockchain.
- The parathread fees are paid by the Issuers in DOTs with their Registration fees.
Token Flow & Accounts Used
- There are two different payment flows in which different crypto tokens are used, the DOT flow and the pre-Currency flow.
- For the investment as well as the payments for usage of the Polkadot system, DOT accounts are used. An Investor pays the investment from the Investor Source DOT Account to the Issuer Destination DOT Account.
- The Issuer puts some of the DOTs on the Reserve DOT Account to pay the Polkadot system for the security of Polimec.
- In return for the DOTs received from an Investor, the Issuer’s pre-Currency Account sends pre-Currency to the Investor’s pre-Currency Account. The Investor can use this pre-Currency for Transferring as soon as transferring is enabled by the Issuer.
- For each transaction, the Investor or other entities who received pre-Currency must pay gas to Polimec. Gas is paid in pre-Currency.
Registering A New Pre-Currency
- Anyone can apply to the Polimec governance to issue a pre-Currency, just like anyone can issue a crypto currency.
- To issue a pre-Currency, the Issuer generates a public/private key pair and links it to a DID stored in the credential system so that they can be identified (an Issuer DID could be the base for the KYC credentials issued to the Investors).
After that, an instance of the pre-Currency is parametrised with:
1, Name of the Currency.
2, Name of the Issuer.
3, Public key of the Issuer.
4, Total distribution of pre-Currency to be sold in Polimec.
5, Conversion rate of pre-Currency and Currency.
6, Smallest denomination.
7, DOT Reserve Account (for paying fees).
8, Issuer DOT Destination Account (for receiving investments).
- The Polimec transfer system waits for payment to the DOT Reserve Account dedicated to security provided by Polkadot.
Coin Distribution Of Pre-Currency In Polimec
- Coin distribution plans might include a lot of distribution modes, some of which apply for the pre-coin phase and some which only seem relevant to the main net.
- Yet it might be useful to model the whole complexity already into pre-coins, as this generates trust and transparency.
- Instead of baking all the complexity into the genesis block of the main net, it could be all set in the pre-coin phase already and then the balances just get migrated to the main net.
Claiming Pre-Sold Coins
- In many cases blockchain projects sell their to-be-created cryptocurrencies in advance to early investors and team members.
- These contractual agreements could be adapted into the Polimec system as well, where the Issuer could parametrize the issuance of the pre-Currency to include balances corresponding to the earlier coin sales.
- The details of this process are yet to be defined.
Issuing Pre-Currency For A Sales Round
- For issuing the pre-Currency to Investors, the Issuer calls the Polimec Logic with the following parameters (signed with the Issuer’s private key):
2, Instance of the Sales Round.
3, Hash of Instance-specific KYC/AML-CTYPE.
4, Amount of pre-Currency on sale for this Sales Round.
5, Negotiated or fixed DOT price for pre-Currency in this sales round.
6, Date/Time of Sales Round Start.
7, Date/Time of Sales Round End.
- For every pre-Currency it is up to the Issuer to which conditions the sale takes place. It is also possible to stage multiple Sales Rounds with the same or different conditions for the same pre-Currency.
- The Polimec Logic will only issue pre-Currency to those accounts which qualify with Issuer-attested certificates. It will also take care of not issuing less/more than the fixed minimum/maximum to each Investor as specified in the respective Investment credential.
- In order to generate liquidity, the pre-Currency can be transferred on Polimec before the Mainnet of the Issuer’s system goes live which enables Investors or Buyers of the pre-Currency to already use it like a regular crypto token.
- Polimec allows anyone with a public key compatible with Polimec’s encryption mechanism to store and transfer pre-Currency funds.
- The Polimec Logic keeps track of all balances.
- Transferers need to call Polimec for pre-Currency fund transfers.
- Transferring is initiated by the Issuer. After the sale is closed, the Issuer may enable transferring. Transferring can be paused whenever needed, for example if an oracle is not working or giving wrong data and be restarted whenever the problem is fixed.
- Transferring pre-Currency requires fees, which are automatically deducted in the respective pre-Currency and paid to the Collators of Polimec.
- The security in the Polkadot blockchain is paid in DOTs using the funds allocated by the Issuers in the Reserve.
Migrating Balances To The Live Chain
- Whenever the project is ready and preparing to launch, transferring of the pre-Currency can be stopped to migrate all the tokens of the pre-Currency account balances to the genesis block of the new main chain.
- Once transferring is stopped and the migration begins, transferring of the pre-Currency cannot be resumed.
Credentialing Layer With The KILT Blockchain
- This system shall also have a Credential component, which allows the Issuer of the pre-coin to certify that a certain Polimec address has met the KYC standards required in the respective jurisdiction and according to the criteria of the sale.
- For controlling the pre-Currency balances, the system uses the API exposed by the Polimec Transfer System. Polimec uses KILT Credentials for Investor KYC.
Polimec needs KILT:
1, Currency issuers are responsible for conducting KYC/AML checks for initial investors.
2, KILT provides the functionality to issue and anchor such credentials.
3, CTYPEs allow the definition of jurisdiction and sale specific credentials.
4, The Polkadot Relay Chain enables Polimec to check the KILT credentials through the shared security blockchain layer.
5, Polimec will use the persistent KILT testnet to anchor the credentials.
Smart Contract System
- The Polimec Smart Contract System is a possible extension to the Core Transfer System, which would act on behalf of the Issuer, execute Smart Contract functionality for vesting (also in periods), air drops, bounties, sales and everything else which already exists (or is possible) on Ethereum.
Through this addition Issuers could potentially:
1, Build their pre-coin offerings and the issuance of pre-Currencies as complex as they need it.
2, Reuse Solidity code of existing coin offering projects through utilizing EVM capable runtimes (e.g. Moonbeam).
- KILT imagines a Polimec wallet, which can display all balances of any Polimec supported pre-coin and allows transfers of all of them to any other Polimec address.
- It does not transfer between the currencies but later an integrated decentralized exchange could provide such a function in the wallet.
- A good airdrop collector could accumulate lots of different currencies.
Incentivisation & Governance
Permissioned Public Blockchain
- The Polimec system is a public permissioned blockchain.
- The Polimec Logic behind a pre-Currency shall not be run by an entity.
- Like on Ethereum, the technical infrastructure provided does not come with a responsibility for the currencies issued, in other words Issuers, Investors, buyers or any other users must check the codebase and decide for themselves if Polimec fits their purpose.
- They also have to bear their own legal and other responsibilities for the pre-Currency, the migration to the Currency and all the rights and qualifications attached to it.
Security Derived From Polkadot
- Polimec will not incentivise security. It purely focusses on running the Polimec Logic.
- To get security into the system, the blockchain is connected to Polkadot.
- Some blocks will be sent to one of these systems from time to time for finalisation.
- The decision on how many blocks to wait until finalisation is made automatically, the gas for finalisation is paid through the Reserve, hence the payments to the Reserve are paying for the security of all the participants.
- The features of the Core Polimec are being built by BOTLabs right now and will launch after KILT secures a parachain and launches its Mainnet, in order to leverage the parathread functionality of Polkadot and the implementation roadmap of its cross-chain messaging functionality.
- This core will be usable to issue pre-tokens for any project that is not yet ready. The Issuer may decide to sell pre-coins to investors directly, in a private or a public sale, or use an exchange for an IEO.
Extra features & partners
- In parallel BOTLabs is introducing Polimec to potential partners who could want to be Collators or to offer extra features based on their technology and/or are interested in using the functionalities of Polimec and are willing to contribute to the ecosystem.
- Therefore, the Core Polimec will have interfaces to provide external features with necessary data and allow for interaction with the core functionalities.
- This API can also be used to distribute the pre-Coin via airdrops or bounties or other non-exchange-for-DOTs purposes.