AssetMesh
A FlashyOS layer · the denomination layer

Tokenising an asset gives it a market. AssetMesh gives it a denomination.

AssetMesh is the denomination layer for real-world assets — a FlashyOS layer. It is an open record format, rwa/1, that describes an asset, the independent attestations behind it, and the obligations issued against it, in a unit that already circulates.

npx assetmesh adopt@flashyos/assetmesh
The problem

A market of one asset has no market

Tokenising a real-world asset has meant minting a token and then hunting for a market. That is the wrong order, and it is why almost every RWA token is illiquid: each asset becomes its own market, and a market of one asset has no depth on any day its owner is not selling.

The inversion

An asset does not need its own market. It needs a unit somebody already holds. Obligations issued under rwa/1 are denominated in a unit that already circulates — so a reward against a Chicago office building and a reward against a Vancouver hotel are the same unit in a holder’s hands. There is no per-asset liquidity to bootstrap, because there is no per-asset unit.

The format

Five rules, and each one refuses

Not warnings. A record that breaks any of these does not validate, and the code beside each rule is the one validateRecord emits — checked against the package, not written from memory.

01A reward may not be performance-linkedreward-performance-linked

An obligation whose worth rises with rent, occupancy or sale proceeds is an investment contract nearly everywhere it is offered. The field is required on every obligation, so the question is answered every time rather than noticed later — and the one shape that is reliably a security cannot be emitted by accident.

02An independent claim is not the issuer’s to makeattestation-not-independent

An appraisal signed by the owner is a number in a PDF. Seven claim types — appraised value, audited financials, custody, title, insurance, environmental, occupancy — are refused when the party making them is the party they are about.

03Every attestation expiresattestation-no-expiry

An undated 2019 valuation presented as current is the most common way an asset record misleads, and it does so without anybody lying. Decay is structural: a claim nobody restates stops counting on its own.

04Money and units are integersmoney-not-integer

Integer minor units with the decimals stated. Floats drift, and every settlement rail rejects fractions.

05The starter refuses itselftemplate-placeholder

npx assetmesh adopt writes a record that deliberately does not pass. A checker that says “valid” over org/your-organisation teaches the adopter, on the first run they ever do, that a green check means nothing.

What validity does not mean

A record that validates is well-formed. It is not true. No format can vouch for the claims inside it, and one that implied it could would launder an assertion into a verdict. What a reader gets is narrower and honest: who claims what, as of when, until when, and whether the party making a claim is the party it is about.

Where it sits

The present tense

An asset record is a standing description of what is true now — restated as facts change, stale when nobody restates it. So it takes the backlog’s shape rather than the shiplog’s, and for the same reason it cannot be sealed into a checkpoint: there is no digest to commit to.

FormatTenseSealedDecays
backlog/1futurenoyes
rwa/1presentnoyes
shipped/1pastyesno
Adopt it

Four steps, and only one is work

01
Write a record

One file, at your own domain. It does not validate yet, and it names every placeholder still in it.

npx assetmesh adopt
02
Name a third party

Replace each independent attestation’s author with the appraiser, auditor or custodian who actually made the claim. This is the work; the rest is typing.

03
Check it

Every problem at once, with a path and a stable code. Exit 1 on any.

npx assetmesh check
04
Serve it

At /.well-known/rwa.json. A committed file is not a served file — the failure this estate has made most often is checking the repository instead of the domain.

Served at /.well-known/rwa.json

What is true today

Shipped, and open

Two states, and the second one is on the page on purpose. A launch page that lists only what works reads as a page where everything works.

shipped
The rwa/1 format and its spec

packages/assetmesh, Apache-2.0.

shipped
The validator, with no dependencies

Runs before an install, in a browser, and in a repository with no package.json.

shipped
A JSON Schema

Shape-only, and differentialled against the validator rather than eyeballed.

shipped
npx assetmesh adopt / check

Two commands and no configuration.

open
An issuer publishing a live record

No estate property serves an rwa/1 record yet. A format fully distributed and publishing nothing is worse than no adoption — so this row stays open until a domain answers.

open
Redemption against Flashy Gold

The denomination argument is what the format is for, and the rail that honours an obligation is a separate build with a separate decision behind it.

Where AssetMesh itself stands

A section on flashyos.com. It gets its own domain when this is true, and not before: One asset issuer outside this estate publishes an rwa/1 record at its own domain, with an independent attestation on it. not yet · adoption-signal.json · independentAdopters