A position-sensitive encoding standard for machine-to-machine transport demand discovery.
UODI is a 91-character fixed-width ASCII string that encodes a complete transport demand — mode, cargo type, quantity, origin, destination, schedule, and service level — without schema negotiation, bilateral API agreements, or premature identity disclosure.
One string. Any transport mode. Any infrastructure. Parseable in O(1).
P120-PASS-ROAD-****-****-****-****-****-********-P0003-6GF3V7______0000-6GF9M2______0000-270226-M015-F6DA
This single string encodes: 3 passengers, road transport, anonymous buyer, origin zone, destination zone, date 27/02/2026, 15-minute SLA. The last 4 characters (F6DA) are a CRC-16-CCITT integrity checksum — tamper-evident, computed over the canonical 87-character payload.
Website & full specification: o4db.org/uodi
Every existing transport matching system requires one of these before any competitive matching occurs:
- Bilateral API integration — proprietary schema agreements between each pair of participants
- Full identity disclosure — buyer must reveal exact origin, destination, and identity upfront
- Platform lock-in — demand only reaches carriers inside a closed ecosystem
UODI solves all three:
| Problem | UODI Solution |
|---|---|
| Schema negotiation | Fixed positional blocks — any parser reads any conforming string |
| Premature identity exposure | Anonymous broadcast (Phase 1) → bilateral disclosure (Phase 2) |
| Platform dependency | Transport-layer agnostic — works over HTTP, MQTT, UDP, satellite, LPWAN |
| No integrity check | CRC-16-CCITT embedded in every string |
| 2D location only | 3D geospatial encoding (lat/lon/altitude) in fixed-width GPF format |
UODI is not just compact — it is architecturally lighter than every alternative at every level:
| System | Message size | Parsing | Privacy | Broadcast |
|---|---|---|---|---|
| UODI | ~91 bytes | O(1) positional | Progressive (native) | Open, no pre-agreement |
| JSON / REST APIs | 220–500 bytes | Tree deserialization | None — full exposure | Requires auth + session |
| XML / EDI | 300–1,200 bytes | Complex parser | None | Bilateral schema required |
| Freight platforms | N/A | Platform-dependent | Low (visible to operator) | Closed ecosystem |
At 1 million messages/day, UODI uses 50–70% less bandwidth and 80–90% less CPU than JSON-based equivalents. At IoT or satellite scale, the gap widens further.
| Metric (1M msg/day) | UODI | JSON/REST | XML/EDI |
|---|---|---|---|
| Data volume | ~90 MB | ~210 MB | ~290 MB |
| CPU parse time | ~0.5 s | ~4 s | ~10 s |
| Memory per message | ~135 bytes | ~700 bytes | ~1,500 bytes |
| Monthly egress cost | ~$2.70 | ~$6.30 | ~$8.70 |
UODI enables anonymous demand broadcast followed by cryptographic identity disclosure upon bilateral agreement.
Phase 1 — Anonymous Discovery
──────────────────────────────
Buyer emits UODI with:
OWNR = ******** (identity locked)
DEST = ???????????????? (destination locked)
Carriers filter on: MODE, TYPE, CLAS, PRIO, CANT, approximate ORIG
CHK4 commits all demand parameters publicly.
No sensitive data is transmitted.
Phase 2 — Cryptographic Handshake
──────────────────────────────────
Upon bilateral agreement:
Buyer discloses exact ORIG, DEST, and OWNR
Carrier verifies CHK4 against disclosed values
Any field modification → CRC mismatch → rejected immediately
No oracle, notary, or external registry required.
UODI encodes location as [GEOHASH_12][SIGN][ZZZ] in exactly 16 characters — from approximate region to sub-centimeter robotic docking precision within the same fixed-width field.
| Mode | Example | Precision | Use case |
|---|---|---|---|
| Exact | AR69Y7PGXQWT+120 |
≈3.7 cm | Drone docking pad |
| Reduced | AR69Y7PG____0000 |
≈610 m | City block |
| Vague | AR69Y7______0000 |
≈±20 km | Regional broadcast |
| Incognito | ???????????????? |
None | Locked until handshake |
Demand types: PASS · CARG · VALO · ANIM
Infrastructure: ROAD · AIRS · SEAS · RAIL · ORBT · UNDE
P120 - MODE - TYPE - PROP - CLAS - PRIO - AUTO - FUEL - OWNR - CANT - ORIG - DEST - DATE - WAIT - CHK4
4 4 4 4 4 4 4 4 8 5 16 16 6 4 4
Canonical payload (blocks 1–14, no delimiters): 87 characters.
CHK4 (CRC-16-CCITT, XModem variant, init 0xFFFF): 4 characters.
Total wire format: 91 characters (core) + optional ::EXTENSION tail.
Domain-specific data appends via :: delimiter without affecting CHK4:
::TEMP-NEG20 Cold chain temperature (−20°C)
::ENRG-GNGL Energy commodity (LNG)
::SPEC-BOVI Live animal species (bovine)
::SHAR-NO Exclusive vehicle (no ride-sharing)
::RETN-NO One-way trip
::TRAJ-[TLE] Orbital trajectory (mandatory for TYPE=ORBT)
# Python (no dependencies)
python3 sdk/uodi_example.py
# Node.js (no dependencies)
node sdk/uodi_example.js
# Go (no external modules)
go run sdk/uodi_example.go
# Java (Java 11+, no dependencies)
javac sdk/UodiExample.java && java -cp sdk UodiExample
# Rust (no external crates)
rustc sdk/uodi_example.rs -o uodi_example && ./uodi_exampleAll five produce the same canonical wire strings and CHK4 checksums, verified against the reference values in the specification.
All implementations in sdk/ provide: Builder · Parser · Validator
| File | Language | Dependencies |
|---|---|---|
sdk/uodi_example.py |
Python 3.8+ | None |
sdk/uodi_example.js |
Node.js 12+ | None |
sdk/uodi_example.go |
Go 1.16+ | None |
sdk/UodiExample.java |
Java 11+ | None |
sdk/uodi_example.rs |
Rust 2018+ | None |
All conforming implementations must produce exactly these outputs:
# 3 passengers, road, anonymous, 15-min SLA
P120-PASS-ROAD-****-****-****-****-****-********-P0003-6GF3V7______0000-6GF9M2______0000-270226-M015-F6DA
# Cold-chain drone, 12 kg, −20°C, exact 3D coordinates
P120-VALO-AIRS-FRIG-CRIT-URGE-REMO-****-XOM6LP4Z-K0012-AR69Y7PGXQWT+120-AR69Y7PVMNBQ+080-270226-M000-FFEB::TEMP-NEG20
# LNG tanker, 5,000 kL, destination locked (Phase 1)
P120-CARG-SEAS-HAZM-NORM-NORM-****-****-********-G5000-AR69Y7PG____0000-????????????????-270226-D003-8CCA::ENRG-GNGL
# Anonymous cargo, 50 t, electric, destination locked
P120-CARG-ROAD-****-NORM-NORM-FULL-ELEC-********-T0050-AR69Y7______0000-????????????????-270226-H006-E121
# Live cattle, 450 kg, species declared
P120-ANIM-ROAD-LIVE-NORM-NORM-HUMA-****-********-K0450-AR69Y7______0000-????????????????-270226-H006-B185::SPEC-BOVI
# Private jet, 4 pax, London origin, exclusive
P120-PASS-AIRS-****-EXEC-NORM-HUMA-****-XOM6LP4Z-P0004-GCVR0000________-????????????????-070326-H002-DD47::SHAR-NO::RETN-NO
# Robotaxi, 1 pax, Berlin, fully electric
P120-PASS-ROAD-****-ECON-NORM-FULL-ELEC-********-P0001-U33DC0__________-????????????????-070326-M015-DCF9
# Armored valuables, 500 kg, NYC zone
P120-VALO-ROAD-ARMD-CRIT-URGE-HUMA-****-XOM6LP4Z-K0500-DR5RS0__________-????????????????-070326-M030-CD47
# Drone delivery, 3 kg, Tokyo, altitude +12m
P120-CARG-AIRS-****-NORM-URGE-REMO-ELEC-XOM6LP4Z-K0003-QM4F90__________-QM4F9RXQ____+012-070326-M000-8724
# Livestock, 2,000 kg, Rotterdam maritime
P120-ANIM-SEAS-LIVE-NORM-NORM-HUMA-****-********-K2000-U15HH0__________-????????????????-070326-D002-E5D3::SPEC-BOVI
def crc16_ccitt(data: bytes) -> int:
crc = 0xFFFF
for byte in data:
crc ^= byte << 8
for _ in range(8):
crc = (crc << 1) ^ 0x1021 if crc & 0x8000 else crc << 1
crc &= 0xFFFF
return crc
def validate_uodi(uodi: str) -> bool:
parts = uodi.split('::')[0].split('-')
assert len(parts) == 15
canonical = ''.join(parts[:14])
assert len(canonical) == 87
return format(crc16_ccitt(canonical.encode('ascii')), '04X') == parts[14]- Zenodo (primary): Placanica, D.E. (2026). UODI — Universal Omnimodal Demand Identifier v1.2. Zenodo. https://doi.org/10.5281/zenodo.18817254
- White paper (public): Available at o4db.org/uodi
| Protection | Reference | Date |
|---|---|---|
| U.S. Provisional Patent | 63/993,355 | February 2026 |
| Copyright | Safe Creative 2602284718909 | February 2026 |
| Zenodo DOI | 10.5281/zenodo.18817254 | February 2026 |
UODI v1.2 is the subject of U.S. Provisional Patent Application No. 63/993,355, filed February 28, 2026, under 35 U.S.C. §119(e).
© 2026 Daniel Eduardo Placanica — daniel@o4db.org
UODI is an independent standard. It is also the native demand type within the O4DB Protocol — a demand-initiated, cryptographically sovereign commerce protocol (Patent Pending U.S. 63/993,946).
When used with O4DB, UODI's progressive location disclosure integrates with O4DB's JIT identity release mechanism: approximate zone at VCI emission, exact coordinates released only to the winning carrier at CONFIRMED state.
UODI™ — Patent Pending U.S. 63/993,355 · o4db.org/uodi