Build a dapp on Chia
De principio a fin: genera una app React, conecta la wallet de Chia integrada en la página (window.chia + respaldo WalletConnect) con el dig-sdk, construye y firma un gasto vía el wasm de chip35, luego despliega en cadena y agrega un dominio personalizado — un solo hilo a través de cada primitivo de DIG.
Changelog
What changed across the DIG developer surfaces — the digstore CLI, the dig RPC, and the window.chia provider — including breaking changes and the versioning rules for each.
Concepts & glossary
Índice de una página de las entidades centrales de DIG Network — capsule, store, generation, URN, retrieval key, el dig RPC, el protocolo chia:// y el anclaje en cadena — cada una definida una vez y enlazada a su documento en profundidad.
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
Resumen de los primitivos de DIG Network: DigStore para publicación direccionable por contenido, dig RPC para hospedaje y recuperación ciegos, y el DIG Browser para el acceso al contenido.
Error codes
Every DIG error code in one place: dig RPC JSON-RPC codes, digstore CLI exit codes, and DIGHUb user-facing codes — each with what it means and what to do.
For integration developers
Una plataforma totalmente legible por máquinas — OpenAPI/OpenRPC, una taxonomía de errores catalogada, precios en vivo, JWKS, JSON por página, y un @dignetwork/dig-sdk tipado — para que conectes una wallet + lecturas verificadas en tu app sin rastrear ni una sola línea de prosa humana.
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 cross-platform dig-node installer for Windows, macOS, and any Linux: one curl | sh (or a direct download), installs the service and the digstore CLI, and registers dig.local.
Install on Ubuntu/Debian (apt)
Install dig-node and the digstore 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 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]])), 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) 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 or extension read from your local dig-node first (dig.local → localhost), falling back to rpc.dig.net — local-first reads that share one .dig cache.
Protocol: Overview
El protocolo DIG como siete capas de abajo hacia arriba, normativas y definidas por implementación. El capsule (storeId:rootHash) es la unidad fundamental; el host es ciego y el lector verifica contra la cadena. Esta es la referencia autoritativa del protocolo.
Run a DIG node
Qué es un dig-node, por qué querrías ejecutar uno, y cómo instalarlo — el repositorio apt para Ubuntu/Debian o el instalador universal multiplataforma.
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:// remote (clone/pull/push)
Git-style remote protocol via dig:// URLs, per-request BLS signing, clone/pull/push operations, and self-hosted node setup.
Troubleshooting — get unstuck
Cada fallo te da un código estable y un request-id que enlaza directamente con el log del servidor, los gastos en cadena están protegidos contra condiciones de carrera para que nunca pagues dos veces, y verificaciones previas claras evitan capsules desperdiciados antes de gastar $DIG.
Using the public network RPC
Public RPC endpoint usage, portability across nodes, operating your own node, and rate limiting policies.
What is the dig RPC?
Interfaz de lectura de toda la red para capsules de DigStore vía JSON-RPC 2.0; ciega por construcción, verificable sin confianza, y transmisible en cualquier tamaño.