Skip to content

Curriculum · Describing a real-world asset (rwa/1)

Describing a Real-World Asset: A Denomination, Not a Market

5 lessons · For: Anyone tokenizing or referencing a real-world asset who wants the description to be honest, checkable, and not accidentally a security

Tokenizing a real-world asset has mostly meant minting a token and then hunting for people to trade it — which is why almost every such token is illiquid: each is its own market, and a market of one asset has no depth on a day its owner is not selling.

`rwa/1` inverts that. An asset does not get a market; it gets a denomination. The obligations it issues are denominated in a unit that already circulates — Flashy Gold in this estate — so a reward against a Chicago office and one against a Vancouver hotel are the same unit in a holder’s hands, and there is no per-asset liquidity to bootstrap.

Five lessons. You will finish able to describe an asset a stranger can check, and to recognise the shapes the format refuses to let you emit by accident.

Lessons

01

A denomination, not a market

You should be able to: Explain why denominating obligations in a circulating unit avoids the per-asset liquidity trap.

The illiquidity of real-world-asset tokens is structural, not a marketing failure: a token that is its own market needs buyers and sellers of that exact asset present on the same day. Most days they are not, so the token cannot trade at a fair price, or at all.

`rwa/1`’s answer is to stop giving each asset a unit. Obligations are denominated in a unit that already circulates across the whole estate, so the thing a holder holds is fungible with every other holder’s, regardless of which asset backs it. The asset is described and its obligations are recorded; the liquidity lives in the shared denomination, not in a per-asset market that has to be created from nothing.

That is the whole design intent, and everything else in the format serves it: make the denomination legible to a machine, and make the claims behind it checkable by a stranger.

Source: FlashyOS — @flashyos/assetmesh (rwa/1)

02

The document and the asset

You should be able to: Describe the served file and the fields an asset carries.

An organisation serves one `rwa/1` file at `/.well-known/rwa.json`: an issuer, an emit time, and an array of assets that may be empty — an empty register is honest. A stranger fetches it and checks it offline; there is no account, no server and no chain in the loop.

Each asset carries an id (`prefix/slug`, never reissued), a kind (Property, Instrument, Credential, Work or Place), a dotted class like `real-estate.commercial`, and a jurisdiction as an ISO code. The kind-to-prefix map is checked, not merely conventional, and it mirrors `directory/1` deliberately so an asset id resolves in the same graph as everything else the estate publishes.

So an asset is not a free-text description; it is a typed, addressable record whose identifier lives in the estate’s one namespace. That is what lets other records reference an asset by id rather than restating it — the same cite-don’t-copy discipline the vocabulary format keeps.

Source: FlashyOS — rwa/1 mirrors directory/1

03

Attestations: somebody else’s claim, dated and expiring

You should be able to: Explain the independence and expiry rules on an attestation.

An attestation is a claim about the asset — an appraised value, audited financials, custody, title — carrying what is claimed, its value, the date it is true as of, who makes it, and an expiry after that date. Money is recorded as integer minor units with a currency and decimals, never a float.

Two rules make an attestation worth anything. First, an independent claim is not the issuer’s to make: `appraised-value`, `audited-financials`, `custody`, `title`, `insurance`, `environmental` and `occupancy` may not be attested by the issuer themselves — an appraisal signed by the owner is just a number in a PDF, and the whole value of the record is that somebody else put their name to it.

Second, every attestation expires. An undated 2019 valuation presented as current is the most common way an asset record misleads without anybody lying, so decay is structural: a claim nobody restates stops counting on its own, exactly as in `directory/1` and `defined/1`.

Source: FlashyOS — an independent claim is not the issuer’s to make

04

Obligations: what a holder is owed

You should be able to: Describe an obligation and the rule that a reward may not be performance-linked.

An obligation records what a holder is owed against the asset: its kind (reward, revenue-share, equity or debt), whether its worth is performance-linked, its denomination and units, and the organisation on the hook to honour it. Every obligation answers the performance-linked question — the field is required, not optional.

It is required because of the format’s sharpest refusal: a reward may not be performance-linked. An obligation whose worth rises with rent, occupancy or sale proceeds is an investment contract nearly everywhere it is offered — a matter for counsel and a prospectus, not a loyalty programme. Making the field required means the question is answered on every obligation ever emitted, structurally, rather than in a README nobody reads.

This does not make a compliant instrument legal, and no format could. What it does is make the one shape that is reliably a security impossible to emit by accident — which is the honest limit of what a record format can do for you, stated plainly.

Source: FlashyOS — a reward may not be performance-linked

05

Five refusals, not warnings

You should be able to: Explain why the validator refuses rather than warns, and what that buys.

The `rwa/1` validator implements a small set of rules, and each is a refusal with a code, never a warning: a reward cannot be performance-linked, an independent claim cannot be self-attested, an attestation must carry an expiry after its as-of date, and so on. An invalid document does not render with a caveat; it does not validate.

Refusing rather than warning is the difference between a format that guides and one that guarantees. A warning is advice a busy issuer clicks past; a refusal is a document that cannot exist in the broken shape, so the guarantee holds for every reader without anyone having to have read the warning.

The lesson generalises past assets: when a mistake is both easy to make and expensive to make — here, accidentally emitting a security — the honest design encodes the constraint as a refusal the emitter cannot skip, not a note it can ignore. That is why every record format in this estate refuses by name rather than cautioning in prose.

Source: FlashyOS — a projection refuses rather than trims

Frequently asked

Why does rwa/1 give an asset a denomination instead of a market?

Because a token that is its own market is illiquid by construction — it needs buyers and sellers of that exact asset present the same day. Denominating obligations in a unit that already circulates (Flashy Gold) makes what a holder holds fungible across all assets, so there is no per-asset liquidity to bootstrap.

Why can the issuer not attest to their own appraisal?

Because an appraisal signed by the owner is just a number in a PDF. Independent claims — appraised value, audited financials, custody, title, insurance, environmental, occupancy — may not carry `by` equal to the issuer; the whole value of the record is that somebody else put their name to the claim.

What stops rwa/1 being used to emit a security by accident?

A refusal, not a warning: a reward obligation may not be performance-linked, and the performance-linked field is required on every obligation so the question is always answered. It cannot make a compliant instrument legal — no format can — but it makes the one shape that is reliably a security impossible to emit by accident.

Keep going