NXT based Multi-Currency ICO
Register your crowdfunding tokens on NXT when raising funds using multiple crypto-currencies
In my previous article I explained how we used the NXT blockchain as a crowdfunding platform for our IGNIS ICO and how you can reuse our technique for your own crowdfunding campaign.
However, due to price fluctuations and liquidity issues, ICO issuers will benefit from diversifying their holdings. Therefore, in this article, I’ll explain how you can use NXT as ICO token registry while raising the funds using multiple crypto currencies.
Disclaimer: users buying the token using NXT will always have some priority when buying the token since other users will have to wait for their other crypto transactions to confirm first before receiving their tokens on the NXT blockchain.
Here is my proposed procedure:
Use a similar model to the IGNIS ICO with controllable currency and several price levels enforced by Exchange Offers as described in my previous article. Anyone who is familiar with NXT will be able to buy your token using the NXT wallet. However, users who want to buy using other crypto currencies will follow the process outlined below. I’ll assume BTC for the purpose of this document but this technique can be used for any other currency.
1. Create an NXT account with a secure passphrase using a wizard on the ICO web site which can mimic the official NXT wallet account creation wizard. This NXT account will be used to claim the tokens after the ICO and will save your team the hassle of a lengthy manual claim process which is typical for crowdfunding campaigns which are not registered on a blockchain.
2. The ICO web site will then ask the user which crypto she would like to use for deposit, assuming BTC is selected, the web site will generate a new BTC deposit address and will show it to the user, then using the existing exchange rate between the BTC and NXT and between NXT and the ICO token, calculate an exchange rate between BTC and the token perhaps reducing few percent against price fluctuations and in order to fund possible return transactions in case the deposit missed the time windows or the token sale has ended and in order to fund the few NXT needed to pay for transaction fees.
3. The user will now have a short time interval (10 minutes?) to make a BTC deposit, during which the server side will monitor the deposit address for deposits using a local BTC wallet or even using a block explorer whichever is simpler.
4. Once a BTC deposit is identified and has enough confirmations, the site backend, will submit a message transaction to the NXT account and specify the deposit address of the BTC while registering the user account in the NXT blockchain using public key announcement. If there is KYC data, it can be registered using a separate set account property transaction or as part of this message transaction.
5. Next, the site backend will issue an NXT transaction to buy the token using NXT from the currency issuer account (effectively paying itself and reducing the available tokens) then issue another transaction to transfer the bought tokens to the user account, and optionally fund the account with few NXT so that it will be able to transact.
6. At the end of the process the BTC wallet will include the amount the buyer deposited, and the buyers’s NXT account, initialized with a public key and linked to the BTC deposit address will be funded with the ICO token.
Note that for each BTC deposit the ICO account will need to issue 2 or 3 transactions and pay fees for it in NXT so these costs needs to be factored into the exchange rate provided for the BTC deposit.
To summarize, I outlined here a relatively simple procedure with which you can register your ICO tokens using the NXT blockchain and allow users to buy these tokens using BTC or other crypto currencies. While the procedure is more complex than an NXT only setup, it allows ICO issuer greater flexibility in their fund allocation.