Quickstart · ECZ-ID IoT Device Passport™
IoT quickstart
Give each physical device you operate a free ECZ-ID IoT Device Passport, label it with a QR code that routes to its live record, and let anyone check it on the spot.
The free IoT Passport journey, the public record and the relying-party check are live. Commands were measured read-only on 2026-10-10. Availability is read live in TrustOps.
This quickstart gets the machine its identity. To carry it through the whole Accountability Chain (authority, Intent, decision, Receipt and re-verify), follow the IoT guided flow.
01Know what one Passport covers
You operate connected devices. One Passport is one physical device (or one device identity module) operated by the Parent.
Law: one device -> one Passport; a fleet -> many Passports (the meter counts MANAGED devices, never Passports).
Never a new Passport: mac_address, ip_address, firmware_version, gateway, hub_registration.
02Get the free Passport
Open the IoT door in TrustOps and sign in once. If your organisation has no Business Passport, a free DECLARED one is created. No payment is taken. Have one of these identifiers ready:
device_serial: PLAIN over the composite manufacturer:model:serial (only a hash is held)device_attestation_ref: SoC identity / attestation reference where the platform provides one (only a hash is held)
03Declare it where your ecosystem looks
The families contract names the place: device label QR -> /p/{ecz_id}; fleet manifest field. A declaration is a pointer, not proof.
# fleet manifest
devices:
- serial: SN-0042-7781
ecz_id: ECZ-GB-EXAMPL::IOT_DEVICE-AB12CD
# device label QR encodes the live record:
# https://resolver.ecocitizenz.org/p/ECZ-GB-EXAMPL::IOT_DEVICE-AB12CD04Prove a binding
A binding attaches the Passport to a native identity you control. The binding classes this family defines are: SERIAL_NUMBER, MAC_ADDRESS, FIRMWARE, GATEWAY, HUB_REGISTRATION.
Proof is established through TrustOps and ECZ-ID Core, never on this site. Until a binding is proven, the public record reads binding.state: NO_PUBLIC_PROOF, which is the normal state of a new record. A class being defined is not a claim of a live integration with that provider.
05Let relying parties check it
Anyone can check before relying, with no account. This exact command was run on 2026-10-10:
curl -s https://api.ecocitizenz.com/api/p/ECZ-GB-RBS1NW.jsonDevices are checked by resolving their ECZ-ID: scan the label for people, read the machine record for systems. This is the same read, measured against the operator record behind this site. One device is one Passport; a fleet is many.
06Next: Intent, decision, Receipt
- Live · signed inModel what this machine is authorised to do as an ECZ-ID Intent. Carry Intent
- Release-gatedAsk IntentControl for a decision before consequential actions. Request a decision
- No public retrievalPlan for Receipts in your records. Verify a Receipt
A free Passport gives a machine a persistent identity. It never means verified, assured, safe, secure, compliant, approved, certified or endorsed. Family facts come from the TrustOps families contract; current state is only ever the live Resolver record.
