Skip to main content

38 docs tagged with "dig-rpc"

View all tags

Build a dapp on Chia

End-to-end: scaffold a React app, wire the in-page Chia wallet (window.chia + WalletConnect fallback) with the dig-sdk, build and sign a spend via the chip35 wasm, then deploy on-chain and add a custom domain — one thread through every DIG primitive.

Changelog

What changed across the DIG developer surfaces — the dig-store CLI, the dig RPC, and the window.chia provider — including breaking changes and the versioning rules for each.

Concepts & glossary

One-page index of the core DIG Network entities — capsule, store, generation, URN, retrieval key, the dig RPC, the chia:// protocol, and on-chain anchoring — each defined once and linked to its deep doc.

Configure dig-node

Configure a dig-node: listen ports and listeners, the cache cap, and the upstream the node blind-fetches from — via config and DIGNODE_* environment variables.

Conformance & parity

The cross-implementation parity discipline: frozen canonical()/retrieval_key() goldens, the C8 crypto fixtures, the shared URN conformance vectors, the OpenRPC-vs-server diff test, and what every reimplementation MUST pass.

Conformance & Security

Blind serving model, decoy streams, CORS, caching, rate limiting, and conformance checklist for dig RPC endpoints.

DIG Network

Overview of the DIG Network primitives: dig-store for content-addressable publishing, dig RPC for blind hosting and retrieval, and the DIG Browser for content access.

Error codes

Every DIG error code in one place: dig RPC JSON-RPC codes, dig-store CLI exit codes, and DIGHUb user-facing codes — each with what it means and what to do.

For integration developers

A fully machine-readable platform — OpenAPI/OpenRPC, a catalogued error taxonomy, live pricing, JWKS, per-page JSON, and a typed @dignetwork/dig-sdk — so you wire a wallet + verified reads into your app without scraping a single line of human prose.

Get help

Where to get help with DIG — the community Discord, GitHub issues, and how to file a report that gets answered fast.

How do I… integrate DIG into my app?

The shortest path for integrating developers: connect a wallet, read verified content, build a spend the right way, and deploy from CI — using the typed @dignetwork/dig-sdk and the dig RPC, no prose-scraping required.

Inclusion vs execution proofs

Two proof types: synchronous Merkle inclusion proofs that pin served bytes to an on-chain root, and asynchronous ZK / risc0 execution receipts that attest faithful serving — gated on the control plane.

Install anywhere — the universal installer

The DIG Installer — the cross-platform installer for Windows, macOS, and x86-64 Linux. One elevated command installs the full DIG stack by default: the dig-store CLI plus the dig-node and dig-dns boot-start services, and registers dig.local.

Install on Ubuntu/Debian (apt)

Install dig-node and the dig-store CLI on Ubuntu/Debian from the apt.dig.net repository, and run dig-node as a managed systemd service.

L1 · BLS signatures & domain separation

Chia AugScheme (G1 48B / G2 96B), the five mutually-distinct role DSTs (PUSH/NODE/TOMB/REQ/ATTEST) with their exact signing-message preimages, rogue-key rejection, and the host↔guest parity fixtures.

L2/L3 · The self-defending module

Fixed-size obfuscation (128 MiB uniform blob, deterministic ChaCha20 filler), WASM injection memory layout (BINDING D2: 2 MiB offset, 384 MiB ceiling), the self-serving guest pipeline, oblivious gather, decoy generation, and the disabled host-attestation gate.

L5 · §21 transport & push

The §21 transport: dig:// locator resolution, the REST surface, the JSON-outer / Chia-codec-inner envelope, 2-leg push v1 (inline | presigned), the authenticated head (PUSH_DST), per-request §21.9 auth with exact signing messages, ETag/delta/pull, tombstone revocation, and decoy indistinguishability.

L6 · The blind host model

The provider-blindness invariant, serve_blind (framing-only decode), the root-pinned immutable response cache, the *.on.dig.net + custom-domain resolver, the /v1 control plane (CHIP-0002 login, JWT sessions, refresh reuse-detection, action re-auth, GitHub-OIDC CI), and the accept-on-signature push trust model.

L6 · The dig RPC (machine interface)

The dig RPC is THE machine interface of the protocol: JSON-RPC 2.0 over HTTP POST, the full method catalogue, the chunk wire object (chunk_lens first-window-only, NO decoy field), range/window math, error codes incl. -32004, and the node profile vs the network profile.

L6 · Verification, provenance & anchoring

The four ordered integrity gates (merkle inclusion → authenticated decryption → anchored-root pinning → risc0 execution), anchored-root pinning against the CHIP-0035 singleton via coinset.org, the authenticated head, tombstones, the MOCK-by-default risc0 caveat, the freshness contract, and provenance UX surfacing.

L7 · DIG Node peer network

The normative node↔node protocol: mTLS peer identity (peer_id = SHA-256(TLS SPKI DER)), the two RPC tiers (mTLS-authenticated PEER/CONTROL vs anonymous PUBLIC-READ so browsers can retrieve content), the dual-mode public gateway (rpc.dig.net's mTLS front for node-class clients — the dig-store CLI, the SDK, any DIG-identity-key holder — across the full dig.local/localhost/rpc.dig.net ladder, plus its plain-HTTPS+CORS front for browsers, with an ephemeral self-signed client certificate for channel-bound anonymous reads), the ordered NAT-traversal ladder (direct → UPnP → NAT-PMP → PCP → relay-coordinated hole-punch (signalling only) → relayed/TURN transport), the relay's four roles (STUN, introducer, hole-punch signalling, relayed transport), STUN reflexive-address discovery, introducer + gossip peer discovery, PEX peer-exchange (node↔node stream + the RLY-008 relay introducer binding), the Kademlia DHT with provider records that locate which peers hold content (find_node/find_providers/add_provider/ping over a framed dig-nat mTLS stream; content-key = SHA-256(domain-tag ‖ store_id[‖root[‖retrieval_key]])), provider records announced promptly on an inventory gain (whichever path put a capsule on disk — so a reader that caches a capsule becomes a discoverable holder of it) and withdrawn on removal, the holdings-announce wire (gossip-pool broadcast opcode 222 — the signed, batched add/remove statement of a peer's holdings, TLS-leaf-key ECDSA with the `dig:holdings:v1` preimage and fail-closed acceptance), the gossip/peer-RPC port relationship (gossip 9445 = peer 9444 + 1 — translate before dialing), the relay RelayMessage wire (RLY-001..RLY-008), the peer RPC methods (dig.getPeers/dig.announce/dig.getNetworkInfo/dig.getAvailability/dig.listInventory/dig.fetchRange), and the relay-last-fallback invariant (prefer hole-punch signalling over full relaying).

L7 · Private retrieval (onion routing)

The normative privacy-mode content-retrieval protocol: the per-request speed-vs-privacy toggle on the dig RPC surface, how a private read is onion-routed end-to-end (requester → guard/entry → middle → exit → providers → back) with a who-knows-what table, telescoping circuit construction over dig-nat mTLS (ntor X25519 + HKDF-SHA256 handshake, fixed-size 512-byte ChaCha20-Poly1305 layered cells, the RELAY command set), the onion-relay directory (dig-dht tag 0x04) and relay advertisement, guard nodes, the exit reusing the ordinary merkle-verified content read, and the honest threat model (partial-adversary unlinkability, stronger than Tor on exit integrity, weaker on anonymity-set size and Sybil cost).

Machine-readable surfaces

Every machine-readable entry point: /openrpc.json, /error-codes.json, /llms.txt, /knowledge-graph.json, the sitemap, and per-page schema.org JSON-LD — so an agent integrates DIG without scraping a single line of human prose.

Manage your node

Operate a running dig-node: the control.* admin RPCs (status, cache, peers, wallet chain reads) and the DIG Browser's My Node UI that drives them.

Methods

Complete dig RPC method set: dig.getContent, dig.getProof, dig.getCapsule, dig.getManifest, dig.listCapsules, dig.listCollectionItems, dig.getCollection, and service discovery methods.

Point a consumer at your node

Make the DIG Browser, extension, or dig-store CLI read from your local dig-node first (dig.local → localhost), falling back to rpc.dig.net — local-first reads that share one .dig cache. The extension can also source its wallet data (balances, tokens, NFTs) from your node.

Protocol: Overview

The DIG Protocol as seven bottom-up layers, normative and implementation-defined. The capsule (storeId:rootHash) is the fundamental unit; the host is blind and the reader verifies against the chain. This is the authoritative protocol reference.

Run a DIG node

What a dig-node is, why you'd run one, and how to install it — the apt repository for Ubuntu/Debian or the cross-platform DIG Installer.

Sharing over a remote

Publishing stores to remotes, downloading with verification, revoking roots, and understanding public vs. private access models.

Status

Where to check the health of the DIG services — the dig RPC (rpc.dig.net), DIGHUb (hub.dig.net), and the resolver (on.dig.net) — plus how RPC and provider versions are signalled.

Streaming

Streaming chunk model for byte methods: chunk object structure, 64 KiB alignment, reassembly, proof verification, and reference client loop.

The DIG SDK

@dignetwork/dig-sdk — ChiaProvider (injected window.chia + WalletConnect→Sage), DigClient (verified reads), Paywall (pay-to-unlock / NFT-gating), and the canonical CHIP-0035 spends at the /spend subpath.

The dig-node Control Panel

Manage your local dig-node from the DIG Chrome extension's Control Panel: reserved .dig cache space and LRU eviction, upstream, hosted stores, sync, peers, live status, and pairing the control token.

The https://dig.local endpoint

Your dig-node serves DIG content over HTTPS at https://dig.local, on your machine's loopback, with a certificate your browser trusts. Privacy and integrity for local reads, with a plain-http fallback for clients that can't use it.

Troubleshooting — get unstuck

Every failure gives you a stable code and a request-id that ties straight to the server log, on-chain spends are race-guarded so you never double-pay, and clear pre-flight guards stop wasted capsules before you spend $DIG.

What is the dig RPC?

Network-wide read interface for dig-store capsules via JSON-RPC 2.0; blind by construction, verifiable without trust, and streamable at any size.