Real-world asset settlement
Real-world assets (RWA) — invoices, equipment, real estate, milestones, audit reports — bring off-chain truth into on-chain finance. The hard part is the same as in insurance: the chain can't see whether the deliverable actually showed up. OMY provides the verification primitive.
The pattern
┌──────────────────────────────────────────────────────┐
│ Escrow contract on TON │
│ │
│ Collateral: $50,000 USDT │
│ Milestones: │
│ M1 — Site inspection signed off by Auditor A │
│ M2 — Materials delivered (POD from courier) │
│ M3 — Final assembly verified by Auditor B │
│ M4 — Certification issued by Authority C │
│ │
│ On each milestone: ask OMY, release payment │
└──────────────────────────────────────────────────────┘
Each milestone is a yes/no question. The escrow contract asks one at a time; when the oracle returns YES, the next tranche of payment releases to the counterparty.
Example: equipment delivery
Project Atlas-7 — A buyer escrows $50,000 USDT against a 4-milestone equipment-purchase contract with a vendor.
| Milestone | Trigger question | Verification source |
|---|---|---|
| M1 Site inspection | "Did Auditor A sign off on site preparedness by 2026-04-15?" | Signed PDF report; URL pinned in question |
| M2 Materials delivered | "Did courier ABC mark POD complete for shipment X by 2026-05-15?" | Courier's tracking page |
| M3 Final assembly | "Did Auditor B verify equipment commissioning per spec by 2026-06-15?" | Signed acceptance report |
| M4 Certification | "Did Authority C issue Certificate X by 2026-06-30?" | Public registry lookup |
For each milestone:
- Escrow contract calls
RequestResolutionwith the milestone question - OMY assertion lifecycle runs (propose → liveness → finalize)
- On
OracleResult:
- YES → release next tranche to vendor
- NO → halt escrow, optionally trigger dispute / refund
If the project completes all 4 milestones, the full $50,000 has flowed to the vendor. If a milestone fails (NO), the buyer keeps the remaining escrow — possibly with a discretionary refund window before final lockout.
Why RWA is harder than prediction markets
Three properties that make RWA settlement uniquely demanding:
- The questions are more subjective. Did the inspector sign off "properly"? Was the equipment "to spec"? Reasonable people disagree. Mitigated by referencing specific documents + signing authorities, but the residual risk is real.
- The stakes are large. A single milestone can release tens of thousands of USDT. Bond sizing must match.
- The dispute window is long. Off-chain verification of a complex milestone may take days. 7-day liveness is not unusual.
Bond sizing
For RWA escrow, the bond should reflect the value of the milestone, not the average pool size:
milestone_bond = max(
min_bond_floor, // e.g., 1 000 USDT for any milestone
5% × milestone_value // 5% of the tranche being released
)
For a $25,000 milestone tranche, bond = $1,250. Beyond MAX_BOND_CAP (10,000
USDT), OMY delegates security to the resolver — so high-value milestones
should route to a resolver chosen for that escrow specifically (a senior
committee, or DVM stake escrowed against this market).
Question templates for RWA
The single most important integration detail. RWA questions get disputed when they leave room for interpretation. Some templates that work:
Document-signature pattern
"Did the document at
https://escrow.example/m1-report.pdf(SHA-256:abc...123) contain a valid signature from Auditor A's GPG keyxyz...and arecommendationfield equal to"approved", as of2026-04-15 23:59 UTC?"
Why it works: the document URL is fixed, the hash is fixed, the field name is fixed, the signing key is fixed, the deadline is fixed. There's exactly one correct answer.
Authority-registry pattern
"Does the public registry at
https://reg.example.gov/cert/Xshow that Certificate X was issued to entityAcme Corpbefore2026-06-30 00:00 UTC?"
Why it works: registry, query, entity name, deadline all specified.
Performance-threshold pattern
"Did Auditor B's commissioning report (URL + hash) certify that the equipment passed all 12 test cases in spec V1.2 (URL + hash) within 30 days of the M2 completion timestamp?"
Why it works: report URL, spec URL, test count, time bound all specified.
See Question templates for the full guide.
Anti-fraud considerations
import {DocFeatures, DocFeature} from '@site/src/components/docs/DocFeatures';
Related
- Question templates — phrasing precision
- Bonds & fees — sizing for high-stakes claims
- Patterns → Anti-spoof