Get started
++ An ENS name points at a content-addressed manifest. Hosts are never trusted. +
+-
+
- The CLI checks every file by SHA-256. +
- Bytes come from BitTorrent plus HF webseeds. +
Install
+
+ Requires Node 22+ and aria2c on PATH (the downloader the CLI
+ shells out to).
+
Fetch a model
+Resolves the name and verifies every file before writing the HF cache.
+-
+
- Download the manifest CID. +
- Fetch the torrent and webseeds. +
- Check each file by SHA-256. +
+ This catalog is on the {config.chain} testnet. Pass{" "}
+ --chain {config.chain} so the CLI reads the same names.
+
Pin in a project
+Lock a name into a project so later installs stay content-addressed.
+-
+
-
+
enspack addresolves a name and appends it toenspack.lock. +
+ -
+
enspack installreads the lockfile, requires each CID to match, then + downloads and verifies. +
+ -
+ A CID mismatch exits 3 (unless you pass
--update). +
+
Publish
++ Build a manifest from a Hugging Face repo and write the version + model names on-chain. +
+-
+
- ENSv1 (SPEC §8): 3 transactions for a new model, 2 for a new version. +
- + ENSv2 (Sepolia's default): 4 txs for a new model, 2 for a new version, plus + first-time publisher setup. + +
Claim a publisher name
+
+ Proof of Hugging Face org or user control binds a label under enspack.eth to
+ your wallet (SPEC §7).
+
-
+
-
+ Request a claim:
POST /v1/claimswith your HF namespace and address; you + get aclaimIdand a challenge. +
+ -
+ Commit
enspack-verify.txtto a public repo under that namespace, containing + exactly the challenge and address. +
+ -
+ Sign the challenge with the same address (EIP-191
personal_sign). +
+ -
+ Submit
POST /v1/claims/{"{claimId}"}/verifywith the repo and signature. + The registrar issues the name and stores the attestation permanently. +
+
+