Sharing over a remote
A remote is an HTTPS endpoint that stores and serves your .wasm module. Because the module is ciphertext addressed by hashes, the remote learns nothing about its contents.
Publish
# publisher
digstore remote add origin https://example.com/stores/<storeID>
digstore push origin
push uploads the compiled module and the signed root for the current generation.
digstore remote list # show configured remotes
digstore remote remove origin # drop one
Consume
From a fresh directory:
digstore clone https://example.com/stores/<storeID>
digstore cat urn:dig:chia:<storeID>:<rootHash>/readme
digstore pull origin # later: fetch the publisher's newer generation
Downloads are verified
clone and pull verify what they download before installing it:
- the module must embed a public key whose hash equals the store id you asked for;
- the served root must carry the publisher's signature.
A malicious or broken server can't feed you fabricated content — the command fails instead. See Proofs & Security.
Remotes must be https://. Plain http:// is allowed only for localhost (local testing).
Public vs private when sharing
-
Public store — hand someone the URN and they can read it. The URN is the whole capability.
-
Private store — also give them the secret salt (out-of-band). They locate with the URN but decrypt with
--salt <hex>:digstore cat urn:dig:chia:<storeID>/secret --salt <hex>
Revoking a published root
If a generation must be retracted (e.g. a leaked or bad build), publish a signed tombstone:
digstore revoke --root <hex> --reason superseded # retract one generation
digstore revoke --all --reason takedown # retract the whole store
Remotes persist tombstones and clients honor them fail-closed — a revoked root is refused.
Next: Streaming & keys →