Things to understand before building on Nexus.
Nexus is a community run project and compared to other crypto projects, our vision reflects the Nexus architecture and development. Nexus is at best a toolbox, and as it stands today will not provide a finished product to users, except the fully functional desktop and mobile wallets. We are confident the community will build applications for end users which will start a symbiotic cycle of organic growth.
To safely connect the wallet and interact with DApps, Nexus has designed Nexus 2FA which will be released with the Tritium++ v6.0 update.
Nexus simple transactions are free, but most operations and contract execution will have fees, this is done to protect spamming the network and to avoid some actors from taking undue advantage.
To know and better understand the fee structure click on the link below.
Nexus makes it very simple to generate tokens with the UI wallet and as of today we can create fungible and non-fungible tokens. The nexus
TokensAPI can be use to create fungible tokens and the
AssetsAPI can be use to create Non-fungible tokens
A fungible token is something that is identical in nature and interchangeable. These tokens can be divided and exchanged for another. Generally, most cryptocurrencies are considered to be fungible. For example, a Bitcoin is fungible. You can trade one Bitcoin for another, and you will end up with the exact same thing. Other examples of fungible asset classes are bonds, commodities, cryptocurrencies, and precious metals.
Non-fungible is something that is distinct or unique and cannot be replaced with something else. A one-of-a-kind trading card is non-fungible. The primary attribute of non-fungibility is uniqueness.
Below image shows the various use-cases which can powered by non fungible tokens
Nexus provides native Names and Namespaces which are one of the important things a developer has to take advantage to provide the best user experience.
Names and Namespaces are special kinds of object registers that are used as locators to other object registers in the blockchain. When an object register is first created (an asset for example) the caller can provide a name for the register. If a name is provided then a Name object register is also created with its register address based on a hash of the name. The Name object also has a address field, which is populated with the register address of the register (asset, token, account etc) that the Name "points" to. In this way, objects can be retrieved by name by first hashing the name to get the Name object's address, retrieving the Name object, and then using the address stored within it to retrieve the object register. A Name then, is best thought of as a named index to object registers
Names on Nexus are of three different types:
Local Names are local to a user account (sig chain). To use a local name you must prefix the name with the owners
usernameseparated by a single colon, e.g.
bob:savings. This is equivalent to saying "look at all the Names registered in the sig chain
boband find one called
savingsand then see what object register it points to". There can only be one Name called
savingsin the sig chain
bob, but another user
alicecan also create a local name called
savings.Creating Names will cost
Namespace are globally unique keyword and Namespaces allow users to provide user-friendly names for their object registers without needing to disclose their username. This is useful for privacy, but also to allow names to be related to a business or some other meaningful context. To avoid name-squatting registering a namespace name attracts a high fee (
These are created within the context of a namespace, which itself is a globally unique keyword. To use a namespaced name you must prefix the name with the namespace separated by a double colon, e.g.
bobscoffeeshop::payments. In this example bob would have first registered the namespace
bobscoffeeshopand created an account to receive payments to (which could be called anything). He then creates a Name with a
address=(register address of the account). From then on, anyone can use the name
bobscoffeeshop::paymentsand it will resolve to the register address of the account. Creating Names within that namespace costs only
Global names require no username or namespace prefix, and are therefore globally unique. These will be likely reserved for use cases where a succinct, unique, name is necessary, for example a token ticker symbol. To avoid needless name-squatting, global names attract a high fee (
Global Name registered and linked to a token will be referred by the ticker
NEXinstead of it's register address
8B5pKxGWgBM9nXzucrqmhdy9PuDHxDi41fqosXZsLTUXGfQ4CXn. This will also be convenient to launch the token on the P2P marketplace or DeFi when available.