What if every car, every driver, and every intersection in Singapore had a permanent cryptographic identity on the Handshake blockchain? This is the full blueprint for BlockCity — a decentralised urban traffic system where .city TLD domains replace paper licences, CashCards, and centralised databases.

The City That Already Does Everything — Except Decentralise It

Singapore leads the world on smart transport. The Land Transport Authority runs one of the most densely instrumented road networks on earth — cameras at every junction, gantries tracking every ERP zone crossing, live feeds into a central command room. It works remarkably well. But it has one structural weakness: it is centralised. Every data point flows back to a single authority. Tamper one record, override one camera, corrupt one database — and the system does not know.

Handshake changes the trust model completely. Instead of trusting a server, you trust a chain. Instead of a password, you carry a cryptographic key. And instead of a domain managed by a registrar, every actor in the traffic system — each car, each driver, each checkpoint, each intersection — owns a Handshake domain that is theirs permanently, unrevokable, and verifiable by anyone without asking permission.

This is BlockCity Singapore: a blueprint for wiring a city's entire transport infrastructure to the Handshake blockchain, using the .city TLD as the identity root for everything that moves.

Why .city Is the Right Handshake TLD for Urban Identity

For BlockCity Singapore we propose a single root TLD: .city. Every actor in the system — vehicle, driver, junction, checkpoint, fleet — lives under this namespace. The city authority auctions and wins .city on Handshake once. From that point, every subdomain it issues is a verifiable, cryptographically signed claim against that root. No ICANN. No registrar. No annual fee. No revocation by a third party.

The .city namespace splits naturally into five categories:

  • sga-1234-x.vehicle.city — Vehicle digital identity
  • wei-chen-lim.driver.city — Driver / driving licence DID
  • orchard-rd-j4.junction.city — Smart intersection node
  • checkpoint-ciq-1.border.city — Causeway checkpoint
  • fleet-23b.logistics.city — Commercial fleet identity

Every subdomain corresponds to a W3C Decentralized Identifier (DID) anchored to its HNS domain. The DID document lives in a TXT record resolved via the HNS chain — no central database, no API to call, just a cryptographic lookup that any node in the world can verify independently.

This is the same architecture used in the ROSSOBAY/ real estate protocol — permanent root ownership enabling a full sub-namespace economy. For BlockCity, that economy is not property or music: it is mobility identity.

The Two On-Chain Identity Cards Every Journey Requires

In BlockCity, a journey requires two valid on-chain identities before a vehicle can enter an ERP zone or cross a checkpoint: the vehicle identity and the driver identity. Neither alone is sufficient. The chain verifies that the driver's licence DID is currently authorised to operate that specific vehicle.

Vehicle identity: sga-1234-x.vehicle.city

The vehicle DID document, stored as a TXT record on the HNS chain, contains: plate number, make and model, registration transaction hash, ERP zone clearance flags, insurance validity hash, and the full list of authorised driver DIDs. It is written once at first registration and updated on-chain whenever ownership transfers, a driver is added, or an ERP permit is renewed. Every update is a signed, timestamped, immutable transaction.

Key fields in a vehicle DID document:

{
  "id": "did:hns:sga-1234-x.vehicle.city",
  "vehicleType": "car",
  "plate": "SGA 1234 X",
  "registrationTx": "0x3f8a...c221",
  "erpClearance": ["all-zones"],
  "authorisedDrivers": [
    "did:hns:wei-chen-lim.driver.city"
  ],
  "insuranceHash": "sha256:7f83...b1",
  "domainExpiry": "2027-08-14"
}

Driver identity and driving licence: wei-chen-lim.driver.city

The driver DID document stores: full name, licence class and conditions, demerit point balance, linked vehicle DIDs, and the secp256k1 public key used to sign beacon messages from the vehicle. Demerit points are updated on-chain by the traffic authority — every fine, every court ruling, every point deduction is an immutable transaction. There is no "lost file". There is no disputed record that a clerk can quietly amend.

The cryptographic link between driver and vehicle is a signed delegation record. The vehicle's DID document carries an authorisedDrivers array. Each entry is a driver DID reference signed by the vehicle owner's private key. A checkpoint scans the QR on the windshield, resolves the HNS domain, checks the delegation, and verifies the driver's licence DID — all in under 400 milliseconds, with no central server involved.

The Blockchain Traffic Mesh: When Cars Talk to Junctions

This is where BlockCity goes beyond digital identity and becomes live infrastructure. Today's smart traffic lights respond to sensors — loop detectors, cameras — but they do not know the vehicles. They measure aggregate flow. In a Handshake-native city, every junction has its own HNS domain and every vehicle within 200 metres broadcasts a lightweight signed beacon containing its vehicle DID, speed vector, and destination zone.

The junction node aggregates these beacons into a real-time cryptographic traffic state — who is actually here, going where, right now — and writes phase decisions as on-chain transactions. Five layers drive the mesh:

  1. Vehicle beacon — the car broadcasts a signed DID + speed + heading every 500 ms over DSRC/C-V2X.
  2. Junction aggregation — the junction node verifies beacon signatures and builds a real-time vehicle graph for its intersection.
  3. Phase decision — a smart contract reads the aggregate state, outputs the optimal signal phase, and logs the decision as an on-chain transaction.
  4. City coordinator — the authority.city node monitors all junctions and redistributes flow during incidents or emergencies.
  5. Audit trail — every signal phase, every crossing, every fine is immutable on-chain and auditable by any authorised node, forever.

Because vehicles carry cryptographic identities, the junction can distinguish an ambulance from a bus from a private car and prioritise accordingly — not by reading a special transponder, but by resolving the vehicle's HNS domain and checking its vehicleType field. An emergency vehicle's DID document carries a verified vehicleClass: emergency claim signed by authority.city. The junction trusts that claim because it is on the chain — not because someone called an API.

What a Checkpoint Crossing Looks Like — End to End

The full crossing sequence runs in five steps, completing within 600 milliseconds:

  1. The vehicle arrives and its embedded crypto module broadcasts a signed beacon.
  2. The checkpoint resolves sga-1234-x.vehicle.city via HNS — fetching the full DID document from the TXT record on-chain.
  3. The checkpoint reads the authorisedDrivers array and resolves wei-chen-lim.driver.city — verifying licence class and demerit balance.
  4. The secp256k1 signature on the beacon is verified against the driver's public key in the DID document.
  5. The crossing is written as an immutable transaction — timestamp, vehicle DID, driver DID, checkpoint DID, and clearance result.

Singapore's current ERP system uses pre-loaded CashCards and dedicated short-range communication requiring physical in-car units and periodic top-ups. The HNS model needs only a single private key — one that lives in the vehicle's firmware and is renewed annually alongside the domain registration. Domain renewals become mandatory vehicle inspections. Let your sga-1234-x.vehicle.city domain lapse and your car's identity disappears from the mesh. No bureaucratic revocation needed — the economics of the chain do the work.

Why .city Beats a Government Subdomain

You might ask: why not just use vehicles.lta.gov.sg? Three reasons.

Sovereignty at the root. A government subdomain is controlled by whoever controls the apex domain. A TLD auctioned on Handshake is controlled by cryptographic key. No ICANN vote, no government IT department, no single point of failure can revoke it.

Composability across cities. Kuala Lumpur, Hong Kong, Amsterdam — any city can adopt the same .city standard and issue vehicle domains under a shared protocol. Cross-border verification becomes a standard DID resolution, not a diplomatic data-sharing agreement.

Permanent public record. Vehicle history, fine records, and crossing logs are on-chain forever. An insurance company, a used-car buyer, a court — anyone can verify the complete cryptographic history of any vehicle without asking the government for a report.

As with the ROSSOBAY/ real estate model — where property titles live at addresses the protocol itself owns — BlockCity's power comes from the same principle: the city authority owns the root, and every claim beneath it is sovereign. Just as Punycode enables every language to claim a domain on Handshake, the .city TLD enables every moving object in a city to claim a permanent on-chain identity.

What a Blockchainised City Actually Means

A blockchainised city is not just a more efficient city. It is a more auditable one. Every fine is a transaction. Every emergency preemption is a transaction. Every crossing of every checkpoint by every vehicle is a transaction. None of them can be quietly amended. None of them can be lost in a server failure. None of them require trusting a clerk, a contractor, or a government department.

The road is a shared resource. In BlockCity, every claim on that resource — every lane change, every ERP crossing, every emergency preemption — is a signed message from a known, verified identity. The chain is the ledger. The junction is the notary. The city is the smart contract.

That is not a technical detail. That is the foundation of a city that can prove what happened — to any court, any auditor, any citizen — at any time, for any event, going back to the first block.

Frequently Asked Questions

What is a Handshake vehicle identity?

A Handshake vehicle identity is a Decentralized Identifier (DID) anchored to a Handshake TLD subdomain — for example sga-1234-x.vehicle.city. The DID document, stored as a TXT record on the HNS blockchain, contains the vehicle's registration details, ERP clearance, insurance hash, and the list of authorised drivers. It is verifiable by any HNS resolver without contacting a central server.

How does a driving licence work on Handshake?

Each driver holds a DID anchored to a subdomain such as wei-chen-lim.driver.city. The DID document records licence class, conditions, demerit points, and the cryptographic public key the driver uses to sign vehicle beacons. Demerit updates are written on-chain by the traffic authority — immutable and publicly auditable.

What is the .city TLD on Handshake?

.city is a root-level TLD auctioned on the Handshake blockchain. Unlike ICANN TLDs, the winner of the auction owns the TLD permanently — no registrar, no annual fee, no revocation. A city authority that wins .city can issue vehicle, driver, junction, and checkpoint subdomains under it as verifiable on-chain identities.

How does the blockchain traffic mesh work?

Every vehicle broadcasts a signed beacon every 500 ms containing its DID, speed, and heading over DSRC/C-V2X. Junction nodes verify these signatures, build a real-time traffic graph, and write optimal signal phase decisions as on-chain transactions. The entire flow — from beacon to phase change — completes in under 600 ms.

Can BlockCity work for cities other than Singapore?

Yes. The .city TLD standard is designed to be adopted by any city. Each city authority wins its own TLD on Handshake, issues its own subdomains, and participates in a shared DID resolution protocol. Cross-border vehicle verification requires no bilateral agreement — just a standard HNS resolver call.

Try It Yourself

The architecture above is fully buildable today. Handshake TLD auctions are live. DID documents can be hosted in HNS TXT records right now. The C-V2X vehicle beacon protocol is already deployed in Singapore's northern corridors. The missing piece is a city authority willing to mint .city and start issuing subdomains.

For builders: start with a local testnet HNS node, register a mock vehicle.city subdomain, write a DID document with an authorisedDrivers array, and verify it with a simple resolver. That is the entire trust primitive — everything else is application logic on top.

To resolve Handshake domains natively, use the SkyInclude Browser — a Chromium-based browser with a built-in HNS light node that resolves any .city or other HNS TLD without plugins or DNS configuration changes.


Original research and architecture by NIHON — Handshake Infrastructure & Web3 Identity, June 2026. The BlockCity model is original applied research into civic applications of the Handshake protocol. For more on building with HNS, explore LearnHNS.