AI and Future Finance
Build Your RWA System
Integrate a rights model, state machine and tests into an educational system.
What you will learn
- Specify an end-to-end educational model
- Demonstrate failure handling with deterministic tests
AI-assisted educational manuscript. This capstone runs a local, fictional accounting model. It issues no real tokens and connects to no wallet, account, database or model provider.
Learning objectives
- Connect a rights model, deterministic transition and meaningful tests.
- Separate business authorization from an attempted technical action.
- State what a passing educational model proves and leaves unverified.
Choose a deliberately bounded system
The capstone represents shares in a fictional pool. Its assumed rule is simple: one eligible, paid subscription may create its authorized units once. The exercise does not establish a real fund, legal entitlement or financial service. The BIS's arrangement framework reminds us that code represents only part of the relationship between an asset and its holder. BIS
Use integer teaching units for both paid amounts and prices. Do not mix currencies or silently introduce floating-point fractional shares. The example requires an exactly divisible amount; a real instrument would need an evidenced fractional-unit and rounding policy.
Worked example: runnable local transition
Save the following as learning-model.mjs in a temporary exercise directory. This creates a new exercise file; it is not the name of an existing repository module. With Node.js installed, run node learning-model.mjs. The expected output is Educational invariants passed. No network or credentials are needed.
import assert from 'node:assert/strict';
function issue(state, id, price) {
const sub = state.subscriptions[id];
if (!sub || !sub.eligible || sub.issued ||
!Number.isSafeInteger(price) || price <= 0 ||
!Number.isSafeInteger(sub.paid) || sub.paid <= 0 ||
sub.paid % price !== 0) {
return { ok: false, state };
}
const units = sub.paid / price;
if (!Number.isSafeInteger(state.units + units)) {
return { ok: false, state };
}
return {
ok: true,
state: {
units: state.units + units,
subscriptions: {
...state.subscriptions,
[id]: { ...sub, issued: true },
},
},
};
}
const initial = {
units: 0,
subscriptions: {
paid: { paid: 2000, eligible: true, issued: false },
blocked: { paid: 2000, eligible: false, issued: false },
},
};
const first = issue(initial, 'paid', 10);
assert.equal(first.ok, true);
assert.equal(first.state.units, 200);
assert.equal(initial.units, 0);
assert.equal(issue(first.state, 'paid', 10).ok, false);
assert.equal(issue(initial, 'blocked', 10).state, initial);
assert.equal(issue(initial, 'missing', 10).ok, false);
assert.equal(issue(initial, 'paid', 0).ok, false);
assert.equal(issue(initial, 'paid', 3).ok, false);
console.log('Educational invariants passed');
The normal case creates 200 units from 2,000 at a price of 10. The duplicate is rejected. The ineligible case preserves the original state. Missing subscriptions, zero price and a nondivisible price are rejected. The original object remains unchanged when the normal transition returns a new state.
Connect the model to a rights map
Write down the holder's assumed claim, issuer, payment evidence, register and exit. In this exercise those are design declarations, not verified institutions. eligible: true is an input assumption, not a KYC system or a human approval. A production implementation would need an authorized evidence source for that value and every writer able to change it.
Add one extension at a time. A proposed redemption extension needs unit reservation, valuation, payment and failure states; a research extension needs source versioning and review. Do not infer that this website already implements those future modules. Existing Labs and Build pages describe their actual available scope.
NIST's AI RMF is relevant if an AI assistant is later proposed, but such an assistant would still need a task boundary, evaluation and authority controls. It is not required to execute this deterministic exercise. NIST: Core
Common misconceptions
“The tests passed, so a real asset is tokenized.” The tests prove only the stated local model behavior.
“A Boolean is a verified identity.” It is an assumption until connected to an authorized process.
“Adding a network makes the legal model complete.” Connectivity does not supply rights, custody or authorization.
Risks and limits
The exercise omits concurrency, persistent storage, payment finality, signatures, real eligibility and legal review. It is intentionally unsuitable for financial execution. Passing tests do not prove production security or commercial readiness. Record those limits rather than expand the success claim.
Exercise and answer
Exercise: Add a subscription paid with 20 and price 10. What should happen on the first and second attempts? What remains outside the proof?
Answer: The first creates two units and marks that case issued; the second is rejected without new units. Actual payment, identity, legal rights and production behavior remain unverified assumptions.
Related learning
Review earlier phases from Learn, compare rights in Labs and inspect the actual scope of Build. No nonexistent sandbox or provider is required.
Source map
bis-tokenisation supplies international arrangement context; nist-ai-rmf-core supplies voluntary AI-risk context. Both were directly read on 2026-10-18. The code, cases and assumed rights are original teaching material. The code is a local exercise, not a deployed contract or financial execution service.
Check your understanding
Preparing knowledge-check controls…
Your answer stays in this tab. No account or persistent completion record is created.
Source evidence
The tokenisation continuum
Retrieved: 2026-10-18 · VERIFIED OFFICIAL · VERIFIED
AI RMF Core
Retrieved: 2026-10-18 · VERIFIED OFFICIAL · VERIFIED
Report an editorial correction · [email protected]
Include the page or chapter ID, the exact statement and supporting sources. Your email app opens; this site sends nothing. Do not include account details, balances, identity documents or private keys.