Real World Assets
A real-world asset (RWA) is a physical thing or a right represented by a token: a machine, a vehicle, a plot of land, a licence, a share of something. On Neurai the token is a native asset validated by consensus, so there is no contract to write, deploy or audit. This page shows how to model an RWA with the asset types Neurai already has, how to issue and operate it from the command line, and how to trade it.
Which asset type for which thing
| You want to represent | Use | Example | Why |
|---|---|---|---|
| One specific item | Unique asset | ACME#MACHINE_0042 | Exactly one indivisible unit, with its own IPFS metadata |
| Shares of one item, or a batch of identical items | Root or sub-asset with units | ACME/PLANT_A with 1,000 units and 2 decimals | Divisible, transferable, reissuable while the owner allows it |
| A regulated instrument | Restricted asset gated by qualifiers | $ACME_SHARES with verifier #KYC & !#BLOCKED | Only tagged addresses can hold it, and the issuer can freeze |
| A device identity or a membership that must not be resold | DePIN asset | &ACME/FLEET_A | Soulbound, revocable, with sections. Testnet and regtest for now |
| A right to something else | Sub-asset under the issuer | ACME/LICENCE_2026 | Inherits the trust of the issuer's root name |
The issuer always keeps the owner token (ACME!), which is the key that can mint, reissue and change metadata. See Assets for the full type list and costs.
Lifecycle
Patterns
Registry of items
One unique asset per physical unit under a sub-asset per product line. The blockchain becomes the registry: who issued the item, who holds it now and every transfer in between are public and verifiable. The item's description lives in an IPFS document referenced by the asset.
Fractional ownership
A root or sub-asset with a fixed supply and decimals, where each unit is a share of the thing. Because assets are UTXO based, holdings and transfers are tracked like coins, and a dividend can be paid to every holder in one transaction with the owner token.
Regulated instrument
A restricted asset whose verifier expression names the qualifiers an address must hold. The issuer tags addresses after off-chain checks, can freeze one address or the whole asset, and can change the verifier on reissue. Nothing in the flow needs a contract.
Device-bound asset
A unique asset sent to the device's own address ties the token to the hardware. The device proves it holds the asset by signing, reports through DePIN messaging and can carry a BGrid location in its metadata. For memberships that must not be resold, use a DePIN asset instead.
Worked example: a fleet of machines
Every command below runs against a node with assetindex=1. Amounts are in XNA and are burned, not paid to anyone.
# 1. The issuer's namespace. Burns 1,000 XNA and creates ACME!
neurai-cli issue "ACME" 1 "" "" 0 true false
# 2. A product line as a sub-asset. Burns 200 XNA and creates ACME/PRESS!
neurai-cli issue "ACME/PRESS" 1 "" "" 0 true false
# 3. One unique asset per machine, with its IPFS document. Burns 10 XNA each.
neurai-cli issueunique "ACME/PRESS" '["SN_0041","SN_0042"]' '["QmHash41","QmHash42"]'
# 4. Hand the machine to its buyer, or to the machine's own address.
neurai-cli transfer "ACME/PRESS#SN_0042" 1 "Nbuyer..."
# 5. Anyone can audit it.
neurai-cli getassetdata "ACME/PRESS#SN_0042"
neurai-cli listaddressesbyasset "ACME/PRESS#SN_0042"
Signatures of the RPCs used:
issue "asset_name" qty "( to_address )" "( change_address )" ( units ) ( reissuable ) ( has_ipfs ) "( ipfs_hash )"
issueunique "root_name" [asset_tags] ( [ipfs_hashes] ) "( to_address )" "( change_address )"
transfer "asset_name" qty "to_address" "message" expire_time "change_address" "asset_change_address"
reissue "asset_name" qty "to_address" "change_address" ( reissuable ) ( new_units ) "( new_ipfs )"
Every operation is also available from JavaScript through @neuraiproject/neurai-assets, without handing keys to a node.
Compliance: qualifiers and restricted assets
# Tags the issuer will grant after its own checks. Burns 2,000 XNA each.
neurai-cli issuequalifierasset "#KYC" 1
neurai-cli issuequalifierasset "#BLOCKED" 1
# The instrument. Burns 3,000 XNA. Only addresses matching the verifier can hold it.
neurai-cli issuerestrictedasset '$ACME_SHARES' 100000 "#KYC & !#BLOCKED" "Nissuer..." "" 2 true false
# Approve an investor, then send.
neurai-cli addtagtoaddress "#KYC" "Ninvestor..."
neurai-cli transfer '$ACME_SHARES' 250.00 "Ninvestor..."
# Emergency controls.
neurai-cli freezeaddress '$ACME_SHARES' "Ninvestor..."
neurai-cli freezerestrictedasset '$ACME_SHARES'
A transfer to an address that does not satisfy the verifier is rejected by consensus, not by an application.
Trading
- Neurai Swap is a non-custodial marketplace for assets against XNA. The asset and the payment move in one atomic transaction, so there is no escrow: either both sides settle or nothing happens. The mechanism is the classic Ravencoin atomic swap, documented in the node repository under
doc/atomicswaps.md. - With POSITRONIC, sell orders can be expressed as covenants that allow partial fills: a buyer takes part of the offer and the remainder re-creates the same order on-chain.
@neuraiproject/neurai-scriptsships the builder. Testnet only until activation.
Metadata
The IPFS hash attached to an asset should point to a JSON document that describes the item. There is no enforced schema, but a consistent one makes explorers and wallets useful:
{
"name": "Hydraulic press SN_0042",
"description": "ACME PRESS line, 40 t, manufactured 2026-03",
"image": "ipfs://Qm.../press.jpg",
"manufacturer": "ACME",
"serial": "SN_0042",
"location": "little airport aunt chief",
"documents": ["ipfs://Qm.../ce-certificate.pdf"]
}
Metadata can be replaced on reissue while reissuance stays enabled, which is how a certificate renewal or a change of location is recorded. Lock reissuance when the record must become permanent.
Good practices
- Keep the owner token in a multisig or a hardware wallet. Whoever holds
ACME!controls every asset below it. - One namespace per issuer, one sub-asset per product line. Names are public and permanent, so plan them before issuing.
- Put facts in metadata, not in names. Names are limited to 32 characters and cannot change. IPFS documents can.
- Use restricted assets when the law requires it, not by default. Regular unique assets are cheaper and simpler for registries.
- Prefer DePIN assets for identities. A device identity or a membership should not be sellable by its holder.
Further reading
- Assets: all types, naming rules and burn costs.
- Asset model: script encoding and transaction layouts.
- DePIN: soulbound assets and private messaging for the devices behind your assets.
- IoT development: device identity and reporting from an ESP32.