Whitepaper

Abstract

NIDCoin is an Ethereum based cryptocurrency which its implementation and offering come in two phases.

The final version of NID-Coin is a stable coin and it is dependant on Maker DAI project. While the source code and business model borrowed from the original Maker’s project, currently it has some issue with the current version of DAI. NIDCoin would be a stable coin after DAI’s second version of its stable coin has been released.

The first phase starts with an ERC-20 standard compliant token named NIDCoin v1. It will be deploying on Ropsten test network and after tests, It will be deploying on Ethereum main network. The goal behind this phase is to integrate NIDCoin v1 with current active projects of NIDCoin team (like metafootball or metaneed) through Web3.js libraries to turn those applications into some so-called DApps.

The second phase starts with a DAI based stable coin named NID. Once version 2.0 of Maker DAO’s DAI released, NIDCoin team begins to work on adapting plan. So, NIDCoin v1 owners will be considered as the governance token holders. This governance token will be called as NIDCoin v2 and then based on Maker DAO’s DAI smart contract; people would be able to issue and burn NIDs which are equivalent of one single dollar each.

Introduction

Ethereum is an open-source, public, blockchain-based distributed computing platform and operating system featuring smart contract functionality through Solidity which is a high level programming language that runs on Ethereum Virtual Machine.

Ether is the underlying token powering the Ethereum blockchain, but it serves a slightly different purpose than Bitcoin does. Although Ether is traded on public markets and has displayed price appreciation similar to Bitcoin, they are quite different by design.

Ether is not intended to be a unit of currency on a peer-to-peer payment network; rather, it acts as the “fuel”-“gas” that powers the Ethereum network.

Like Bitcoin, Ethereum is a distributed public blockchain network. Although there are some significant technical differences between the two, the most important distinction to note is that Bitcoin and Ethereum differ substantially in purpose and capability. Bitcoin offers one particular application of blockchain technology, a peer to peer electronic cash system that enables online Bitcoin payments. While the Bitcoin blockchain is used to track ownership of digital currency (Bitcoins), the Ethereum blockchain focuses on running the programming code of any decentralized application.

What is an ERC?

ERCs (Ethereum Request for Comments) are technical documents used by smart contract developers at Ethereum. They define a set of rules required to implement tokens for the Ethereum ecosystem. These documents are usually created by developers, and they include information about protocol specifications and contract descriptions. Before becoming a standard, an ERC must be revised, commented and accepted by the community through an EIP (Ethereum Improvement Proposal). Actually, an ERC is just a specific type of EIP. ERCs are application-level conventions and standards, and they may be of different types (token, registration name, URI schemes, library, packets, etc.).

What is an ERC-20 token?

Ethereum Request for Comments 20, or ERC-20, is an Ethereum Improvement Proposal introduced by Fabian Vogelsteller in late 2015. It’s a standard by which many popular Ethereum smart contracts abide. It effectively allows smart contracts to act very similarly to a conventional cryptocurrency like Bitcoin, or Ethereum itself. In saying this, a token hosted on the Ethereum blockchain can be sent, received, checked of its total supply, and checked for the amount that is available on an individual address. This is analogous to sending and receiving Ether or Bitcoin from a wallet, knowing the total amount of coins in circulation, and knowing a particular wallet’s balance of a coin. A smart contract that follows this standard is called an ERC-20 token.

Metaneed Network

Metaneed Network, powered by Metaneed Inc., is an intelligent city works through the stable coin of NID. Its MVP is found on www.metaneed.com

It works with all ERC-20 compliant wallets and supports communication services like chat, GPS, posting, opt-in advertising, and a marketplace for the exchange of value among content creators, advisors, business owners, and regular users.

NID Coin token (NIDC)

An ERC-20 compliant token that will power the MetaNeed Network and its ecosystem and marketplace. It will be used to rewarding needs providers, content creators, advisors, business owners, and users as well. NIDC will be used within the platform to exchange value between users for digital content, subscriptions, etc.. It will allow users to tip, transfer via profiles and other channels, tokens to use within the marketplace and opt-in advertising areas of the platform.

Marketplace

An area in which all exchange of value can take place using NIDC token for goods and services, as well as other purchases, can take place within the marketplace.

The main function of NID Coin to generate income and interest will be its marketplace, combining social media features with e-commerce functionality. While we initially expect artists and digital goods to support our marketplace, it will be the future home for a variety of digital services, content providers, entertainment and real-world goods.

Internal structure

ERC-20 came about as an attempt to provide a common set of features and interfaces for token contracts in Ethereum and has proved to be very successful. ERC-20 has many benefits, including allowing wallets to provide token balances for hundreds of different tokens and creating a means for exchanges to list more tokens providing nothing more than the address of the token’s contract. The benefits of creating a token as ERC-20 compliant is such that very few token contracts today are created any other way.

What is a token contract?

There remains a lot of confusion around what token contracts really are. Essentially, a token contract is a smart contract that contains a map of account addresses and their balances. The balance represents a value that is defined by the contract creator: one token contract might use balances to represent physical objects, another monetary value, and a third the holder’s reputation. The unit of this balance is commonly called a token.

Common Attributes

An ERC-20 token contract is defined by the contract’s address and the total supply of tokens available to it but has a number of optional items that are usually provided as well to provide more details to users. These are the token’s name, its symbol, and the number of decimals. Each of these is covered in detail below.

Before going into the details, it is important to understand that there is no central registry for token contracts, so the uniqueness of a particular name or symbol is not guaranteed. Once you have created a token contract you should ask for it to be added to common sites such as Etherscan, MyEtherWallet and CoinMarketCap.

Name

The name of the token contract is the name by which the token contract should be known, for example, “My token”. There is no restriction on the length of this name, but long names might be truncated in some wallet applications so it’s best to keep the name short.

Symbol

The symbol of the token contract is the symbol by which the token contract should be known, for example, “MYT”. It is broadly equivalent to a stock ticker, and although it has no restriction on its size, it is usually 3 or 4 characters in length.

Decimals

Decimals are a common source of confusion but are quite easy to understand with a suitable explanation. Decimals refer to how divisible a token can be, from 0 (not at all divisible) to 18 (pretty much continuous) and even higher if required. Technically speaking, the decimals value is the number of digits that come after the decimal place when displaying token values on-screen. The reason that decimals exist is that Ethereum does not deal with decimal numbers, representing all numeric values as integers.

Total Supply

“totalsupply” is the final item that defines an ERC-20 token contract, and as mentioned is the sole mandatory parameter. Although not explicitly stated in the ERC-20 specification the definition of “totalsupply” is simple: “totalsupply” equals the sum of all balances.

Functions

ERC-20 token contracts come with a number of functions to allow users to find out the balances of accounts as well as to transfer them from one account to another under varying conditions. These functions are described below.

balanceOf()

The balanceOf() function provides the number of tokens held by a given address. Note that anyone can query any address’ balance, as all data on the blockchain is public.

transfer()

There are two ways to send tokens from one address to another. The transfer() function transfers a number of tokens directly from the message sender to another address. Note that there are no checks made on the recipient address, so it is incumbent on the sender to ensure that the recipient is as intended.

approve()

When calling this function, the owner of the contract authorizes or approves, the given address to withdraw instances of the token from the owner’s address.

transferFrom()

This function allows a smart contract to automate the transfer process and send a given amount of the token on behalf of the owner.

allowance()

The allowance() function provides the number of tokens allowed to be transferred from a given address by another given address. Note that anyone can query any address’ allowance, as all data on the blockchain is public. It is important to understand that allowances are “soft”, in that both individual and cumulative allowances can exceed an address’ balance.

Events

ERC-20 defines two events that must be triggered when the contract takes the relevant action. The first event is Transfer() which emits details of the movement of tokens from one address to another. The second event is Approval() which emits details of approvals of tokens from one address to another. These can be used to keep track of balance and allowance changes for addresses without needing to poll the blockchain.

Minting tokens emit a Transfer() event with the 0 address as the source.

There is no event emitted when tokens are burned. Due to this, ERC-20 token contracts that burn tokens commonly transfer() the tokens to the 0 address in lieu of real burning.

Integration plan

The Problematic parts in integrating an ERC-20 token to any application / Exchange are:

  1. In-sufficient libraries for all technologies
  2. The installation of the Ethereum Node
  3. The deployment of the respective contracts (that differ from token to token)
  4. The seamless communication between the nodes
  5. The application for the respective contracts for the respective commands.

These all the above problems solving by creating an Add-on that is written on of Ethereum supported programming languages preferably Node.JS platform. All needed to do is:

  1. Install the written add-on on a separate instance.
  2. Install the Ethereum Node
  3. Connect the add-on to the Ethereum Node using the API’s provided
  4. Add the required ERC-20 tokens by keying in a couple of information about the token.
  5. Supply the respective commands from application or exchange to the Add-on via the JSON RPC instructions (Examples: Send coins, Receive coins, etc. ). The application or Exchange can be in any technology. All needed to do is supplying data to the Add-on and consume data from the Add-on via. JSON RPC

Development toolset

Ethereum opened the blockchain for numerous possibilities by implementing smart contract support on its system. This, in turn, opened up Ethereum to a vast majority of developers to create any sort of application that is possible to run on the blockchain by developing smart contracts in Ethereum specific languages like Solidity, Serpent, and LLL.

Leaving languages aside, several Ethereum Development Tools have been developed over the years to make developers lives less cumbersome.

Mist

Mist Browser (formerly Ethereum Dapp Browser) is the end-user interface for Ethereum. It’s the tool of choice for browsing and using Dapps and is specifically designed for non-technical users. Mist has the following functionalities:

  • Send Transactions
  • Receive transactions
  • Store Ether
  • Create multi-signature wallets
  • Deploy Smart Contracts
  • View the State of the Blockchain

Geth

Geth is a multipurpose command line tool that runs a full Ethereum node implemented in Go. It offers three interfaces: the command line subcommands and options, a Json-rpc server and an interactive console.

Remix

Previously known as Browser-Solidity, Remix is a web-based IDE specifically aimed at solidity and the Ethereum Development Environment. It has the following use cases:

  • Compile the code with up to date compiler versions
  • Deploy and Run smart contract on customized environments like a JavaScript Virtual Machine or an Injected Web3.js provider.
  • Allows you to import code from GitHub and Swarm

Metamask

While Metamask isn’t really a ‘browser’, it turns Google Chrome into an Ethereum browser that allows it to fetch data from the blockchain and allows users to send or receive signed transactions securely. The extension injects the Ethereum web3 API into every website’s javascript context, so that DApps can read directly from the blockchain. Metamask is easily installable on chrome, opera, and firefox as a browser extension.

Web3.js

web3.js is a collection of libraries which allow you to interact with a local or remote Ethereum node, using an HTTP or IPC connection. The following documentation will guide you through installing and running web3.js, as well as providing an API reference documentation with examples.

Truffle

Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. With Truffle, a developer is able to access the following features:

  • Built-in smart-contract compilation, linking, deployment, binary management.
  • Automated contract testing with Mocha and Chai
  • Configurable build pipeline with support for custom build processes
  • Scriptable deployment & migrations framework
  • Network management for deploying to public & private networks
  • Interactive console for direct contract communication
  • An Instant rebuilding of assets during development
  • External script runner executes scripts within a Truffle environment

Ethereum compatible wallets

An Ethereum wallet is a gateway to decentralized applications on the Ethereum blockchain. It allows users to hold and secure Ether and other crypto-assets on Ethereum, as well as write, deploy and use smart contracts.

As NID Coin v1 is an ERC-20 token, it would be supported by all range of compatible wallets. The wallet generally dividing into the following types:

Web-based wallets

Web wallets are those kinds of wallets that are accessible from web browsers. They are supported by all platforms and devices through web protocols. List of popular Ethereum web wallets are as follow:

  • Coinbase (Centralized)
  • MyEtherWallet (Decentralized and client-based)
  • Eth Hot Wallet (Centralized)

Mobile wallets

They run as a mobile app on the major platforms IOS and Android.

  • Jaxx (IOS and Android)
  • Coinbase (IOS and Android)
  • Trust Wallet (IOS and Android)

Desktop wallets

Desktop wallets are different from mobile wallets as they tend to be used on personal computers (desktops or notebooks).

  • Exodus (Windows, Mac OS, and Linux)
  • Mist (Windows, Mac OS, and Linux)
  • Jaxx (Chrome extension on all platforms)
  • MetaMask (Chrome and Firefox extension)

Hardware wallets

A hardware wallet is a special type of wallet which stores the user's private keys in a secure hardware device. They have major advantages over standard software wallets. Private keys are often stored in a protected area of a microcontroller, and cannot be transferred out of the device in plaintext.

  • Ledger Nano S
  • Trezor
  • KeepKey

Obtaining methods

The main method for an investor to obtain v1 tokens is to have them by buying one of NID plans. All NID Coin v1 tokens created at once and will be kept into an owner account, then specific and ordered portion of tokens would be transferable into other investment accounts.

Those are the pioneer investors, and in the future, they will benefit from their initial investment opportunity as they are able to attract the first wave of mass clients into their own plan.

The next way to obtain NID Coin v1 tokens is to participate in the content providing subnetwork systems like MetaFootball v2, MetaTradex v2, etc..

The content providers would be pleased by getting paid by NID Coins as their content getting virals.

The final method for getting NID Coin v1 is like other ERC-20 tokens. They are also available on markets and exchanges as NID Coin v1 will be deployed into major exchanging services.

After the first phase of the project has been settled, it’s time to reveal NID the stable coin. The NID is relying on its governance token NID-Coin v2 which is simply an evolution from v1 tokens but only used for controlling NID ecosystems. The way v2 tokens exchanging is exactly looked like v1 series, but their owners have the power to pass direct decisions on NID market.

NID Coins themselves are only available through putting equivalent collaterals values which actually are the v2 governance tokens. So they would be created on demand and would be burned on its due date.