По-русски: README.ru.md.
The example web interface for Object Digital Passport: register an identity, issue a passport for an object, and verify one. Live at https://object-digital-passport.github.io/.
Verification is free and needs no wallet: verify something.
The protocol lives in its own repository, and it is the normative source:
- Specification — what a passport is and how verification works
- Contracts, schema, deployed addresses
Anything this site does that the specification does not require is a choice made here, and you are free to make a different one. Nothing about this site is privileged: a passport registered through it is readable by any implementation, forever, without asking anyone.
| Path | Role |
|---|---|
frontend/ |
HTML pages, CSS, UI scripts, interface strings under localization/ |
backend/ |
Browser-side registry client: ABI helpers, WalletConnect bundle, registry-config.json. There is no server — "backend" here means the code that talks to the chain from the page |
docs/ |
How to use the site |
frontend/e2e/ |
Playwright smoke tests |
TMP=$(mktemp -d) && cp -r frontend/. "$TMP/" && cp -r backend "$TMP/backend" && cd "$TMP" && python3 -m http.server 8080
# → http://127.0.0.1:8080/verify.htmlStatic files only, no build step — which is why the WalletConnect bundle is committed rather than built on deploy.
cd backend && npm install && npm run build:wcbackend/js/odp-wallet-wc.bundle.js is generated output. Code scanning ignores it, because findings inside it are in third-party code and the next build overwrites any edit.
The deployed contract address is injected at deploy time from the ODP_CONTRACT_ADDRESS Actions secret, and falls back to the value written into the pages. Current addresses for every protocol version are in the deployment table.
CHANGELOG.md. The site was web/ inside the protocol repository until August 2026; its commits came across intact, so git log reaches back to the first release in March.
MIT.