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 →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.
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.
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.
reward-performance-linkedAn 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.
attestation-not-independentAn 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.
attestation-no-expiryAn 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.
money-not-integerInteger minor units with the decimals stated. Floats drift, and every settlement rail rejects fractions.
template-placeholdernpx 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.
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.
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.
| Format | Tense | Sealed | Decays |
|---|---|---|---|
| backlog/1 | future | no | yes |
| rwa/1 | present | no | yes |
| shipped/1 | past | yes | no |
One file, at your own domain. It does not validate yet, and it names every placeholder still in it.
npx assetmesh adoptReplace each independent attestation’s author with the appraiser, auditor or custodian who actually made the claim. This is the work; the rest is typing.
Every problem at once, with a path and a stable code. Exit 1 on any.
npx assetmesh checkAt /.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
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.
packages/assetmesh, Apache-2.0.
Runs before an install, in a browser, and in a repository with no package.json.
Shape-only, and differentialled against the validator rather than eyeballed.
Two commands and no configuration.
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.
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.
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