@flashyos/assetmesh
v0.1.0
Published
rwa/1 — a machine-readable record of a real-world asset, the attestations that stand behind it, and the obligations issued against it. Dependency-free, publishable at your own domain, verifiable by anyone.
Maintainers
Readme
@flashyos/assetmesh
rwa/1 — a record format for real-world assets. One file at your own
domain. No account, no server, no chain, no permission.
npx assetmesh adopt # write public/.well-known/rwa.json
npx assetmesh check # validate itWhy
Tokenising a real-world asset has meant minting a token and then hunting for a market. That 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.
rwa/1 gives an asset a denomination instead of a market. Obligations are
issued in a unit that already circulates, so a reward against a Chicago office
building and one 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.
Install
npm i @flashyos/assetmeshimport { validateRecord, isValid } from '@flashyos/assetmesh';
const problems = validateRecord(JSON.parse(await (await fetch(url)).text()));
if (problems.length) for (const p of problems) console.error(p.path, p.code, p.message);validateRecord returns every problem, not the first. isValid is sugar
over it.
The five rules
- 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. The field is required, so the question is answered on every obligation ever emitted.
- An independent claim is not the issuer's to make. An appraisal signed by the owner is a number in a PDF.
- Every attestation expires. An undated 2019 valuation read as current is how these records mislead without anybody lying.
- Money and units are integers. Floats drift.
- The starter's placeholders are refused.
assetmesh adoptwrites a record that does not pass, deliberately.
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 you get is narrower: who claims what, as of when, until when, and whether the party making a claim is the party it is about.
Zero dependencies
This package imports nothing but node: builtins. The validator runs in a
browser, in a repository that has never heard of FlashyOS, and before an
install. vendor-assetmesh.mjs is the same validator as a single file to copy
in where there is no package.json at all.
Spec
SPEC.md · https://flashyos.com/assetmesh
The company this would become
docs/ carries the spinout preparation, written inside the package so it
travels with an extraction rather than staying behind in the monorepo:
BRAND.md (identity, palette, the refusals),
NARRATIVE.md (the argument, and where it sits in the
mesh), SEO.md (keywords, GEO, geography, mesh-linking) and
FORMATION.md (what has to be true first).
Nothing has been spun out. The gate is one asset issuer outside this estate publishing a record at its own domain, and it reads 0.
Apache-2.0.
