Introduction
Welcome to Nxos
Nxos is a high-performance ledger software designed for fintechs, offering seamless operation on the cloud or on-premises. Our platform is optimized to handle complex multi-hop transactions, ensuring scalability and reliability even under high-volume scenarios. With Nxos, you can define custom assets, model intricate asset moves in a single atomic transaction, and easily integrate with your existing infrastructure through our intuitive REST APIs.
Core Concepts Overview
To effectively use Nxos, itβs essential to understand the following core concepts.
Ledger
The central data structure that holds all financial information in nxos
Account
An entity within the ledger that holds assets
Asset
Something of value that can be moved between accounts
Asset Move
The move of an asset from one account to another
Transaction
A group of asset moves executed together as a single, atomic operation
Balance
The amount of a specific asset held by an account at a given time
Get Started π
1. Create a Ledger
The ledger serves as the foundation of the system. Users have the flexibility to create one or multiple ledgers based on their requirements. A ledger acts as a namespace for all subsequent data types. Users can opt for a single ledger for all their operations, create separate ledgers for each operational country, or even have a ledger per user or asset. The choice is entirely in the usersβ control.
2. Define Assets
After creating a ledger, users need to define at least one asset within that ledger. A default configuration with all 180 global currencies is available for selection. Users can choose this default set, create their own custom assets, or use a combination of both. Additional assets can be added later as needed.
3. Initialize Accounts
With the ledger and assets in place, users can now initialize accounts. Each account must be associated with an asset and have defined rules specifying the minimum and maximum balance allowed. By default, the minimum balance is set to 0, and the maximum balance is set to the maximum value for int64 (bigint). Users can customize these rules, allowing for negative minimum balances (e.g., for a faucet account) or defining overdraft rules. It is recommended to create at least two accounts initially to enable trading. Account balances are set to 0 upon initialization and cannot be set to any other value at the beginning.
If non-zero starting balances are required, an account with overdraft can be created, and asset moves from that account to existing accounts can be modeled to achieve the desired starting balances.
4. Record Transactions
With the ledger, assets, and accounts defined, users can start recording transactions between accounts using the defined assets. The system will keep track of balances and other relevant information.
Customizing Operational Types (Optional)
Account Types
Users can create additional operational types for account types, such as receivable accounts, payable accounts, or any other specific account type. A default universal account type is used as a fallback if not otherwise defined.
Asset Move Types
Users can define additional asset move types, such as fees, remittance types, card types, etc. A universal fallback type called TRANSFER
is
available by default.
Decline Types
Custom decline types can be defined for scenarios where declines need to be modeled on the ledger, such as REMITTANCE_RECEIVER_UNAVAILABLE
. All
codes used for operational types must be unique.
The ledger system is designed to efficiently query transactions, accounts, and other entities based on these operational types.
Happy transacting! π