The card passport
A signed credential that says what your card was paid for: this key did this much paid work on each lane over this window, read from the chain's own settlement rows and signed once. Enter a key, pick a window, read the figures back and check the signature yourself.
The card passport: a signed credential, read from the chain, that says this key did this much paid work on each lane over this window, with the joules behind it; never an identity and never a vote weight on its own; a credential and never a token. For other projects' airdrops, allowlists, test places and votes in place of wallet counts and device counts, and for miners as proof of what their card has done. Splitting a key mints as many passports as keys at no cost, by design, so the passport is weighted by work and never counted by head.
The pay in wei: . The list amount in wei: .
Work a lane
List work a lane over the window, the eight lanes by the chain's own numbers, lane 0 to lane 7; the sum of the window's rows.
| Lane | List work |
|---|
The joules
The signature
Issued by , key id ; Ed25519 over the canonical bytes of the payload (json, sorted keys, separators comma and colon, ascii). The records the rows were read from, each with the SHA-256 of its ledger as its sums state:
| Record | Window | SHA-256 of its ledger |
|---|
The passport file: its URL. Identity 3 exact over the window: .
Check it yourself
Fetch the three files into one directory (the public key, the passport, the verify script published beside the key) and run the command on any machine with python3 and the cryptography module. It prints PASSPORT OK with the key, the window and the key id, or PASSPORT REFUSED with the reason.
curl -O https://build.igneum.network/ledger/7322/passport/passport-public.pem curl -o passport.json https://build.igneum.network/ledger/7322/passport/<key>/<from>-<to>.json curl -O https://build.igneum.network/ledger/7322/passport/verify.py python3 verify.py --public passport-public.pem passport.json
With OpenSSL 3.0 or later alone, after verify.py --canonical has written the canonical bytes and the raw signature beside the file:
openssl pkeyutl -verify -pubin -inkey passport-public.pem -rawin -in passport.canonical -sigfile passport.sig
The public key
fetching the public key from the settlement endpoint
Where
The windows are the chain's own: pay windows of 64 blocks and long-run windows of 256 blocks, aligned to the chain; a passport exists for each aligned window wholly inside the records of record, for each key with lane work in it; a key without lane work in a window has no passport for it, and the tree's index names the keys refused with the reason. The files are written once after each hourly record lands and signed once; nothing is computed on a request.