Skip to main content

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.

MachineVehiclePlot of landLicenceUnique assets on-chainISSUER#MACHINE_0042issuer keeps ISSUER!, the owner tokenholders transfer without an intermediaryIPFS metadata describes the itemDePIN messagingthe device reports on itselftelemetry, alertscommands from the ownerBGridlocation as four wordsstored in the assetprecision you choose

Which asset type for which thing

You want to representUseExampleWhy
One specific itemUnique assetACME#MACHINE_0042Exactly one indivisible unit, with its own IPFS metadata
Shares of one item, or a batch of identical itemsRoot or sub-asset with unitsACME/PLANT_A with 1,000 units and 2 decimalsDivisible, transferable, reissuable while the owner allows it
A regulated instrumentRestricted asset gated by qualifiers$ACME_SHARES with verifier #KYC & !#BLOCKEDOnly tagged addresses can hold it, and the issuer can freeze
A device identity or a membership that must not be resoldDePIN asset&ACME/FLEET_ASoulbound, revocable, with sections. Testnet and regtest for now
A right to something elseSub-asset under the issuerACME/LICENCE_2026Inherits 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

1Issueroot and sub-assetdefine the namespace2Mintone unique assetper physical item3Assigntransfer to the owneror to the device itself4OperateDePIN reports, BGridlocation, Neurai Swap5Updatereissue metadata,freeze or revoke

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-scripts ships 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.