The same fact lived in five hand-kept places and they all disagreed. The ZIP
frontmatter held 156 rows; README's table held 18; INDEX.md held 144;
docs/zip-index.json and docs/site/zip-index.json held 16 each. Both generators
were last run when the corpus had 16 ZIPs and went on reporting success against
156, because neither could tell a truncated read from a small repo.
scripts/index.py replaces both. It reads the frontmatter, writes README's table,
and refuses when a ZIP has no frontmatter, carries a status outside the
vocabulary, disagrees with its own filename, shares a number, requires a ZIP
that does not exist, or when the corpus has shrunk below a recorded floor. CI
runs it with --check. INDEX.md, both zip-index.json files, docs/site/ and the
root index.html that redirected into it are gone; the site already reads
ZIPs/*.md directly through docs/lib/source.ts.
Eight status values collapse to three. Draft: proposed, no implementation, or an
experiment — an ordinary resting place for a research network. Final: the thing
exists in code. Living: never finalises. Active on a registry became Living;
Active on a completed adoption became Final.
Status now follows the code. 22 are Final because a repository holds the work:
the chain (0015), KMS (0014), teleport (0802), replication (0803), PQ (0005),
genesis (0002), brand adoption (0031), and the AI surfaces that exist —
chat, memory, aci, jin, search, mcp, operative, bitdelta, distillation, and the
published Zen VL/Live/Guard/Translator/Coder models. 113 are Draft, and that is
the honest number: 19 of 28 repository: fields named repos that do not exist,
and the conservation-DeFi, NFT, gaming and DeSci families have Lean proofs and
papers but no contracts or services behind them.
Deleted, with reasons:
0001, 0003 HLLM and Eco-1/z-JEPA. ZIP-0010 supersedes both and ZIP-0418
already carries HLLM in full.
0009 restates ZIP-0427 with no new mechanism.
0013 asserts Zoo is chain 122, Lux 120, Hanzo 121. They are 200200,
96369 and 36963. Correcting the map leaves nothing, and its
supersedes: ZIP-2, ZIP-5 pointed at unrelated proposals.
0038, 0039 a BSC token-history record and the re-mint migration it feeds.
A migration path is not a specification of what Zoo is.
0200 a second ZRC-721 beside ZIP-0701. One standard, one number; 0701
keeps its place beside ZRC-20 and ZRC-1155.
0407 calls itself the precursor to Zoo Gym, which is ZIP-0434.
0433 a summary of ZIP-0011, which is the specification.
0900 a version chronology, and the only file with no frontmatter.
The 120/121/122 chain-id map appeared in ZIPs 0007 through 0014 and is now the
real one everywhere. requires: had four spellings and now holds ZIP numbers
only; HIP and LP references moved to related-hips and related-lps.
The site builds 148 pages. @hanzo/design moves 0.5.21 to 0.5.25: the older
package shipped files named Zen-Variable.woff2 whose name table said Geist,
vendor VRCL, so the page asked for Zen and painted Geist. The faces the build
now emits name themselves Zen and carry both copyright lines.
pages.yml is removed. GitHub Pages is disabled on this repository, so every run
since May either failed at configure-pages or hung until cancelled. The
Dockerfile served the repository verbatim and relied on the docs/site/ explorer
that is now gone; it builds and serves docs/out instead.
2.8 KiB
zip, title, description, author, status, type, category, network, mirrors, created, tags, requires, related-lps, related-hips
| zip | title | description | author | status | type | category | network | mirrors | created | tags | requires | related-lps | related-hips | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0814 | TxAuthEnvelope — Zoo mirror of HIP-0086 | Zoo-side mirror of Hanzo HIP-0086. Pins the typed PQ transaction-signing envelope under ZOO_STRICT_PQ. ML-DSA-65 signature over a TupleHash256 transcript bound by cust string TX-AUTH-V1; verifier is unmodified FIPS 204. Heavy spec lives in HIP-0086. | Zoo Labs Foundation | Draft | Standards Track | Core | Zoo Network | HIP-0086 | 2026-05-11 |
|
|
|
|
ZIP-0814: TxAuthEnvelope
Abstract
ZIP-0814 mirrors HIP-0086 into Zoo Network. Every Zoo strict-PQ
transaction is signed via a TxAuthEnvelope whose transcript is built
using TupleHash256 (SP 800-185) with cust string TX-AUTH-V1 over
(profile_id, chain_id, account_id, nonce, payload_hash, identity_scheme_id, hash_suite_id). Signature is ML-DSA-65; the
verifier is unmodified FIPS 204 ML-DSA.Verify.
Mirrored profile
ProfileID: 0x04 (ProfileZooStrictPQ)
ProfileName: ZOO_STRICT_PQ
HashSuiteID: SHA3_NIST (0x01)
IdentitySchemeID: ML_DSA_65 (0x42)
FinalitySchemeID: PULSAR_M_65 (0x52)
HighValueSchemeID: PULSAR_M_87 (0x53)
ProofPolicyID: STARK_FRI_SHA3_PQ (0x10)
MinSoundnessBits: 128
MinHashOutputBits: 384
RequireTransparent: true
ForbidPairings: true
ForbidKZG: true
ForbidTrustedSetup: true
ForbidClassicalSNARKs: true
ForbidDevProofs: true
ForbidFallbacks: true
Zoo-specific bindings
luxfi/consensus/protocol/auth/tx_envelope.gois reused; Zoo imports the same canonical encoder/decoder.- Zoo mainnet acceptance: a transaction lacking a valid
TxAuthEnvelopeis rejected at mempool admission. No secp256k1 RLP fallback onZOO_STRICT_PQ. - ZRC-20/721/1155 transfer flows construct TxAuthEnvelopes via the same wallet bindings as Lux.
- KAT vectors reused from
luxfi/consensus/protocol/auth/testdata/tx_envelope_v1.json.
Compliance
A Zoo validator on ZOO_STRICT_PQ MUST refuse transactions that do
not carry a valid TxAuthEnvelope. Cross-ecosystem bridges (ZIP-0042,
ZIP-0808) MAY accept Lux-signed envelopes when the profile-byte-equality
check passes per ZIP-0818.
Governance
Zoo Labs Foundation owns this ZIP via the canonical zips.zoo.ngo process. Activation requires sibling activation of ZIP-0809 / 0810 / 0811 / 0812 and ZIP-0813.
References
- HIP-0086 — canonical source of truth.
- LP-173 — Lux-side mirror.
- ZIP-0813 — AccountID.
- ZIP-0014 — Zoo KMS Integration via Lux KMS.
- NIST FIPS 204, FIPS 202, SP 800-185.
luxfi/consensus/protocol/auth/tx_envelope.go.