-
Notifications
You must be signed in to change notification settings - Fork 4
01 Iguana GUI Feature Narrative
- Value Proposition
- Ideas brief
- Technical requirements
- Modes of Operations
- Authentication
- Dashboard
- Accounts/Coins
- Payments
- Sending
- Sending to a contact
- Receiving
- EasyDEX
- Contacts
- Settings
- Language
- Mode Switcher
- Reference Currencies
- Transaction Fees
1. Value Proposition
Iguana is an app providing advanced benefits from cryptocurrencies and blockchain. Iguana itself combines a set of tools (from multi-currency wallet to real-time exchange) and backend technologies (The Multigateway, InstatDEX, Teleport, Telepathy, etc.) to reveal new types operations with cryptocurrencies, enhance personal security and anonymity, to accelerate transactions clearing procedure speed.
==2. Ideas brief==
- Lightweight wallet - no need to download blockchain wallet
- Decentralized wallet handling many cryptos (BTC, BTCD, SYS, LTC. etc.)
- Decentralized exchange for various cryptocurrencies and fiats
- Identify a particular transaction in a coin blockchain
- Multisignature clearing house providing new level for transactions security and speed
- Highly anonymous transactions using Komodo (KMD, ex. BitcoinDark (BTCD))
- Transactions performed are reliable for commercial purposes
- Platform for other future blockchain technologies
==3. Technical requirements==
- Iguana works on Iguanacore
- Iguanacore uses Crypto777 technology based on advanced cryptographic algorithms
- Primarily GUI files are to be purely HTML/JS, to be easily portable to all possible platforms (desktops, mobile, web) later.
- No need to use HTTP server to access the HTML files. The files sit locally and are accessed via file:// instead of http://
- The entire Iguanacore codesize is ~1.5 Mb
- the GUI is required to be max. 10 Mb (!)
- No node.js
- No installers
- All platform support: Windows (32 & 64 bit), Linux, OSx, iOS, Android, Chrome app
The application works on Iguanacore. Iguanacore is coded in C and it is platform independent. Building Iguanacore needs crypto777 lib, which is a part of Iguanacore code base. All the dependencies have been removed, except for -lpthread and -lm. Iguanacore is still underdevelopment. With the help of Basilisk nodes Iguanacore will support nearly 100 coins.
SuperNET/Iguana source code - http://github.com/jl777/SuperNET Deveoper wiki - https://phabricator.supernet.org/w/ Iguana APIs - http://docs.supernet.org All latest APIs available to current build of SuperNET/Iguana - http://127.0.0.1:7778
//For DevOps Only// Any executable binaries generated for any platform needs to be a _static_ binary. Binary shouldn't be calling any shared libraries and all such required shared libraries must be packed within the binary to be totally portable and independent.
==3.A Modes of Operations==
The application can operate coins in two modes:
- Non-Iguana (Full Node) - multi-wallet application allowing to create or import other cryptocurrency wallets as native qt-wallets. Basilisk - remote mode - no blockchain - basilisk will use Iguana nodes to process transactions
- Iguana (Full Node) - requires blockchain, to have local access
Basilisk is a remote mode that allows user operate with coins without downloading blockchain of each coin. From technical side Basilisk is a lite mode for Iguana mode, therefore it uses Iguana nodes to process transactions at market driven fees.
Iguana mode is a local full mode requiring blockchain downloaded. Each Iguana full node provides services to the basilisk lite nodes. Users who do not want to rely on other nodes can run an Iguana node. For each coin that is run as a full node, the blockchain data will be automatically downloaded. And Iguana will automatically call Basilisk in case it turns out not to be a full mode.
Each node can be a Basilisk or Iguana on a coin by coin basis, hence user can keep some coins in Basilisk mode and others in Iguana mode. The code for basilisk and iguana is the same, just internal switches to control the behavior for each coin.
//N.B.: Not all of the coins are available in Basilisk mode, so it is to verify which ones are needed and add Basilisk support for those ones.//
==4. Authentication==
User generates a 24-word passphrase (256 bits) to create and encrypt an account. Created passphrase must be saved and securely preserved solely by user, the responsibility for passphrase lost is on user, it can not be restored. Interface must make sure that the passphrase is saved and sould verify it.
Passphrase verification actually finalizes the process of wallet creation. There is no accounts as it is. Passphrase maps to a 256 bit private key. Private key generates coin addresses. So if user wants to log out, he needs to log out from his wallet totally. And he needs to use his passphrase to log in into his wallet back again.
==5. Dashboard==
We should stick to general practice for dashboard in our case and give an overview on major functionality, operations or action statuses and updates. Thus the dashboard must contain:
- Latest transactions (Date, Status, send\request\change, recipient\sender name , amount in CC, amount in reference currency, description or notes)
- Balance on different currencies accounts, all or limited amount mostly used.
More information and modules to be presented in later versions, so the dashboard layout must have kind of card or module structure.
==6. Accounts\Coins\BitBox==
One of the core concept of Iguana is to be accessible for all cryptocurrencies, but due to user security and product reputation only verified coins will be supported. User should add a coin to his account to start using it.
v 0.1 is to support such cryptos as:
- Bitcoin (BTC)
- BitcoinDark (BTCD)
- Dash (DASH)
- NXT (NXT)
- Degecoin (DOGE)
- Influx (INFX)
- Litecoin (LTC)
- Syscoin (SYS)
- Vericoin (VRC)
//N.B. Iguana mode theoretically supports ANY bitcoin protocol coin, so could be 100+ of them. The list of supported cryptos is compiled on 2016.06.02 and should be inspected just before implementation. New verified coins will be steadily added. //
==7. Payments==
User can use Iguana for three basic transactions types:
- sending (Coin A to Coin A)
- receiving (Coin A from Coin A)
- exchange (Coin A to Coin B)
For every outbound transaction (sending, changing, selling) user is prompted to pay the transaction / miner fee, the fees are based on each coin's network. Iguana offers a minimun fee allowing user to encrease it up to his needs manually. There is a linear dependency beetween fee size and transaction speed.
==7.A. Sending==
To send any amount of a currency user needs to state:
- recipient's address in the chosen currency
- an amount of the chosen currency
- any note
- sending from one coin wallet to another one is to be considered as a transfer\change transaction, which is described in details in 7.C.
- for every sending transaction processed the user is charged a fee, the size of the fee depend on each coin network.
==7.A. a. Sending to a contact== User can choose a recipient from the contact book. To better use sending functionality users can create a contact book and give an alias name to any recipient address he did or will send to. More information in Contacts Book paragraph.
Contact details:
- Name
- address
More details for a contact will be implemented in the later versions.
==7. B. Receiving==
User can receive currencies. To do his user provides his Public Address in a form of QR-code or set of symbols to a sender. Once address is used, a new one is generated. Or user can manually generate a new address any time. User also can generate an address for a specific sum.
==7.C. EasyDEX (Change\Transfer)==
TBA
==Contacts==
==9. Settings== ==9. A. Language== The 0.1 version supports the English language only and that setting should be selected and disable for editing.
==9. B. Mode Switcher==
User can choose what modes to apply for each coin he keeps in his wallet. He can switch between Basilisk and Iguana modes. All the need downloadings must occur automatically depending on the mode applied for a coin.
==9. C. Reference Currencies==
Fiats currency is used to illustrate the fiat value of your transactions and see the rate to estimate the fiat value. Iguana must support the following major currencies:
- USD
- EUR
- JPY
- GBP
- AUD
- CAD
- CHF
- NZD
- CNY
- RUB
- MXN
- BRL
- INR
- HKD
- TRY
- ZAR
- PLN
- NOK
- SEK
- DKK
- CZK
- HUF
- ILS
- KRW
- MYR
- PHP
- RON
- SGD
- THB
- BGN
- IDR
- HRK
==9.D. Transaction Fees Policy==
User can set up his general policy for transactions prioritization:
- Low
- Normal
- High
Full Iguana Nodes will be processing transactions for market driven fees. No fees will be charged in the resolution of problems caused by software bugs.