{
  "version_hash": "sha256:ed8232c3de7a1cec58f70a2610b030f8f43ac385bdfd5a6eaed358b4e71b761d",
  "page_count": 227,
  "pages": [
    {
      "id": "apps-build",
      "title": "Build",
      "slug": "apps-build",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/build.md",
      "html_url": "https://docs.polkadot.com/apps/build/",
      "preview": "Build Polkadot Product capabilities with product-sdk packages for signing, on-chain reads, decentralized storage, off-chain pub/sub, and local persistence.",
      "outline": [
        {
          "depth": 2,
          "title": "Set Up Your Project",
          "anchor": "set-up-your-project"
        },
        {
          "depth": 2,
          "title": "Capabilities",
          "anchor": "capabilities"
        },
        {
          "depth": 2,
          "title": "The product-sdk Packages",
          "anchor": "the-product-sdk-packages"
        },
        {
          "depth": 2,
          "title": "Umbrella or Individual Packages",
          "anchor": "umbrella-or-individual-packages"
        }
      ],
      "stats": {
        "word_count": 1078,
        "token_estimate": 2157,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:2b4d6787f6234e90be56cf7c870baaba3b157b0e9bcce8ebfe5156546f4d75c2",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-build-persist-data-locally",
      "title": "Persist Data Locally",
      "slug": "apps-build-persist-data-locally",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/build/persist-data-locally.md",
      "html_url": "https://docs.polkadot.com/apps/build/persist-data-locally/",
      "preview": "Learn how to store and retrieve application data between sessions in a Polkadot Product using the @parity/product-sdk-local-storage package.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the SDK",
          "anchor": "install-the-sdk"
        },
        {
          "depth": 2,
          "title": "Initialize the Store",
          "anchor": "initialize-the-store"
        },
        {
          "depth": 2,
          "title": "Store String Values",
          "anchor": "store-string-values"
        },
        {
          "depth": 2,
          "title": "Store JSON Values",
          "anchor": "store-json-values"
        },
        {
          "depth": 2,
          "title": "Remove Stored Values",
          "anchor": "remove-stored-values"
        },
        {
          "depth": 2,
          "title": "Namespace Keys with Prefixes",
          "anchor": "namespace-keys-with-prefixes"
        },
        {
          "depth": 2,
          "title": "Use React Hooks",
          "anchor": "use-react-hooks"
        },
        {
          "depth": 2,
          "title": "Limitations",
          "anchor": "limitations"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1319,
        "token_estimate": 2436,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:189a14a10d43d49fda2e1e260f7a93e2062695e5c62a4294859197b4b6d913f1",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-build-pub-sub-off-chain-data",
      "title": "Publish and Subscribe to Off-Chain Data",
      "slug": "apps-build-pub-sub-off-chain-data",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/build/pub-sub-off-chain-data.md",
      "html_url": "https://docs.polkadot.com/apps/build/pub-sub-off-chain-data/",
      "preview": "Publish and subscribe to off-chain data from a Polkadot Product using the Statement Store. Filter by topic, publish statements, and use channels.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the SDK",
          "anchor": "install-the-sdk"
        },
        {
          "depth": 2,
          "title": "Set Up Your Statement Store Client",
          "anchor": "set-up-your-statement-store-client"
        },
        {
          "depth": 2,
          "title": "Subscribe to Incoming Statements",
          "anchor": "subscribe-to-incoming-statements"
        },
        {
          "depth": 2,
          "title": "Publish a Typed Statement",
          "anchor": "publish-a-typed-statement"
        },
        {
          "depth": 2,
          "title": "Use a Channel for Last-Write-Wins State",
          "anchor": "use-a-channel-for-last-write-wins-state"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1977,
        "token_estimate": 3190,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:82e2010615e1143815e5603cd91c0a791c52b9ac9337686e8d14fdaa1bcc6395",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-build-read-chain-state",
      "title": "Read On-Chain Data",
      "slug": "apps-build-read-chain-state",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/build/read-chain-state.md",
      "html_url": "https://docs.polkadot.com/apps/build/read-chain-state/",
      "preview": "Connect a Polkadot Product to one or more chains and read storage, constants, and account state using the @parity/product-sdk-chain-client package.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the SDK",
          "anchor": "install-the-sdk"
        },
        {
          "depth": 2,
          "title": "Connect to a Chain",
          "anchor": "connect-to-a-chain"
        },
        {
          "depth": 3,
          "title": "Connect Using a Preset",
          "anchor": "connect-using-a-preset"
        },
        {
          "depth": 3,
          "title": "Connect Using Custom Descriptors (BYOD)",
          "anchor": "connect-using-custom-descriptors-byod"
        },
        {
          "depth": 2,
          "title": "Read Storage and Constants",
          "anchor": "read-storage-and-constants"
        },
        {
          "depth": 2,
          "title": "Read Multiple Chains in Parallel",
          "anchor": "read-multiple-chains-in-parallel"
        },
        {
          "depth": 2,
          "title": "Access the Raw PAPI Client",
          "anchor": "access-the-raw-papi-client"
        },
        {
          "depth": 2,
          "title": "Detect Whether You Are Inside a Host",
          "anchor": "detect-whether-you-are-inside-a-host"
        },
        {
          "depth": 2,
          "title": "Clean Up Connections",
          "anchor": "clean-up-connections"
        },
        {
          "depth": 2,
          "title": "Limitations",
          "anchor": "limitations"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1352,
        "token_estimate": 2242,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:c5afea688d362b7703ffe29467150cd7bc1de2c3567b77f92ddd8eb12b5539a0",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-build-sign-and-submit",
      "title": "Sign and Submit Transactions",
      "slug": "apps-build-sign-and-submit",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/build/sign-and-submit.md",
      "html_url": "https://docs.polkadot.com/apps/build/sign-and-submit/",
      "preview": "Derive product-scoped accounts and sign transactions from a Polkadot Product using the Product SDK, with all approvals routed to the Polkadot App.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the SDK",
          "anchor": "install-the-sdk"
        },
        {
          "depth": 2,
          "title": "How Product Accounts Work",
          "anchor": "how-product-accounts-work"
        },
        {
          "depth": 2,
          "title": "Set Up Signer Manager",
          "anchor": "set-up-signer-manager"
        },
        {
          "depth": 2,
          "title": "Connect to the Host",
          "anchor": "connect-to-the-host"
        },
        {
          "depth": 2,
          "title": "Get a Product Account",
          "anchor": "get-a-product-account"
        },
        {
          "depth": 2,
          "title": "Sign Arbitrary Bytes",
          "anchor": "sign-arbitrary-bytes"
        },
        {
          "depth": 2,
          "title": "Sign and Submit a Transaction",
          "anchor": "sign-and-submit-a-transaction"
        },
        {
          "depth": 2,
          "title": "Handle Signing Errors",
          "anchor": "handle-signing-errors"
        },
        {
          "depth": 2,
          "title": "Test Without a Host",
          "anchor": "test-without-a-host"
        },
        {
          "depth": 2,
          "title": "Limitations",
          "anchor": "limitations"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1396,
        "token_estimate": 2429,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:c6a7c8849a3ffe31674e20c6aa9025b70c0d8a107d33114a603cc904a337c9fe",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-build-store-data-on-chain",
      "title": "Store Data on Chain",
      "slug": "apps-build-store-data-on-chain",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/build/store-data-on-chain.md",
      "html_url": "https://docs.polkadot.com/apps/build/store-data-on-chain/",
      "preview": "Store and retrieve Bulletin Chain data from a Polkadot Product, Hello World, larger files, renewal, cross-chain via People Chain, preimage-authorized uploads.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the SDK",
          "anchor": "install-the-sdk"
        },
        {
          "depth": 2,
          "title": "Set Up Your Storage Client",
          "anchor": "set-up-your-storage-client"
        },
        {
          "depth": 2,
          "title": "Store a Hello World",
          "anchor": "store-a-hello-world"
        },
        {
          "depth": 2,
          "title": "Retrieve Your Data",
          "anchor": "retrieve-your-data"
        },
        {
          "depth": 2,
          "title": "Store a Larger File",
          "anchor": "store-a-larger-file"
        },
        {
          "depth": 2,
          "title": "Get Authorization",
          "anchor": "get-authorization"
        },
        {
          "depth": 2,
          "title": "Renew Long-Lived Data",
          "anchor": "renew-long-lived-data"
        },
        {
          "depth": 2,
          "title": "Cross-Chain Storage from People Chain",
          "anchor": "cross-chain-storage-from-people-chain"
        },
        {
          "depth": 2,
          "title": "Submit a Preimage",
          "anchor": "submit-a-preimage"
        },
        {
          "depth": 2,
          "title": "Storage Paths at a Glance",
          "anchor": "storage-paths-at-a-glance"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2977,
        "token_estimate": 5094,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:c74846e1bcabfa44f738cbe124293b5a57d0df0e9aa5949841c4075afcc9dc98",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-deploy-your-app",
      "title": "Deploy Your App",
      "slug": "apps-deploy-your-app",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/deploy-your-app.md",
      "html_url": "https://docs.polkadot.com/apps/deploy-your-app/",
      "preview": "Deploy your Polkadot Product to the playground using the playground CLI — build, upload, and publish your app on-chain and register a .dot name.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Build Your App Bundle",
          "anchor": "build-your-app-bundle"
        },
        {
          "depth": 2,
          "title": "Deploy Your App",
          "anchor": "deploy-your-app"
        },
        {
          "depth": 2,
          "title": "Open Your App",
          "anchor": "open-your-app"
        }
      ],
      "stats": {
        "word_count": 1121,
        "token_estimate": 2014,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:208f5cdd47539472644247cca2bd9f9162df9727ef029757443e8593db355961",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-get-started-get-testnet-tokens",
      "title": "Get TestNet Tokens",
      "slug": "apps-get-started-get-testnet-tokens",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/get-started/get-testnet-tokens.md",
      "html_url": "https://docs.polkadot.com/apps/get-started/get-testnet-tokens/",
      "preview": "Claim TestNet tokens from the Polkadot Faucet and unlock per-service allowances for Bulletin Chain, Statement Store, and dotNS.",
      "outline": [
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Get Tokens",
          "anchor": "get-tokens"
        },
        {
          "depth": 2,
          "title": "Service Allowances",
          "anchor": "service-allowances"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 562,
        "token_estimate": 828,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:8ee9eb0e5a0195f27f78c81c7ff7a6273947017f22ae9d5b8541eb610ff05cc5",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-get-started",
      "title": "Install Polkadot Desktop and Pair",
      "slug": "apps-get-started",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/get-started.md",
      "html_url": "https://docs.polkadot.com/apps/get-started/",
      "preview": "Install Polkadot Desktop, pair it with the Polkadot App on your phone with a QR scan, and set up the foundation for local Polkadot Product development.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install Polkadot Desktop",
          "anchor": "install-polkadot-desktop"
        },
        {
          "depth": 2,
          "title": "Pair Polkadot Desktop with the Polkadot App",
          "anchor": "pair-polkadot-desktop-with-the-polkadot-app"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 690,
        "token_estimate": 1003,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:cd064672b5d3dba60c9226afa61f22ae83a4c74746fbc83f9ab13cfac7a3c5e5",
      "last_updated": "2026-06-16T15:08:00+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps",
      "title": "Apps",
      "slug": "apps",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps.md",
      "html_url": "https://docs.polkadot.com/apps/",
      "preview": "Build Polkadot Products, sandboxed apps that run inside the Polkadot Hosts, addressed by .dot domain names, and signed by the user's phone.",
      "outline": [
        {
          "depth": 2,
          "title": "Get the Polkadot App",
          "anchor": "get-the-polkadot-app"
        },
        {
          "depth": 2,
          "title": "Then Pick Your Path",
          "anchor": "then-pick-your-path"
        },
        {
          "depth": 2,
          "title": "What Is a Polkadot Product?",
          "anchor": "what-is-a-polkadot-product"
        },
        {
          "depth": 2,
          "title": "Why Build a Polkadot Product?",
          "anchor": "why-build-a-polkadot-product"
        }
      ],
      "stats": {
        "word_count": 791,
        "token_estimate": 1263,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:96b5385e397fac2af1d038661cded23703a17ad61d1391ed952916394795e39f",
      "last_updated": "2026-06-18T10:12:03+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-quick-start-cli",
      "title": "Quick Start with the CLI",
      "slug": "apps-quick-start-cli",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/quick-start-cli.md",
      "html_url": "https://docs.polkadot.com/apps/quick-start-cli/",
      "preview": "Install playground-cli, pair it with the Polkadot App, build your Product, and deploy it to a live .dot name from the terminal.",
      "outline": [
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the CLI",
          "anchor": "install-the-cli"
        },
        {
          "depth": 2,
          "title": "Initialize",
          "anchor": "initialize"
        },
        {
          "depth": 2,
          "title": "Build",
          "anchor": "build"
        },
        {
          "depth": 2,
          "title": "Deploy",
          "anchor": "deploy"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 828,
        "token_estimate": 1418,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:205b4160a87f02aaa8c4a90265ea1d62e870c98b5bc3961b2e675f045536aa52",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-quick-start",
      "title": "Quick Start with RevX",
      "slug": "apps-quick-start",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/quick-start.md",
      "html_url": "https://docs.polkadot.com/apps/quick-start/",
      "preview": "Generate and publish a Polkadot Product from the browser with RevX App Builder, then sign the final .dot deployment with the Polkadot App.",
      "outline": [
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Open RevX",
          "anchor": "open-revx"
        },
        {
          "depth": 2,
          "title": "Open App Builder",
          "anchor": "open-app-builder"
        },
        {
          "depth": 2,
          "title": "Create a New App",
          "anchor": "create-a-new-app"
        },
        {
          "depth": 2,
          "title": "Configure the Builder",
          "anchor": "configure-the-builder"
        },
        {
          "depth": 2,
          "title": "Generate an App",
          "anchor": "generate-an-app"
        },
        {
          "depth": 2,
          "title": "Inspect the Generated Code",
          "anchor": "inspect-the-generated-code"
        },
        {
          "depth": 2,
          "title": "Publish to `.dot`",
          "anchor": "publish-to-dot"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 828,
        "token_estimate": 1202,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:dc42a167c6ee8abdc8acd0dfa340dcf01c005af86a9c2cf633e2e1176a0d239c",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "apps-tutorials-shared-todo-app",
      "title": "Build a Shared Todo App",
      "slug": "apps-tutorials-shared-todo-app",
      "categories": [
        "Apps"
      ],
      "raw_md_url": "https://docs.polkadot.com/apps/tutorials/shared-todo-app.md",
      "html_url": "https://docs.polkadot.com/apps/tutorials/shared-todo-app/",
      "preview": "Build a complete Polkadot Product end to end with a shared todo board that combines signing, local persistence, real-time pub/sub, and on-chain storage.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Scaffold the Project",
          "anchor": "scaffold-the-project"
        },
        {
          "depth": 2,
          "title": "Connect and Get an Identity",
          "anchor": "connect-and-get-an-identity"
        },
        {
          "depth": 2,
          "title": "Keep State on the Device",
          "anchor": "keep-state-on-the-device"
        },
        {
          "depth": 2,
          "title": "Share the Board in Real Time",
          "anchor": "share-the-board-in-real-time"
        },
        {
          "depth": 2,
          "title": "Make the Board Durable",
          "anchor": "make-the-board-durable"
        },
        {
          "depth": 2,
          "title": "Wire Up the Page",
          "anchor": "wire-up-the-page"
        },
        {
          "depth": 2,
          "title": "Run It",
          "anchor": "run-it"
        },
        {
          "depth": 2,
          "title": "Ship It",
          "anchor": "ship-it"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3808,
        "token_estimate": 7156,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:5cdbfa5345aeb58569f7a7ce8c42597c5370df2ad18835b80a96da42762e04f4",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-accounts-create-account",
      "title": "Create an Account",
      "slug": "chain-interactions-accounts-create-account",
      "categories": [
        "Basics",
        "Chain Interactions"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/accounts/create-account.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/accounts/create-account/",
      "preview": "Step-by-step guide to creating Polkadot accounts using different programming languages and libraries, including JavaScript, Python, and Rust examples.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Use JavaScript/TypeScript",
          "anchor": "use-javascripttypescript"
        },
        {
          "depth": 2,
          "title": "Python",
          "anchor": "python"
        },
        {
          "depth": 2,
          "title": "Rust",
          "anchor": "rust"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 869,
        "token_estimate": 1594,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:442302c01bd6fa04b49eef8bce3451f8086d7b445ed6aabbd3d6ddcb464da9f8",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-accounts-query-accounts",
      "title": "Query Account Information with SDKs",
      "slug": "chain-interactions-accounts-query-accounts",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/accounts/query-accounts.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/accounts/query-accounts/",
      "preview": "Learn how to query account information using five popular SDKs—Polkadot API (PAPI), Polkadot.js API, Dedot, Python Substrate Interface, and Subxt.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Query Account Information",
          "anchor": "query-account-information"
        },
        {
          "depth": 2,
          "title": "Understanding Account Data",
          "anchor": "understanding-account-data"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2617,
        "token_estimate": 6038,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:983883c7bd9121fc1447d4d282816496106d2e0a75c72d9d06590cc74e9a5498",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions",
      "title": "Chain Interactions Overview",
      "slug": "chain-interactions",
      "categories": [
        "Chain Interactions"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/",
      "preview": "Learn how to query data, send transactions, enable cross-chain communication, and manage accounts across the Polkadot ecosystem.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Core Interaction Patterns",
          "anchor": "core-interaction-patterns"
        },
        {
          "depth": 3,
          "title": "Query On-Chain Data",
          "anchor": "query-on-chain-data"
        },
        {
          "depth": 3,
          "title": "Send Transactions",
          "anchor": "send-transactions"
        },
        {
          "depth": 3,
          "title": "Send Cross-Chain Transactions",
          "anchor": "send-cross-chain-transactions"
        },
        {
          "depth": 3,
          "title": "Manage Tokens",
          "anchor": "manage-tokens"
        },
        {
          "depth": 3,
          "title": "Manage Accounts",
          "anchor": "manage-accounts"
        },
        {
          "depth": 2,
          "title": "Development Tools and SDKs",
          "anchor": "development-tools-and-sdks"
        }
      ],
      "stats": {
        "word_count": 391,
        "token_estimate": 584,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:e14c29f34e83810a048b34f83bc7096d980872d0751259a47ebf44c82eb7ec85",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-query-data-query-rest",
      "title": "Query On-Chain State with Sidecar REST API",
      "slug": "chain-interactions-query-data-query-rest",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/query-data/query-rest.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/query-data/query-rest/",
      "preview": "Learn how to query on-chain state on Polkadot using the Sidecar REST API with curl, including account balances, asset data, and block information.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Running Sidecar Locally",
          "anchor": "running-sidecar-locally"
        },
        {
          "depth": 2,
          "title": "Public Sidecar Endpoints",
          "anchor": "public-sidecar-endpoints"
        },
        {
          "depth": 2,
          "title": "Query Account Balance",
          "anchor": "query-account-balance"
        },
        {
          "depth": 2,
          "title": "Query Asset Balances",
          "anchor": "query-asset-balances"
        },
        {
          "depth": 2,
          "title": "Query Asset Metadata",
          "anchor": "query-asset-metadata"
        },
        {
          "depth": 2,
          "title": "Query Asset Details",
          "anchor": "query-asset-details"
        },
        {
          "depth": 2,
          "title": "Query Foreign Asset Balances",
          "anchor": "query-foreign-asset-balances"
        },
        {
          "depth": 2,
          "title": "Query Block Information",
          "anchor": "query-block-information"
        },
        {
          "depth": 2,
          "title": "API Reference",
          "anchor": "api-reference"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1769,
        "token_estimate": 3911,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:762ea967e80686fd9250280fb1a91734d97c5335ec2cda3675ecdcd5c9267241",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-query-data-query-sdks",
      "title": "Query On-Chain State with SDKs",
      "slug": "chain-interactions-query-data-query-sdks",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/query-data/query-sdks.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/query-data/query-sdks/",
      "preview": "Learn how to query on-chain storage data on Polkadot Hub using PAPI, Polkadot.js, Dedot, Python Substrate Interface, and Subxt.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Query On-Chain Data",
          "anchor": "query-on-chain-data"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3858,
        "token_estimate": 8198,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:7a140bd7f760c7aa5706e5e09ae8d68204963b78ca109ca5a5a67e1301f0093a",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-query-data-runtime-api-calls",
      "title": "Runtime API Calls",
      "slug": "chain-interactions-query-data-runtime-api-calls",
      "categories": [
        "Polkadot Protocol",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/query-data/runtime-api-calls.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/query-data/runtime-api-calls/",
      "preview": "Learn how to call Polkadot runtime APIs to access the Wasm runtime and retrieve computed results using PAPI, Polkadot.js, Dedot, Python, and Subxt.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Call Runtime APIs",
          "anchor": "call-runtime-apis"
        },
        {
          "depth": 2,
          "title": "Available Runtime APIs",
          "anchor": "available-runtime-apis"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2305,
        "token_estimate": 4688,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:fcb314a99ba11441c3c85af3feab2d68ed90df9e87dae26604ec58c19e3feac0",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-calculate-transaction-fees",
      "title": "Calculate Transaction Fees",
      "slug": "chain-interactions-send-transactions-calculate-transaction-fees",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/calculate-transaction-fees.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/calculate-transaction-fees/",
      "preview": "Learn how to calculate transaction fees on Polkadot using Polkadot-API, Polkadot.js API, and the Polkadot.js Apps UI to estimate transfer costs.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Polkadot-API (PAPI)",
          "anchor": "polkadot-api-papi"
        },
        {
          "depth": 2,
          "title": "Polkadot.js API",
          "anchor": "polkadotjs-api"
        },
        {
          "depth": 2,
          "title": "Polkadot.js Apps Interface",
          "anchor": "polkadotjs-apps-interface"
        },
        {
          "depth": 3,
          "title": "Estimate Fees via Transfer Interface",
          "anchor": "estimate-fees-via-transfer-interface"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1045,
        "token_estimate": 1879,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:d1edd5982c012d89a3fbd7dcd64b61a0004f4d1d6a1d399760380c7110e4c126",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-interoperability-debug-and-preview-xcms",
      "title": "Replay and Dry Run XCMs",
      "slug": "chain-interactions-send-transactions-interoperability-debug-and-preview-xcms",
      "categories": [
        "Interoperability",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/debug-and-preview-xcms.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/debug-and-preview-xcms/",
      "preview": "Replay and dry-run XCMs using Chopsticks with full logging enabled. Diagnose issues, trace message flow, and debug complex cross-chain interactions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up Your Project",
          "anchor": "set-up-your-project"
        },
        {
          "depth": 2,
          "title": "Capture the XCM to Replay",
          "anchor": "capture-the-xcm-to-replay"
        },
        {
          "depth": 2,
          "title": "Fork the Relevant Chains",
          "anchor": "fork-the-relevant-chains"
        },
        {
          "depth": 3,
          "title": "Set the Block Numbers",
          "anchor": "set-the-block-numbers"
        },
        {
          "depth": 3,
          "title": "Enable Logging and Wasm Override",
          "anchor": "enable-logging-and-wasm-override"
        },
        {
          "depth": 2,
          "title": "Identify and Extract the XCM",
          "anchor": "identify-and-extract-the-xcm"
        },
        {
          "depth": 2,
          "title": "Replay the XCM",
          "anchor": "replay-the-xcm"
        },
        {
          "depth": 3,
          "title": "Add the Polkadot Hub Descriptor",
          "anchor": "add-the-polkadot-hub-descriptor"
        },
        {
          "depth": 3,
          "title": "Create a Replay Script",
          "anchor": "create-a-replay-script"
        },
        {
          "depth": 3,
          "title": "Execute the Replay Script",
          "anchor": "execute-the-replay-script"
        },
        {
          "depth": 3,
          "title": "Expected Output",
          "anchor": "expected-output"
        },
        {
          "depth": 2,
          "title": "Dry Run the XCM",
          "anchor": "dry-run-the-xcm"
        },
        {
          "depth": 3,
          "title": "Create a Dry Run Script",
          "anchor": "create-a-dry-run-script"
        },
        {
          "depth": 3,
          "title": "Execute the Dry Run Script",
          "anchor": "execute-the-dry-run-script"
        },
        {
          "depth": 2,
          "title": "Review and Debug",
          "anchor": "review-and-debug"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2019,
        "token_estimate": 4016,
        "headings": 18,
        "sections_indexed": 18
      },
      "version_hash": "sha256:54b0fe7ca1e54f7820fd1b70b12ae042e72eb10dcaa271909cbbb0ff9fbdab44",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-interoperability-estimate-xcm-fees",
      "title": "XCM Fee Estimation",
      "slug": "chain-interactions-send-transactions-interoperability-estimate-xcm-fees",
      "categories": [
        "Interoperability",
        "Chain Interactions"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/estimate-xcm-fees.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/estimate-xcm-fees/",
      "preview": "This tutorial demonstrates how to estimate the fees for teleporting assets from the Polkadot Hub TestNet to the Paseo People Chain.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Fee Mechanism",
          "anchor": "fee-mechanism"
        },
        {
          "depth": 2,
          "title": "Environment Setup",
          "anchor": "environment-setup"
        },
        {
          "depth": 2,
          "title": "Client and API Setup",
          "anchor": "client-and-api-setup"
        },
        {
          "depth": 2,
          "title": "Fee Estimation Function",
          "anchor": "fee-estimation-function"
        },
        {
          "depth": 2,
          "title": "Complete Implementation",
          "anchor": "complete-implementation"
        },
        {
          "depth": 2,
          "title": "Full Code",
          "anchor": "full-code"
        },
        {
          "depth": 2,
          "title": "Running the Script",
          "anchor": "running-the-script"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 2801,
        "token_estimate": 5708,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:0f53501eeaddea793a41a477f2b959e39dafa2eeae81265f9fdf80432050dd4a",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-interoperability-transfer-assets-into-polkadot",
      "title": "Transfer Assets from Ethereum into Polkadot",
      "slug": "chain-interactions-send-transactions-interoperability-transfer-assets-into-polkadot",
      "categories": [
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/transfer-assets-into-polkadot.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/transfer-assets-into-polkadot/",
      "preview": "A step-by-step guide to bridging assets from Ethereum to Polkadot using the ParaSpell XCM SDK and Snowbridge.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "How the Bridge Works",
          "anchor": "how-the-bridge-works"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Prepare Tokens for Bridging",
          "anchor": "prepare-tokens-for-bridging"
        },
        {
          "depth": 2,
          "title": "Initialize Your Project",
          "anchor": "initialize-your-project"
        },
        {
          "depth": 2,
          "title": "Approve Tokens for Bridging",
          "anchor": "approve-tokens-for-bridging"
        },
        {
          "depth": 2,
          "title": "Build and Execute the Bridge Transfer",
          "anchor": "build-and-execute-the-bridge-transfer"
        },
        {
          "depth": 2,
          "title": "Monitor the Transfer",
          "anchor": "monitor-the-transfer"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1714,
        "token_estimate": 3263,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:6829f50b280fd08a21b26f425f1d573d07ed02448f4695c0e5a89a6a120e9fea",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-interoperability-transfer-assets-parachains",
      "title": "Transfer Assets Between Parachains",
      "slug": "chain-interactions-send-transactions-interoperability-transfer-assets-parachains",
      "categories": [
        "Interoperability",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/transfer-assets-parachains.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/interoperability/transfer-assets-parachains/",
      "preview": "A step-by-step guide to using the ParaSpell XCM SDK to build, verify, and execute a transfer from one Parachain to another.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Initialize Your Project",
          "anchor": "initialize-your-project"
        },
        {
          "depth": 2,
          "title": "Build a Token Transfer Transaction",
          "anchor": "build-a-token-transfer-transaction"
        },
        {
          "depth": 2,
          "title": "Perform a Dry Run",
          "anchor": "perform-a-dry-run"
        },
        {
          "depth": 2,
          "title": "Verify the Existential Deposit",
          "anchor": "verify-the-existential-deposit"
        },
        {
          "depth": 2,
          "title": "Get Transfer Info and Fee Estimates",
          "anchor": "get-transfer-info-and-fee-estimates"
        },
        {
          "depth": 2,
          "title": "Next Steps",
          "anchor": "next-steps"
        }
      ],
      "stats": {
        "word_count": 2086,
        "token_estimate": 4727,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:47bf8ba1c0cffaf107afe8114f0b93852fbca61325e9bbe35ca5f94bc4ea1e14",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-pay-fees-with-different-tokens",
      "title": "Pay Transaction Fees with Different Tokens",
      "slug": "chain-interactions-send-transactions-pay-fees-with-different-tokens",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/pay-fees-with-different-tokens.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/pay-fees-with-different-tokens/",
      "preview": "Learn how to send a DOT transfer transaction while paying the fees using a different token on Polkadot Hub using multiple SDKs.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Local Polkadot Hub Setup",
          "anchor": "local-polkadot-hub-setup"
        },
        {
          "depth": 2,
          "title": "Set Up Your Project",
          "anchor": "set-up-your-project"
        },
        {
          "depth": 2,
          "title": "Implementation",
          "anchor": "implementation"
        },
        {
          "depth": 3,
          "title": "Import Dependencies and Define Constants",
          "anchor": "import-dependencies-and-define-constants"
        },
        {
          "depth": 3,
          "title": "Create a Signer and Connect",
          "anchor": "create-a-signer-and-connect"
        },
        {
          "depth": 3,
          "title": "Create the Transaction",
          "anchor": "create-the-transaction"
        },
        {
          "depth": 3,
          "title": "Sign and Submit with Alternative Fee Payment",
          "anchor": "sign-and-submit-with-alternative-fee-payment"
        },
        {
          "depth": 3,
          "title": "Full Code",
          "anchor": "full-code"
        },
        {
          "depth": 3,
          "title": "Run the Script",
          "anchor": "run-the-script"
        },
        {
          "depth": 3,
          "title": "Expected Output",
          "anchor": "expected-output"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2781,
        "token_estimate": 5942,
        "headings": 14,
        "sections_indexed": 14
      },
      "version_hash": "sha256:93df386bc167438a329d899bfc30a429ba92604380d2a806b445c18f6ee01caf",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-send-transactions-with-sdks",
      "title": "Send Transactions with SDKs",
      "slug": "chain-interactions-send-transactions-with-sdks",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/send-transactions/with-sdks.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/send-transactions/with-sdks/",
      "preview": "Learn how to construct, sign, and submit transactions using PAPI, Polkadot.js, Dedot, Python Substrate Interface, and Subxt.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Send Transactions",
          "anchor": "send-transactions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2580,
        "token_estimate": 5397,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:d9039f39949804ca715143d431e3026cea61ab5e3677c63ec7fb19d14f27e2d8",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-store-data-bulletin-chain",
      "title": "Store and Retrieve Data on the Bulletin Chain",
      "slug": "chain-interactions-store-data-bulletin-chain",
      "categories": [
        "Chain Interactions"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/store-data/bulletin-chain.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/store-data/bulletin-chain/",
      "preview": "Learn how to store and retrieve an image on the Polkadot Bulletin Chain using the Console UI or PAPI, with step-by-step instructions.",
      "outline": [
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Get Authorization",
          "anchor": "get-authorization"
        },
        {
          "depth": 2,
          "title": "Store Your Image",
          "anchor": "store-your-image"
        },
        {
          "depth": 2,
          "title": "Verify Your Stored Image",
          "anchor": "verify-your-stored-image"
        },
        {
          "depth": 2,
          "title": "Retrieve Your Data",
          "anchor": "retrieve-your-data"
        },
        {
          "depth": 2,
          "title": "Renew Your Data",
          "anchor": "renew-your-data"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1898,
        "token_estimate": 3362,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:7256c63b47506689eb281996845c2613e4fdaba603035dc5c4f4e4dfe0bf7c4c",
      "last_updated": "2026-05-19T14:51:06+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-token-operations-convert-assets",
      "title": "Convert Assets on Asset Hub",
      "slug": "chain-interactions-token-operations-convert-assets",
      "categories": [
        "Chain Interactions",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/token-operations/convert-assets.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/token-operations/convert-assets/",
      "preview": "A guide detailing the step-by-step process of converting assets on Asset Hub, helping users efficiently navigate asset management on the platform.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Create a Liquidity Pool",
          "anchor": "create-a-liquidity-pool"
        },
        {
          "depth": 2,
          "title": "Add Liquidity to a Pool",
          "anchor": "add-liquidity-to-a-pool"
        },
        {
          "depth": 2,
          "title": "Swap Assets",
          "anchor": "swap-assets"
        },
        {
          "depth": 3,
          "title": "Swap from an Exact Amount of Tokens",
          "anchor": "swap-from-an-exact-amount-of-tokens"
        },
        {
          "depth": 3,
          "title": "Swap to an Exact Amount of Tokens",
          "anchor": "swap-to-an-exact-amount-of-tokens"
        },
        {
          "depth": 2,
          "title": "Withdraw Liquidity from a Pool",
          "anchor": "withdraw-liquidity-from-a-pool"
        },
        {
          "depth": 2,
          "title": "Test Environment Setup",
          "anchor": "test-environment-setup"
        }
      ],
      "stats": {
        "word_count": 2574,
        "token_estimate": 4026,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:b51d1a7650fb1258456540340684ad11e631cdfff784fa8d02b2a0e422f4249a",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-token-operations-register-foreign-asset",
      "title": "Register a Foreign Asset",
      "slug": "chain-interactions-token-operations-register-foreign-asset",
      "categories": [
        "Interoperability",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/token-operations/register-foreign-asset.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/token-operations/register-foreign-asset/",
      "preview": "Learn step-by-step how to register a foreign asset on Polkadot Hub and the origin parachain to enable cross-chain token transfers.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Register a Foreign Asset",
          "anchor": "register-a-foreign-asset"
        },
        {
          "depth": 3,
          "title": "Polkadot Hub",
          "anchor": "polkadot-hub"
        },
        {
          "depth": 3,
          "title": "Source Parachain",
          "anchor": "source-parachain"
        },
        {
          "depth": 2,
          "title": "Asset Registration Verification",
          "anchor": "asset-registration-verification"
        },
        {
          "depth": 2,
          "title": "Test Environment Setup",
          "anchor": "test-environment-setup"
        }
      ],
      "stats": {
        "word_count": 1394,
        "token_estimate": 2139,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:f4ae2c4b92f138eb0c3e5431abfb7fa7f4a4b4c3ba736c24869fca0bdf40b289",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "chain-interactions-token-operations-register-local-asset",
      "title": "Register a Local Asset",
      "slug": "chain-interactions-token-operations-register-local-asset",
      "categories": [
        "Basics",
        "Chain Interactions"
      ],
      "raw_md_url": "https://docs.polkadot.com/chain-interactions/token-operations/register-local-asset.md",
      "html_url": "https://docs.polkadot.com/chain-interactions/token-operations/register-local-asset/",
      "preview": "Learn how to register a local asset on Polkadot Hub, including prerequisites, deposits, and step-by-step instructions using Polkadot.js Apps.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Register a Local Asset",
          "anchor": "register-a-local-asset"
        },
        {
          "depth": 2,
          "title": "Verify Asset Registration",
          "anchor": "verify-asset-registration"
        },
        {
          "depth": 2,
          "title": "Test Setup Environment",
          "anchor": "test-setup-environment"
        }
      ],
      "stats": {
        "word_count": 988,
        "token_estimate": 1476,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:5e9bf242e67b73f8d06dde94177b29257b9ab7f5ebf430c4b43598dd3a9e1030",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "get-support",
      "title": "Support",
      "slug": "get-support",
      "categories": [
        "Basics"
      ],
      "raw_md_url": "https://docs.polkadot.com/get-support.md",
      "html_url": "https://docs.polkadot.com/get-support/",
      "preview": "Start here to get developer support for Polkadot. Connect with the team, find help, and explore resources beyond the documentation.",
      "outline": [
        {
          "depth": 2,
          "title": "Support Channels",
          "anchor": "support-channels"
        },
        {
          "depth": 2,
          "title": "Community Resources",
          "anchor": "community-resources"
        },
        {
          "depth": 2,
          "title": "AI Resources",
          "anchor": "ai-resources"
        }
      ],
      "stats": {
        "word_count": 582,
        "token_estimate": 1318,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:55d620780013f68098103785501b4e460e996daf7be25e03e27e0cf2f8acc837",
      "last_updated": "2026-03-31T17:52:40+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure",
      "title": "Node Infrastructure",
      "slug": "node-infrastructure",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/",
      "preview": "From running RPC endpoints to producing parachain blocks or validating the relay chain, this guide explains your options and how to begin.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Node Types",
          "anchor": "node-types"
        },
        {
          "depth": 3,
          "title": "RPC Nodes",
          "anchor": "rpc-nodes"
        },
        {
          "depth": 3,
          "title": "Collators",
          "anchor": "collators"
        },
        {
          "depth": 3,
          "title": "Validators",
          "anchor": "validators"
        },
        {
          "depth": 2,
          "title": "Next Steps",
          "anchor": "next-steps"
        }
      ],
      "stats": {
        "word_count": 537,
        "token_estimate": 836,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:abbb6422795f878cbc6be5617c276e66dc0eed7b3a199713d55516390eb871bf",
      "last_updated": "2026-02-05T16:21:23+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-collator",
      "title": "Run a Block-Producing Collator",
      "slug": "node-infrastructure-run-a-collator",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-collator.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-collator/",
      "preview": "Learn how to set up and run a block-producing collator for Polkadot system parachains, including registration and session key management.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 3,
          "title": "Hardware Requirements",
          "anchor": "hardware-requirements"
        },
        {
          "depth": 3,
          "title": "Software Requirements",
          "anchor": "software-requirements"
        },
        {
          "depth": 3,
          "title": "Account Requirements",
          "anchor": "account-requirements"
        },
        {
          "depth": 2,
          "title": "Install Dependencies",
          "anchor": "install-dependencies"
        },
        {
          "depth": 2,
          "title": "Generate Node Key",
          "anchor": "generate-node-key"
        },
        {
          "depth": 2,
          "title": "Obtain Chain Specification",
          "anchor": "obtain-chain-specification"
        },
        {
          "depth": 2,
          "title": "Run the Collator",
          "anchor": "run-the-collator"
        },
        {
          "depth": 2,
          "title": "Generate Session Keys",
          "anchor": "generate-session-keys"
        },
        {
          "depth": 2,
          "title": "Register Collator for Selection",
          "anchor": "register-collator-for-selection"
        },
        {
          "depth": 3,
          "title": "Registration Process",
          "anchor": "registration-process"
        },
        {
          "depth": 2,
          "title": "Commands for Node Management",
          "anchor": "commands-for-node-management"
        },
        {
          "depth": 2,
          "title": "Commands for Log Management",
          "anchor": "commands-for-log-management"
        },
        {
          "depth": 2,
          "title": "Database Maintenance",
          "anchor": "database-maintenance"
        },
        {
          "depth": 2,
          "title": "Updates and Upgrades",
          "anchor": "updates-and-upgrades"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 2642,
        "token_estimate": 5030,
        "headings": 17,
        "sections_indexed": 17
      },
      "version_hash": "sha256:ff83ed0547094f13684a830de3110f3351d2f4b65c4fec04a53260c00ee424c3",
      "last_updated": "2026-01-27T12:11:18+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-node-parachain-rpc",
      "title": "Run a Parachain RPC Node",
      "slug": "node-infrastructure-run-a-node-parachain-rpc",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/parachain-rpc.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/parachain-rpc/",
      "preview": "Follow this guide to understand hardware and software requirements and how to set up and run an RPC node for any parachain, including system parachains.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 3,
          "title": "Hardware Requirements",
          "anchor": "hardware-requirements"
        },
        {
          "depth": 3,
          "title": "Software Requirements",
          "anchor": "software-requirements"
        },
        {
          "depth": 2,
          "title": "Obtain the Chain Specification",
          "anchor": "obtain-the-chain-specification"
        },
        {
          "depth": 3,
          "title": "System Parachains",
          "anchor": "system-parachains"
        },
        {
          "depth": 3,
          "title": "Other Parachains",
          "anchor": "other-parachains"
        },
        {
          "depth": 2,
          "title": "Spin Up a Node",
          "anchor": "spin-up-a-node"
        },
        {
          "depth": 3,
          "title": "Port Mappings",
          "anchor": "port-mappings"
        },
        {
          "depth": 3,
          "title": "Node Configuration Parameters",
          "anchor": "node-configuration-parameters"
        },
        {
          "depth": 2,
          "title": "Monitor Node Synchronization",
          "anchor": "monitor-node-synchronization"
        },
        {
          "depth": 2,
          "title": "Commands for Managing Your Node",
          "anchor": "commands-for-managing-your-node"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 2044,
        "token_estimate": 4141,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:8cfd179d6235042937167b8ba0ee8461335c644e7e7bb6a828b5cd072eaa9f3e",
      "last_updated": "2026-06-04T16:06:19+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-node-polkadot-hub-rpc",
      "title": "Run an RPC Node for Polkadot Hub",
      "slug": "node-infrastructure-run-a-node-polkadot-hub-rpc",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/polkadot-hub-rpc.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/polkadot-hub-rpc/",
      "preview": "Learn how to set up and run an RPC node for Polkadot Hub with Polkadot SDK RPC endpoints and optional Ethereum JSON-RPC compatibility.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 3,
          "title": "Hardware Requirements",
          "anchor": "hardware-requirements"
        },
        {
          "depth": 3,
          "title": "Software Requirements",
          "anchor": "software-requirements"
        },
        {
          "depth": 2,
          "title": "Spin Up a Node",
          "anchor": "spin-up-a-node"
        },
        {
          "depth": 3,
          "title": "Port Mappings",
          "anchor": "port-mappings"
        },
        {
          "depth": 3,
          "title": "Node Configuration Arguments",
          "anchor": "node-configuration-arguments"
        },
        {
          "depth": 2,
          "title": "Monitor Node Synchronization",
          "anchor": "monitor-node-synchronization"
        },
        {
          "depth": 2,
          "title": "Commands for Managing Your Node",
          "anchor": "commands-for-managing-your-node"
        },
        {
          "depth": 2,
          "title": "Ethereum RPC Compatibility",
          "anchor": "ethereum-rpc-compatibility"
        },
        {
          "depth": 3,
          "title": "Prerequisites",
          "anchor": "prerequisites-2"
        },
        {
          "depth": 3,
          "title": "Run the Ethereum RPC Adapter",
          "anchor": "run-the-ethereum-rpc-adapter"
        },
        {
          "depth": 3,
          "title": "Ethereum RPC Configuration",
          "anchor": "ethereum-rpc-configuration"
        },
        {
          "depth": 3,
          "title": "API Endpoints",
          "anchor": "api-endpoints"
        },
        {
          "depth": 3,
          "title": "Verify the Ethereum RPC Adapter",
          "anchor": "verify-the-ethereum-rpc-adapter"
        },
        {
          "depth": 3,
          "title": "Manage the Ethereum RPC Adapter",
          "anchor": "manage-the-ethereum-rpc-adapter"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 2693,
        "token_estimate": 5432,
        "headings": 17,
        "sections_indexed": 17
      },
      "version_hash": "sha256:432ea641ad2548ccd1f20c407769d6db045807c748bcb9e9cd4133a7fa94c5f9",
      "last_updated": "2026-04-01T10:49:04+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-node-relay-chain-bootnode",
      "title": "Set Up a Bootnode",
      "slug": "node-infrastructure-run-a-node-relay-chain-bootnode",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/relay-chain/bootnode.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/relay-chain/bootnode/",
      "preview": "Learn how to configure and run a bootnode for Polkadot, including P2P, WS, and secure WSS connections with network key management and proxies.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Accessing the Bootnode",
          "anchor": "accessing-the-bootnode"
        },
        {
          "depth": 2,
          "title": "Node Key",
          "anchor": "node-key"
        },
        {
          "depth": 2,
          "title": "Running the Bootnode",
          "anchor": "running-the-bootnode"
        },
        {
          "depth": 2,
          "title": "Testing Bootnode Connection",
          "anchor": "testing-bootnode-connection"
        },
        {
          "depth": 3,
          "title": "P2P",
          "anchor": "p2p"
        },
        {
          "depth": 3,
          "title": "P2P/WS",
          "anchor": "p2pws"
        },
        {
          "depth": 3,
          "title": "P2P/WSS",
          "anchor": "p2pwss"
        }
      ],
      "stats": {
        "word_count": 645,
        "token_estimate": 1043,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:343a184ba5ec7ed345dc2c5abc2f079d80d6beec86d4ff2dfe3f688ab658608d",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-node-relay-chain-full-node",
      "title": "Set Up a Node",
      "slug": "node-infrastructure-run-a-node-relay-chain-full-node",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/relay-chain/full-node.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/relay-chain/full-node/",
      "preview": "Learn how to install, configure, and run Polkadot nodes, including setting up different node types and connecting to the network.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Set Up a Node",
          "anchor": "set-up-a-node"
        },
        {
          "depth": 3,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 3,
          "title": "Install and Build the Polkadot Binary",
          "anchor": "install-and-build-the-polkadot-binary"
        },
        {
          "depth": 3,
          "title": "Use Docker",
          "anchor": "use-docker"
        },
        {
          "depth": 2,
          "title": "Configure and Run Your Node",
          "anchor": "configure-and-run-your-node"
        },
        {
          "depth": 3,
          "title": "RPC Configurations",
          "anchor": "rpc-configurations"
        },
        {
          "depth": 2,
          "title": "Sync Your Node",
          "anchor": "sync-your-node"
        },
        {
          "depth": 3,
          "title": "Connect to Your Node",
          "anchor": "connect-to-your-node"
        }
      ],
      "stats": {
        "word_count": 2467,
        "token_estimate": 4158,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:8b15010aa1269a29b4d01d02cb28155bab5fff60215886614a90d3d7ac243d7e",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-node-relay-chain-secure-wss",
      "title": "Set Up Secure WebSocket",
      "slug": "node-infrastructure-run-a-node-relay-chain-secure-wss",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/relay-chain/secure-wss.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-node/relay-chain/secure-wss/",
      "preview": "Instructions on enabling SSL for your node and setting up a secure WebSocket proxy server using nginx for remote connections.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Secure a WebSocket Port",
          "anchor": "secure-a-websocket-port"
        },
        {
          "depth": 3,
          "title": "Obtain an SSL Certificate",
          "anchor": "obtain-an-ssl-certificate"
        },
        {
          "depth": 2,
          "title": "Install a Proxy Server",
          "anchor": "install-a-proxy-server"
        },
        {
          "depth": 3,
          "title": "Use nginx",
          "anchor": "use-nginx"
        },
        {
          "depth": 3,
          "title": "Use Apache2",
          "anchor": "use-apache2"
        },
        {
          "depth": 2,
          "title": "Connect to the Node",
          "anchor": "connect-to-the-node"
        }
      ],
      "stats": {
        "word_count": 755,
        "token_estimate": 1229,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:b9f62c28766d5525a77b2236abffb9a6cee2a1727e75a1af4e8fe5cdfd7e188f",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-onboarding-and-offboarding-key-management",
      "title": "Validator Key Management",
      "slug": "node-infrastructure-run-a-validator-onboarding-and-offboarding-key-management",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/key-management.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/key-management/",
      "preview": "Learn how to generate and manage validator keys, including session keys for consensus participation and node keys for maintaining a stable network identity.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Set Session Keys",
          "anchor": "set-session-keys"
        },
        {
          "depth": 3,
          "title": "Generate Session Keys",
          "anchor": "generate-session-keys"
        },
        {
          "depth": 3,
          "title": "Submit Transaction to Set Keys",
          "anchor": "submit-transaction-to-set-keys"
        },
        {
          "depth": 3,
          "title": "Verify Session Key Setup",
          "anchor": "verify-session-key-setup"
        },
        {
          "depth": 2,
          "title": "Set the Node Key",
          "anchor": "set-the-node-key"
        },
        {
          "depth": 3,
          "title": "Generate the Node Key",
          "anchor": "generate-the-node-key"
        },
        {
          "depth": 3,
          "title": "Set Node Key",
          "anchor": "set-node-key"
        }
      ],
      "stats": {
        "word_count": 2087,
        "token_estimate": 3332,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:1ae2b1199b81b71e81c7754a44d9285915e937a534c626cc026b7b77cdd5dde2",
      "last_updated": "2026-06-24T14:26:20+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-onboarding-and-offboarding-set-up-validator",
      "title": "Set Up a Validator",
      "slug": "node-infrastructure-run-a-validator-onboarding-and-offboarding-set-up-validator",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/set-up-validator.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/set-up-validator/",
      "preview": "Set up a Polkadot validator node to secure the network and earn staking rewards. Follow this step-by-step guide to install, configure, and manage your node.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Initial Setup",
          "anchor": "initial-setup"
        },
        {
          "depth": 3,
          "title": "Install Network Time Protocol Client",
          "anchor": "install-network-time-protocol-client"
        },
        {
          "depth": 3,
          "title": "Verify Landlock is Activated",
          "anchor": "verify-landlock-is-activated"
        },
        {
          "depth": 2,
          "title": "Install the Polkadot Binaries",
          "anchor": "install-the-polkadot-binaries"
        },
        {
          "depth": 3,
          "title": "Install from Official Releases",
          "anchor": "install-from-official-releases"
        },
        {
          "depth": 3,
          "title": "Install with Package Managers",
          "anchor": "install-with-package-managers"
        },
        {
          "depth": 3,
          "title": "Install with Ansible",
          "anchor": "install-with-ansible"
        },
        {
          "depth": 3,
          "title": "Install with Docker",
          "anchor": "install-with-docker"
        },
        {
          "depth": 3,
          "title": "Build from Sources",
          "anchor": "build-from-sources"
        },
        {
          "depth": 2,
          "title": "Verify Installation",
          "anchor": "verify-installation"
        }
      ],
      "stats": {
        "word_count": 1634,
        "token_estimate": 2479,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:1d88ccc4f23b5ea27a6d042c2107d696289864346b73e31114e7f5c6564c2a2a",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-onboarding-and-offboarding-start-validating",
      "title": "Start Validating",
      "slug": "node-infrastructure-run-a-validator-onboarding-and-offboarding-start-validating",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/start-validating.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/start-validating/",
      "preview": "Learn how to start validating on Polkadot by choosing a network, syncing your node, bonding DOT tokens, and activating your validator.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Choose a Network",
          "anchor": "choose-a-network"
        },
        {
          "depth": 2,
          "title": "Synchronize Chain Data",
          "anchor": "synchronize-chain-data"
        },
        {
          "depth": 3,
          "title": "Database Snapshot Services",
          "anchor": "database-snapshot-services"
        },
        {
          "depth": 2,
          "title": "Bond DOT",
          "anchor": "bond-dot"
        },
        {
          "depth": 3,
          "title": "Bonding DOT on Polkadot.js Apps",
          "anchor": "bonding-dot-on-polkadotjs-apps"
        },
        {
          "depth": 2,
          "title": "Validate",
          "anchor": "validate"
        },
        {
          "depth": 3,
          "title": "Verify Sync via Telemetry",
          "anchor": "verify-sync-via-telemetry"
        },
        {
          "depth": 3,
          "title": "Activate using Polkadot.js Apps",
          "anchor": "activate-using-polkadotjs-apps"
        },
        {
          "depth": 3,
          "title": "Monitor Validation Status and Slots",
          "anchor": "monitor-validation-status-and-slots"
        },
        {
          "depth": 2,
          "title": "Run a Validator Using Systemd",
          "anchor": "run-a-validator-using-systemd"
        },
        {
          "depth": 3,
          "title": "Create the Systemd Service File",
          "anchor": "create-the-systemd-service-file"
        },
        {
          "depth": 3,
          "title": "Run the Service",
          "anchor": "run-the-service"
        }
      ],
      "stats": {
        "word_count": 2533,
        "token_estimate": 3923,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:99648e96771d37abbccd5648cf13c5b3438013278226b8379b46fd96162f45ce",
      "last_updated": "2026-06-04T16:06:19+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-onboarding-and-offboarding-stop-validating",
      "title": "Stop Validating",
      "slug": "node-infrastructure-run-a-validator-onboarding-and-offboarding-stop-validating",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/stop-validating.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/onboarding-and-offboarding/stop-validating/",
      "preview": "Learn to safely stop validating on Polkadot, including chilling, unbonding tokens, and purging validator keys.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Pause Versus Stop",
          "anchor": "pause-versus-stop"
        },
        {
          "depth": 2,
          "title": "Chill Validator",
          "anchor": "chill-validator"
        },
        {
          "depth": 2,
          "title": "Purge Validator Session Keys",
          "anchor": "purge-validator-session-keys"
        },
        {
          "depth": 2,
          "title": "Unbond Your Tokens",
          "anchor": "unbond-your-tokens"
        }
      ],
      "stats": {
        "word_count": 612,
        "token_estimate": 802,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:d0e9b503775f333fa167144314c531af0adbe1d8454f4766915f4fae4a394bc7",
      "last_updated": "2026-06-24T14:26:20+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-operational-tasks-general-management",
      "title": "General Management",
      "slug": "node-infrastructure-run-a-validator-operational-tasks-general-management",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/general-management.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/general-management/",
      "preview": "Optimize your Polkadot validator setup with advanced configuration techniques. Learn how to boost performance, enhance security, and ensure seamless operations.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Configuration Optimization",
          "anchor": "configuration-optimization"
        },
        {
          "depth": 3,
          "title": "Deactivate Simultaneous Multithreading",
          "anchor": "deactivate-simultaneous-multithreading"
        },
        {
          "depth": 3,
          "title": "Deactivate Automatic NUMA Balancing",
          "anchor": "deactivate-automatic-numa-balancing"
        },
        {
          "depth": 3,
          "title": "Spectre and Meltdown Mitigations",
          "anchor": "spectre-and-meltdown-mitigations"
        },
        {
          "depth": 2,
          "title": "Monitor Your Node",
          "anchor": "monitor-your-node"
        },
        {
          "depth": 3,
          "title": "Environment Setup",
          "anchor": "environment-setup"
        },
        {
          "depth": 3,
          "title": "Install and Configure Prometheus",
          "anchor": "install-and-configure-prometheus"
        },
        {
          "depth": 3,
          "title": "Start Prometheus",
          "anchor": "start-prometheus"
        },
        {
          "depth": 3,
          "title": "Install and Configure Grafana",
          "anchor": "install-and-configure-grafana"
        },
        {
          "depth": 3,
          "title": "Install and Configure Alertmanager",
          "anchor": "install-and-configure-alertmanager"
        },
        {
          "depth": 2,
          "title": "Secure Your Validator",
          "anchor": "secure-your-validator"
        },
        {
          "depth": 3,
          "title": "Key Management",
          "anchor": "key-management"
        },
        {
          "depth": 3,
          "title": "Signing Outside the Client",
          "anchor": "signing-outside-the-client"
        },
        {
          "depth": 3,
          "title": "Secure-Validator Mode",
          "anchor": "secure-validator-mode"
        },
        {
          "depth": 3,
          "title": "Linux Best Practices",
          "anchor": "linux-best-practices"
        },
        {
          "depth": 3,
          "title": "Validator Best Practices",
          "anchor": "validator-best-practices"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 3951,
        "token_estimate": 6832,
        "headings": 18,
        "sections_indexed": 18
      },
      "version_hash": "sha256:8c19a2f71a841ccedc4eca4c26378cb412c5b7ccf04c231cd823167ee84ed56d",
      "last_updated": "2026-04-14T14:05:55+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-operational-tasks-pause-validating",
      "title": "Pause Validating",
      "slug": "node-infrastructure-run-a-validator-operational-tasks-pause-validating",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/pause-validating.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/pause-validating/",
      "preview": "Learn how to temporarily pause staking activity in Polkadot using the chill extrinsic, with guidance for validators and nominators.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Chilling Your Node",
          "anchor": "chilling-your-node"
        },
        {
          "depth": 2,
          "title": "Staking Election Timing Considerations",
          "anchor": "staking-election-timing-considerations"
        },
        {
          "depth": 2,
          "title": "Chilling as a Nominator",
          "anchor": "chilling-as-a-nominator"
        },
        {
          "depth": 2,
          "title": "Chilling as a Validator",
          "anchor": "chilling-as-a-validator"
        },
        {
          "depth": 2,
          "title": "Chill Other",
          "anchor": "chill-other"
        }
      ],
      "stats": {
        "word_count": 673,
        "token_estimate": 846,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:1cb8c1953274c778df3ddc93e4ad3eddf19550a6aa150b2590d99110a9ad5357",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-operational-tasks-staking-operator-proxy",
      "title": "Staking Operator Proxy on Polkadot",
      "slug": "node-infrastructure-run-a-validator-operational-tasks-staking-operator-proxy",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/staking-operator-proxy.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/staking-operator-proxy/",
      "preview": "Learn how the Staking Operator proxy enables non-custodial validator operations by separating fund management from node operations on Polkadot.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Staking Operator vs Staking Proxy",
          "anchor": "staking-operator-vs-staking-proxy"
        },
        {
          "depth": 2,
          "title": "Set Up a Staking Operator Proxy",
          "anchor": "set-up-a-staking-operator-proxy"
        },
        {
          "depth": 2,
          "title": "Operate a Validator with a Staking Operator Proxy",
          "anchor": "operate-a-validator-with-a-staking-operator-proxy"
        },
        {
          "depth": 2,
          "title": "Manage Session Keys on Polkadot Hub",
          "anchor": "manage-session-keys-on-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Security Considerations",
          "anchor": "security-considerations"
        }
      ],
      "stats": {
        "word_count": 1479,
        "token_estimate": 2283,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:954850563b1cc8da987c7fbe89b64dc781fa9c04ced70dafbe0ffc86f88a6678",
      "last_updated": "2026-04-06T14:02:46+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-operational-tasks-upgrade-your-node",
      "title": "Upgrade a Validator Node",
      "slug": "node-infrastructure-run-a-validator-operational-tasks-upgrade-your-node",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/upgrade-your-node.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/operational-tasks/upgrade-your-node/",
      "preview": "Guide to seamlessly upgrading your Polkadot validator node, managing session keys, and executing server maintenance while avoiding downtime and slashing risks.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Session Keys",
          "anchor": "session-keys"
        },
        {
          "depth": 2,
          "title": "Keystore",
          "anchor": "keystore"
        },
        {
          "depth": 2,
          "title": "Upgrade Using Backup Validator",
          "anchor": "upgrade-using-backup-validator"
        },
        {
          "depth": 3,
          "title": "Session `N`",
          "anchor": "session-n"
        },
        {
          "depth": 3,
          "title": "Session `N+3`",
          "anchor": "session-n3"
        }
      ],
      "stats": {
        "word_count": 909,
        "token_estimate": 1294,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:3915c50f65592d0d2482098bdf9a1c0e3f43ccb6e22a3d3378587abc69775bc1",
      "last_updated": "2026-04-06T14:02:46+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-requirements",
      "title": "Validator Requirements",
      "slug": "node-infrastructure-run-a-validator-requirements",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/requirements.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/requirements/",
      "preview": "Explore the technical and system requirements for running a Polkadot validator, including setup, hardware, staking prerequisites, and security best practices.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Minimum Hardware Requirements",
          "anchor": "minimum-hardware-requirements"
        },
        {
          "depth": 2,
          "title": "VPS Provider List",
          "anchor": "vps-provider-list"
        },
        {
          "depth": 2,
          "title": "Minimum Bond Requirement",
          "anchor": "minimum-bond-requirement"
        },
        {
          "depth": 2,
          "title": "Minimum Validator Self-Stake",
          "anchor": "minimum-validator-self-stake"
        },
        {
          "depth": 2,
          "title": "Minimum Commission",
          "anchor": "minimum-commission"
        }
      ],
      "stats": {
        "word_count": 1175,
        "token_estimate": 1744,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:3f1fca98d0390550724dcac9ba289298be4a1fc58d1067255e5a545b8f83185a",
      "last_updated": "2026-04-01T02:33:47+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-staking-mechanics-offenses-and-slashes",
      "title": "Offenses and Slashes",
      "slug": "node-infrastructure-run-a-validator-staking-mechanics-offenses-and-slashes",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/staking-mechanics/offenses-and-slashes.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/staking-mechanics/offenses-and-slashes/",
      "preview": "Learn about how Polkadot discourages validator misconduct via an offenses and slashing system, including details on offenses and their consequences.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Offenses",
          "anchor": "offenses"
        },
        {
          "depth": 3,
          "title": "Invalid Votes",
          "anchor": "invalid-votes"
        },
        {
          "depth": 3,
          "title": "Equivocations",
          "anchor": "equivocations"
        },
        {
          "depth": 2,
          "title": "Penalties",
          "anchor": "penalties"
        },
        {
          "depth": 3,
          "title": "Slashing",
          "anchor": "slashing"
        },
        {
          "depth": 3,
          "title": "Disabling",
          "anchor": "disabling"
        },
        {
          "depth": 3,
          "title": "Reputation Changes",
          "anchor": "reputation-changes"
        },
        {
          "depth": 3,
          "title": "Penalties by Offense",
          "anchor": "penalties-by-offense"
        }
      ],
      "stats": {
        "word_count": 2107,
        "token_estimate": 3398,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:6f55f62464007aeca98060a95a58384a3b5d9a799c1e6b9845eb2ec1ae841f60",
      "last_updated": "2026-04-23T12:21:22+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "node-infrastructure-run-a-validator-staking-mechanics-rewards",
      "title": "Rewards Payout",
      "slug": "node-infrastructure-run-a-validator-staking-mechanics-rewards",
      "categories": [
        "Infrastructure"
      ],
      "raw_md_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/staking-mechanics/rewards.md",
      "html_url": "https://docs.polkadot.com/node-infrastructure/run-a-validator/staking-mechanics/rewards/",
      "preview": "Learn how validator rewards work on the network, including era points, payout distribution, running multiple validators, and nominator payments.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Era Points",
          "anchor": "era-points"
        },
        {
          "depth": 2,
          "title": "Reward Variance",
          "anchor": "reward-variance"
        },
        {
          "depth": 2,
          "title": "Payout Scheme",
          "anchor": "payout-scheme"
        },
        {
          "depth": 2,
          "title": "Running Multiple Validators",
          "anchor": "running-multiple-validators"
        },
        {
          "depth": 2,
          "title": "Nominators and Validator Payments",
          "anchor": "nominators-and-validator-payments"
        }
      ],
      "stats": {
        "word_count": 1786,
        "token_estimate": 2627,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:8529f3944490b15e7ed22d078e52ff7849856dc4f90a802b0c1b73948bed49c1",
      "last_updated": "2026-03-05T18:21:38+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-add-existing-pallets",
      "title": "Add an Existing Pallet to the Runtime",
      "slug": "parachains-customize-runtime-add-existing-pallets",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/add-existing-pallets.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/add-existing-pallets/",
      "preview": "Learn how to include and configure pallets in a Polkadot SDK-based runtime, from adding dependencies to implementing necessary traits.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Check Prerequisites",
          "anchor": "check-prerequisites"
        },
        {
          "depth": 2,
          "title": "Add an Existing Polkadot SDK Pallet to Your Runtime",
          "anchor": "add-an-existing-polkadot-sdk-pallet-to-your-runtime"
        },
        {
          "depth": 3,
          "title": "Add an Existing Pallet as a Dependency",
          "anchor": "add-an-existing-pallet-as-a-dependency"
        },
        {
          "depth": 3,
          "title": "Enable Standard Library Features",
          "anchor": "enable-standard-library-features"
        },
        {
          "depth": 3,
          "title": "Review the Config Trait",
          "anchor": "review-the-config-trait"
        },
        {
          "depth": 3,
          "title": "Implement the Config Trait",
          "anchor": "implement-the-config-trait"
        },
        {
          "depth": 3,
          "title": "Add to Runtime Construct",
          "anchor": "add-to-runtime-construct"
        },
        {
          "depth": 3,
          "title": "Verify the Runtime Compiles",
          "anchor": "verify-the-runtime-compiles"
        },
        {
          "depth": 2,
          "title": "Run Your Chain Locally",
          "anchor": "run-your-chain-locally"
        },
        {
          "depth": 3,
          "title": "Generate a Chain Specification",
          "anchor": "generate-a-chain-specification"
        },
        {
          "depth": 3,
          "title": "Start the Parachain Node",
          "anchor": "start-the-parachain-node"
        },
        {
          "depth": 3,
          "title": "Interact with the Pallet",
          "anchor": "interact-with-the-pallet"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1552,
        "token_estimate": 2638,
        "headings": 14,
        "sections_indexed": 14
      },
      "version_hash": "sha256:a4ea853276b0feeeeed67c936da951cf9e8045109c63fa45275d265a3722a3c6",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-add-pallet-instances",
      "title": "Add Multiple Pallet Instances",
      "slug": "parachains-customize-runtime-add-pallet-instances",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/add-pallet-instances.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/add-pallet-instances/",
      "preview": "Learn how to implement multiple instances of the same pallet in your Polkadot SDK-based runtime, from adding dependencies to configuring unique instances.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Check Prerequisites",
          "anchor": "check-prerequisites"
        },
        {
          "depth": 2,
          "title": "Understanding Instantiable Pallets",
          "anchor": "understanding-instantiable-pallets"
        },
        {
          "depth": 3,
          "title": "Identifying an Instantiable Pallet",
          "anchor": "identifying-an-instantiable-pallet"
        },
        {
          "depth": 3,
          "title": "How Instance Generics Work",
          "anchor": "how-instance-generics-work"
        },
        {
          "depth": 2,
          "title": "Add Multiple Instances of a Pallet to Your Runtime",
          "anchor": "add-multiple-instances-of-a-pallet-to-your-runtime"
        },
        {
          "depth": 3,
          "title": "Add the Pallet as a Dependency",
          "anchor": "add-the-pallet-as-a-dependency"
        },
        {
          "depth": 3,
          "title": "Enable Standard Library Features",
          "anchor": "enable-standard-library-features"
        },
        {
          "depth": 3,
          "title": "Review the Config Trait",
          "anchor": "review-the-config-trait"
        },
        {
          "depth": 3,
          "title": "Define Pallet Parameters",
          "anchor": "define-pallet-parameters"
        },
        {
          "depth": 3,
          "title": "Import Instance Types",
          "anchor": "import-instance-types"
        },
        {
          "depth": 3,
          "title": "Implement Config Trait for First Instance",
          "anchor": "implement-config-trait-for-first-instance"
        },
        {
          "depth": 3,
          "title": "Implement Config Trait for Second Instance",
          "anchor": "implement-config-trait-for-second-instance"
        },
        {
          "depth": 3,
          "title": "Add Instances to Runtime Construct",
          "anchor": "add-instances-to-runtime-construct"
        },
        {
          "depth": 3,
          "title": "Verify the Runtime Compiles",
          "anchor": "verify-the-runtime-compiles"
        },
        {
          "depth": 2,
          "title": "Run Your Chain Locally",
          "anchor": "run-your-chain-locally"
        },
        {
          "depth": 3,
          "title": "Generate a Chain Specification",
          "anchor": "generate-a-chain-specification"
        },
        {
          "depth": 3,
          "title": "Start the Parachain Node",
          "anchor": "start-the-parachain-node"
        },
        {
          "depth": 3,
          "title": "Interact with Both Pallet Instances",
          "anchor": "interact-with-both-pallet-instances"
        },
        {
          "depth": 3,
          "title": "Test Instance Independence",
          "anchor": "test-instance-independence"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2150,
        "token_estimate": 3725,
        "headings": 21,
        "sections_indexed": 21
      },
      "version_hash": "sha256:5017e8f9375f5e7b0e31f22723c4513caa00d90970110207a4a1e3a4bd79bffe",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-add-smart-contract-functionality",
      "title": "Add Smart Contract Functionality",
      "slug": "parachains-customize-runtime-add-smart-contract-functionality",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/add-smart-contract-functionality.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/add-smart-contract-functionality/",
      "preview": "Add smart contract capabilities to your Polkadot SDK-based blockchain. Explore PVM, EVM, and Wasm integration for enhanced chain functionality.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "pallet-revive",
          "anchor": "pallet-revive"
        },
        {
          "depth": 3,
          "title": "Core Components",
          "anchor": "core-components"
        },
        {
          "depth": 3,
          "title": "Supported Languages and Compilers",
          "anchor": "supported-languages-and-compilers"
        },
        {
          "depth": 3,
          "title": "How It Works",
          "anchor": "how-it-works"
        },
        {
          "depth": 3,
          "title": "Key Benefits",
          "anchor": "key-benefits"
        },
        {
          "depth": 3,
          "title": "Implementation Examples",
          "anchor": "implementation-examples"
        },
        {
          "depth": 2,
          "title": "Frontier",
          "anchor": "frontier"
        },
        {
          "depth": 3,
          "title": "Integration Options",
          "anchor": "integration-options"
        },
        {
          "depth": 3,
          "title": "EVM Execution Only",
          "anchor": "evm-execution-only"
        },
        {
          "depth": 3,
          "title": "Full Ethereum Compatibility",
          "anchor": "full-ethereum-compatibility"
        },
        {
          "depth": 3,
          "title": "Key Benefits",
          "anchor": "key-benefits-2"
        },
        {
          "depth": 3,
          "title": "Implementation Examples",
          "anchor": "implementation-examples-2"
        },
        {
          "depth": 2,
          "title": "pallet-contracts (Legacy)",
          "anchor": "pallet-contracts-legacy"
        },
        {
          "depth": 3,
          "title": "Implementation Example",
          "anchor": "implementation-example"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 793,
        "token_estimate": 1528,
        "headings": 16,
        "sections_indexed": 16
      },
      "version_hash": "sha256:09f03530635756edb28212b5c3d9729ae3d64886a1a822e60269b9236fd96788",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime",
      "title": "Overview of FRAME",
      "slug": "parachains-customize-runtime",
      "categories": [
        "Basics",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/",
      "preview": "Learn how Polkadot SDK’s FRAME framework simplifies blockchain development with modular pallets and support libraries for efficient runtime design.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Understanding Your Runtime",
          "anchor": "understanding-your-runtime"
        },
        {
          "depth": 2,
          "title": "Runtime Architecture",
          "anchor": "runtime-architecture"
        },
        {
          "depth": 2,
          "title": "Building Blocks: Pallets",
          "anchor": "building-blocks-pallets"
        },
        {
          "depth": 3,
          "title": "Pre-Built Pallets vs. Custom Pallets",
          "anchor": "pre-built-pallets-vs-custom-pallets"
        },
        {
          "depth": 3,
          "title": "Pallet Structure",
          "anchor": "pallet-structure"
        },
        {
          "depth": 2,
          "title": "How Runtime Customization Works",
          "anchor": "how-runtime-customization-works"
        },
        {
          "depth": 2,
          "title": "Starting Templates",
          "anchor": "starting-templates"
        },
        {
          "depth": 2,
          "title": "Key Customization Scenarios",
          "anchor": "key-customization-scenarios"
        }
      ],
      "stats": {
        "word_count": 1070,
        "token_estimate": 1745,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:4fdb3ca1ee8b7da2d73f02c7842e34b2a5164f87e7148c5867902e3fc61ad6d3",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-pallet-development-benchmark-pallet",
      "title": "Benchmark Your Pallet",
      "slug": "parachains-customize-runtime-pallet-development-benchmark-pallet",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/benchmark-pallet.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/benchmark-pallet/",
      "preview": "Learn how to benchmark extrinsics in your custom pallet to generate precise weight calculations suitable for production use.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Create the Benchmarking Module",
          "anchor": "create-the-benchmarking-module"
        },
        {
          "depth": 2,
          "title": "Define the Weight Trait",
          "anchor": "define-the-weight-trait"
        },
        {
          "depth": 2,
          "title": "Add WeightInfo to Config",
          "anchor": "add-weightinfo-to-config"
        },
        {
          "depth": 2,
          "title": "Update Extrinsic Weight Annotations",
          "anchor": "update-extrinsic-weight-annotations"
        },
        {
          "depth": 2,
          "title": "Include the Benchmarking Module",
          "anchor": "include-the-benchmarking-module"
        },
        {
          "depth": 2,
          "title": "Configure Pallet Dependencies",
          "anchor": "configure-pallet-dependencies"
        },
        {
          "depth": 2,
          "title": "Update Mock Runtime",
          "anchor": "update-mock-runtime"
        },
        {
          "depth": 2,
          "title": "Configure Runtime Benchmarking",
          "anchor": "configure-runtime-benchmarking"
        },
        {
          "depth": 2,
          "title": "Test Benchmark Compilation",
          "anchor": "test-benchmark-compilation"
        },
        {
          "depth": 2,
          "title": "Build the Runtime with Benchmarks",
          "anchor": "build-the-runtime-with-benchmarks"
        },
        {
          "depth": 2,
          "title": "Install the Benchmarking Tool",
          "anchor": "install-the-benchmarking-tool"
        },
        {
          "depth": 2,
          "title": "Download the Weight Template",
          "anchor": "download-the-weight-template"
        },
        {
          "depth": 2,
          "title": "Execute Benchmarks",
          "anchor": "execute-benchmarks"
        },
        {
          "depth": 2,
          "title": "Use Generated Weights",
          "anchor": "use-generated-weights"
        },
        {
          "depth": 2,
          "title": "Related Resources",
          "anchor": "related-resources"
        }
      ],
      "stats": {
        "word_count": 2398,
        "token_estimate": 4349,
        "headings": 17,
        "sections_indexed": 17
      },
      "version_hash": "sha256:d7b5deae515703be79587c5594accc9c60b85646b0b26d9ac6b0f37c79fd0f02",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-pallet-development-create-a-pallet",
      "title": "Create a Custom Pallet",
      "slug": "parachains-customize-runtime-pallet-development-create-a-pallet",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/create-a-pallet.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/create-a-pallet/",
      "preview": "Learn how to create custom pallets using FRAME, allowing for flexible, modular, and scalable blockchain development. Follow the step-by-step guide.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Core Pallet Components",
          "anchor": "core-pallet-components"
        },
        {
          "depth": 2,
          "title": "Create the Pallet Project",
          "anchor": "create-the-pallet-project"
        },
        {
          "depth": 2,
          "title": "Configure Dependencies",
          "anchor": "configure-dependencies"
        },
        {
          "depth": 2,
          "title": "Initialize the Pallet Structure",
          "anchor": "initialize-the-pallet-structure"
        },
        {
          "depth": 2,
          "title": "Configure the Pallet",
          "anchor": "configure-the-pallet"
        },
        {
          "depth": 2,
          "title": "Define Events",
          "anchor": "define-events"
        },
        {
          "depth": 2,
          "title": "Define Errors",
          "anchor": "define-errors"
        },
        {
          "depth": 2,
          "title": "Add Storage Items",
          "anchor": "add-storage-items"
        },
        {
          "depth": 2,
          "title": "Configure Genesis State",
          "anchor": "configure-genesis-state"
        },
        {
          "depth": 2,
          "title": "Implement Dispatchable Functions",
          "anchor": "implement-dispatchable-functions"
        },
        {
          "depth": 3,
          "title": "Dispatchable Function Details",
          "anchor": "dispatchable-function-details"
        },
        {
          "depth": 2,
          "title": "Verify Pallet Compilation",
          "anchor": "verify-pallet-compilation"
        },
        {
          "depth": 2,
          "title": "Add the Pallet to Your Runtime",
          "anchor": "add-the-pallet-to-your-runtime"
        },
        {
          "depth": 3,
          "title": "Add Runtime Dependency",
          "anchor": "add-runtime-dependency"
        },
        {
          "depth": 3,
          "title": "Implement the Config Trait",
          "anchor": "implement-the-config-trait"
        },
        {
          "depth": 3,
          "title": "Add to Runtime Construct",
          "anchor": "add-to-runtime-construct"
        },
        {
          "depth": 3,
          "title": "Configure Genesis for Your Runtime",
          "anchor": "configure-genesis-for-your-runtime"
        },
        {
          "depth": 3,
          "title": "Verify Runtime Compilation",
          "anchor": "verify-runtime-compilation"
        },
        {
          "depth": 2,
          "title": "Run Your Chain Locally",
          "anchor": "run-your-chain-locally"
        },
        {
          "depth": 3,
          "title": "Generate a Chain Specification",
          "anchor": "generate-a-chain-specification"
        },
        {
          "depth": 3,
          "title": "Start the Parachain Node",
          "anchor": "start-the-parachain-node"
        },
        {
          "depth": 2,
          "title": "Interact with Your Pallet",
          "anchor": "interact-with-your-pallet"
        },
        {
          "depth": 2,
          "title": "Key Takeaways",
          "anchor": "key-takeaways"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3092,
        "token_estimate": 6109,
        "headings": 26,
        "sections_indexed": 26
      },
      "version_hash": "sha256:9019cecc0ffb21f4d088c07194ca85bd451b05839e10d78c986963475189dc8f",
      "last_updated": "2026-06-08T15:30:17+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-pallet-development-mock-runtime",
      "title": "Mock Your Runtime",
      "slug": "parachains-customize-runtime-pallet-development-mock-runtime",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/mock-runtime.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/mock-runtime/",
      "preview": "Learn how to create a mock runtime environment for testing your custom pallets in isolation, enabling comprehensive unit testing before runtime integration.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Understand Mock Runtimes",
          "anchor": "understand-mock-runtimes"
        },
        {
          "depth": 2,
          "title": "Create the Mock Runtime Module",
          "anchor": "create-the-mock-runtime-module"
        },
        {
          "depth": 2,
          "title": "Set Up Basic Mock",
          "anchor": "set-up-basic-mock"
        },
        {
          "depth": 2,
          "title": "Implement Essential Configuration",
          "anchor": "implement-essential-configuration"
        },
        {
          "depth": 2,
          "title": "Implement Your Pallet's Configuration",
          "anchor": "implement-your-pallets-configuration"
        },
        {
          "depth": 2,
          "title": "Configure Genesis Storage",
          "anchor": "configure-genesis-storage"
        },
        {
          "depth": 3,
          "title": "Basic Test Environment",
          "anchor": "basic-test-environment"
        },
        {
          "depth": 3,
          "title": "Custom Genesis Configurations",
          "anchor": "custom-genesis-configurations"
        },
        {
          "depth": 2,
          "title": "Verify Mock Compilation",
          "anchor": "verify-mock-compilation"
        },
        {
          "depth": 2,
          "title": "Key Takeaways",
          "anchor": "key-takeaways"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1355,
        "token_estimate": 2476,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:949905fe46c468a9cf219e64f0e9094b171210c3a749c1beeb781d5b36857987",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-customize-runtime-pallet-development-pallet-testing",
      "title": "Unit Test Pallets",
      "slug": "parachains-customize-runtime-pallet-development-pallet-testing",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/pallet-testing.md",
      "html_url": "https://docs.polkadot.com/parachains/customize-runtime/pallet-development/pallet-testing/",
      "preview": "Learn how to efficiently test pallets in the Polkadot SDK, ensuring the reliability and security of your pallets operations.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Understanding FRAME Testing Tools",
          "anchor": "understanding-frame-testing-tools"
        },
        {
          "depth": 3,
          "title": "Assertion Macros",
          "anchor": "assertion-macros"
        },
        {
          "depth": 3,
          "title": "System Pallet Test Helpers",
          "anchor": "system-pallet-test-helpers"
        },
        {
          "depth": 3,
          "title": "Origin Types",
          "anchor": "origin-types"
        },
        {
          "depth": 2,
          "title": "Create the Tests Module",
          "anchor": "create-the-tests-module"
        },
        {
          "depth": 2,
          "title": "Set Up the Test Module",
          "anchor": "set-up-the-test-module"
        },
        {
          "depth": 2,
          "title": "Write Your First Test",
          "anchor": "write-your-first-test"
        },
        {
          "depth": 3,
          "title": "Test Basic Increment",
          "anchor": "test-basic-increment"
        },
        {
          "depth": 2,
          "title": "Test Error Conditions",
          "anchor": "test-error-conditions"
        },
        {
          "depth": 3,
          "title": "Test Overflow Protection",
          "anchor": "test-overflow-protection"
        },
        {
          "depth": 3,
          "title": "Test Underflow Protection",
          "anchor": "test-underflow-protection"
        },
        {
          "depth": 2,
          "title": "Test Access Control",
          "anchor": "test-access-control"
        },
        {
          "depth": 3,
          "title": "Test Root-Only Access",
          "anchor": "test-root-only-access"
        },
        {
          "depth": 2,
          "title": "Test Event Emission",
          "anchor": "test-event-emission"
        },
        {
          "depth": 3,
          "title": "Test Event Data",
          "anchor": "test-event-data"
        },
        {
          "depth": 2,
          "title": "Test Genesis Configuration",
          "anchor": "test-genesis-configuration"
        },
        {
          "depth": 3,
          "title": "Test Genesis Setup",
          "anchor": "test-genesis-setup"
        },
        {
          "depth": 2,
          "title": "Run All Tests",
          "anchor": "run-all-tests"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1737,
        "token_estimate": 3623,
        "headings": 21,
        "sections_indexed": 21
      },
      "version_hash": "sha256:c68e6bce0611769b0432ba83dda21260e299d2d90c0b28dc813ebaf0058a1a42",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-get-started",
      "title": "Get Started with Parachain Development",
      "slug": "parachains-get-started",
      "categories": [
        "Basics",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/get-started.md",
      "html_url": "https://docs.polkadot.com/parachains/get-started/",
      "preview": "Practical examples and tutorials for building and deploying Polkadot parachains, covering everything from launch to customization and cross-chain messaging.",
      "outline": [
        {
          "depth": 2,
          "title": "Quick Start Guides",
          "anchor": "quick-start-guides"
        },
        {
          "depth": 2,
          "title": "Launch a Simple Parachain",
          "anchor": "launch-a-simple-parachain"
        },
        {
          "depth": 2,
          "title": "Customize Your Runtime",
          "anchor": "customize-your-runtime"
        },
        {
          "depth": 3,
          "title": "Pallet Development",
          "anchor": "pallet-development"
        },
        {
          "depth": 2,
          "title": "Testing",
          "anchor": "testing"
        },
        {
          "depth": 2,
          "title": "Runtime Upgrades and Maintenance",
          "anchor": "runtime-upgrades-and-maintenance"
        },
        {
          "depth": 2,
          "title": "Interoperability",
          "anchor": "interoperability"
        },
        {
          "depth": 2,
          "title": "Integrations",
          "anchor": "integrations"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 238,
        "token_estimate": 557,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:33ba15486ecca4f2953ffecd2080f2fed3e8b3f42fa015ae2cef4a227bb84606",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-install-polkadot-sdk",
      "title": "Install Polkadot SDK",
      "slug": "parachains-install-polkadot-sdk",
      "categories": [
        "Basics",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/install-polkadot-sdk.md",
      "html_url": "https://docs.polkadot.com/parachains/install-polkadot-sdk/",
      "preview": "Install all required Polkadot SDK dependencies, set up the SDK itself, and verify that it runs correctly on your machine.",
      "outline": [
        {
          "depth": 2,
          "title": "Install Dependencies: macOS",
          "anchor": "install-dependencies-macos"
        },
        {
          "depth": 3,
          "title": "Before You Begin {: #before-you-begin-mac-os }",
          "anchor": "before-you-begin-before-you-begin-mac-os"
        },
        {
          "depth": 3,
          "title": "Install Command Line Tools",
          "anchor": "install-command-line-tools"
        },
        {
          "depth": 3,
          "title": "Install Homebrew",
          "anchor": "install-homebrew"
        },
        {
          "depth": 3,
          "title": "Support for Apple Silicon",
          "anchor": "support-for-apple-silicon"
        },
        {
          "depth": 3,
          "title": "Install Required Packages and Rust {: #install-required-packages-and-rust-mac-os }",
          "anchor": "install-required-packages-and-rust-install-required-packages-and-rust-mac-os"
        },
        {
          "depth": 2,
          "title": "Install Dependencies: Linux",
          "anchor": "install-dependencies-linux"
        },
        {
          "depth": 3,
          "title": "Before You Begin {: #before-you-begin-linux }",
          "anchor": "before-you-begin-before-you-begin-linux"
        },
        {
          "depth": 3,
          "title": "Install Required Packages and Rust {: #install-required-packages-and-rust-linux }",
          "anchor": "install-required-packages-and-rust-install-required-packages-and-rust-linux"
        },
        {
          "depth": 2,
          "title": "Install Dependencies: Windows (WSL)",
          "anchor": "install-dependencies-windows-wsl"
        },
        {
          "depth": 3,
          "title": "Before You Begin {: #before-you-begin-windows-wls }",
          "anchor": "before-you-begin-before-you-begin-windows-wls"
        },
        {
          "depth": 3,
          "title": "Set Up Windows Subsystem for Linux",
          "anchor": "set-up-windows-subsystem-for-linux"
        },
        {
          "depth": 3,
          "title": "Install Required Packages and Rust {: #install-required-packages-and-rust-windows-wls }",
          "anchor": "install-required-packages-and-rust-install-required-packages-and-rust-windows-wls"
        },
        {
          "depth": 2,
          "title": "Build the Polkadot SDK",
          "anchor": "build-the-polkadot-sdk"
        },
        {
          "depth": 3,
          "title": "Clone the Polkadot SDK",
          "anchor": "clone-the-polkadot-sdk"
        },
        {
          "depth": 3,
          "title": "Compile the Polkadot SDK",
          "anchor": "compile-the-polkadot-sdk"
        },
        {
          "depth": 3,
          "title": "Verify the Build",
          "anchor": "verify-the-build"
        },
        {
          "depth": 2,
          "title": "Optional: Run the Kitchensink Node",
          "anchor": "optional-run-the-kitchensink-node"
        },
        {
          "depth": 3,
          "title": "Run the Kitchensink Node in Development Mode",
          "anchor": "run-the-kitchensink-node-in-development-mode"
        },
        {
          "depth": 3,
          "title": "Interact with the Kitchensink Node",
          "anchor": "interact-with-the-kitchensink-node"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3234,
        "token_estimate": 5120,
        "headings": 21,
        "sections_indexed": 21
      },
      "version_hash": "sha256:71bd962e39b3eb74d9a69e19ba5ac881bf43703eba51286cffc8ad29940ebb19",
      "last_updated": "2026-05-19T14:51:06+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-integrations-indexers",
      "title": "Indexers",
      "slug": "parachains-integrations-indexers",
      "categories": [
        "Tooling",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/integrations/indexers.md",
      "html_url": "https://docs.polkadot.com/parachains/integrations/indexers/",
      "preview": "Discover blockchain indexers. Enhance data access, enable fast and complex queries, and optimize blockchain data for seamless app performance.",
      "outline": [
        {
          "depth": 2,
          "title": "The Challenge of Blockchain Data Access",
          "anchor": "the-challenge-of-blockchain-data-access"
        },
        {
          "depth": 2,
          "title": "What is a Blockchain Indexer?",
          "anchor": "what-is-a-blockchain-indexer"
        },
        {
          "depth": 2,
          "title": "Indexer Implementations",
          "anchor": "indexer-implementations"
        }
      ],
      "stats": {
        "word_count": 295,
        "token_estimate": 410,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:5ab02e49d6c91e066fd55f466b965e8cdcf7bc3f41cf9d89058e26b6cdc9a2ec",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-integrations-oracles",
      "title": "Oracles",
      "slug": "parachains-integrations-oracles",
      "categories": [
        "Tooling",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/integrations/oracles.md",
      "html_url": "https://docs.polkadot.com/parachains/integrations/oracles/",
      "preview": "Learn about blockchain oracles, the essential bridges connecting blockchains with real-world data for decentralized applications in the Polkadot ecosystem.",
      "outline": [
        {
          "depth": 2,
          "title": "What is a Blockchain Oracle?",
          "anchor": "what-is-a-blockchain-oracle"
        },
        {
          "depth": 2,
          "title": "Oracle Implementations",
          "anchor": "oracle-implementations"
        }
      ],
      "stats": {
        "word_count": 254,
        "token_estimate": 359,
        "headings": 2,
        "sections_indexed": 2
      },
      "version_hash": "sha256:8b37634c01cf9fb99694bf48c31e9d68f6a6b3185728a881b3500db952c43f1d",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-integrations-wallets",
      "title": "Wallets",
      "slug": "parachains-integrations-wallets",
      "categories": [
        "Tooling",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/integrations/wallets.md",
      "html_url": "https://docs.polkadot.com/parachains/integrations/wallets/",
      "preview": "Explore blockchain wallets. Securely manage digital assets with hot wallets for online access or cold wallets for offline, enhanced security.",
      "outline": [
        {
          "depth": 2,
          "title": "What is a Blockchain Wallet?",
          "anchor": "what-is-a-blockchain-wallet"
        },
        {
          "depth": 2,
          "title": "Hot Wallets",
          "anchor": "hot-wallets"
        },
        {
          "depth": 2,
          "title": "Cold Wallets",
          "anchor": "cold-wallets"
        },
        {
          "depth": 2,
          "title": "Wallet Tools",
          "anchor": "wallet-tools"
        }
      ],
      "stats": {
        "word_count": 477,
        "token_estimate": 752,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:fa8e90a0b91f77c5a8bb13e4398481dc5d37a9ca5ffd5fbee1b1f510a7ba0c2c",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-interoperability-channels-between-parachains",
      "title": "Opening HRMP Channels Between Parachains",
      "slug": "parachains-interoperability-channels-between-parachains",
      "categories": [
        "Parachains",
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/interoperability/channels-between-parachains.md",
      "html_url": "https://docs.polkadot.com/parachains/interoperability/channels-between-parachains/",
      "preview": "Learn how to open HRMP channels between parachains on Polkadot. Discover the step-by-step process for establishing uni- and bidirectional communication.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Procedure to Initiate an HRMP Channel",
          "anchor": "procedure-to-initiate-an-hrmp-channel"
        },
        {
          "depth": 3,
          "title": "Fund Sender Sovereign Account",
          "anchor": "fund-sender-sovereign-account"
        },
        {
          "depth": 3,
          "title": "Create Channel Opening Extrinsic",
          "anchor": "create-channel-opening-extrinsic"
        },
        {
          "depth": 3,
          "title": "Craft and Submit the XCM Message from the Sender",
          "anchor": "craft-and-submit-the-xcm-message-from-the-sender"
        },
        {
          "depth": 2,
          "title": "Procedure to Accept an HRMP Channel",
          "anchor": "procedure-to-accept-an-hrmp-channel"
        },
        {
          "depth": 3,
          "title": "Fund Receiver Sovereign Account",
          "anchor": "fund-receiver-sovereign-account"
        },
        {
          "depth": 3,
          "title": "Create Channel Accepting Extrinsic",
          "anchor": "create-channel-accepting-extrinsic"
        },
        {
          "depth": 3,
          "title": "Craft and Submit the XCM Message from the Receiver",
          "anchor": "craft-and-submit-the-xcm-message-from-the-receiver"
        }
      ],
      "stats": {
        "word_count": 1541,
        "token_estimate": 2270,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:32989120a54a44d5ab060044da0cde5e2911b7f85c34a201a6b6b65fb71f01aa",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-interoperability-channels-with-system-parachains",
      "title": "Opening HRMP Channels with System Parachains",
      "slug": "parachains-interoperability-channels-with-system-parachains",
      "categories": [
        "Parachains",
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/interoperability/channels-with-system-parachains.md",
      "html_url": "https://docs.polkadot.com/parachains/interoperability/channels-with-system-parachains/",
      "preview": "Learn how to open HRMP channels with Polkadot system parachains. Discover the process for establishing bi-directional communication using a single XCM message.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Procedure to Establish an HRMP Channel",
          "anchor": "procedure-to-establish-an-hrmp-channel"
        },
        {
          "depth": 3,
          "title": "Fund Parachain Sovereign Account",
          "anchor": "fund-parachain-sovereign-account"
        },
        {
          "depth": 3,
          "title": "Create Establish Channel with System Extrinsic",
          "anchor": "create-establish-channel-with-system-extrinsic"
        },
        {
          "depth": 3,
          "title": "Craft and Submit the XCM Message",
          "anchor": "craft-and-submit-the-xcm-message"
        }
      ],
      "stats": {
        "word_count": 879,
        "token_estimate": 1405,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:cc4c28ee31281449b9838b08746914b0984f98617c17b8441417b618feac579f",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-interoperability-get-started",
      "title": "Get Started with XCM",
      "slug": "parachains-interoperability-get-started",
      "categories": [
        "Basics",
        "Interoperability",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/interoperability/get-started.md",
      "html_url": "https://docs.polkadot.com/parachains/interoperability/get-started/",
      "preview": "Unlock blockchain interoperability with XCM — Polkadot's Cross-Consensus Messaging format for cross-chain interactions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Messaging Format",
          "anchor": "messaging-format"
        },
        {
          "depth": 2,
          "title": "The Four Principles of XCM",
          "anchor": "the-four-principles-of-xcm"
        },
        {
          "depth": 2,
          "title": "The XCM Tech Stack",
          "anchor": "the-xcm-tech-stack"
        },
        {
          "depth": 2,
          "title": "Core Functionalities of XCM",
          "anchor": "core-functionalities-of-xcm"
        },
        {
          "depth": 2,
          "title": "XCM Example",
          "anchor": "xcm-example"
        },
        {
          "depth": 2,
          "title": "Overview",
          "anchor": "overview"
        }
      ],
      "stats": {
        "word_count": 958,
        "token_estimate": 1453,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:5d1dcb77cc1d250220feb2c783695093359b47f4446ca1d25bd6f377df391559",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-launch-a-parachain-deploy-to-polkadot",
      "title": "Deploy on Polkadot",
      "slug": "parachains-launch-a-parachain-deploy-to-polkadot",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/launch-a-parachain/deploy-to-polkadot.md",
      "html_url": "https://docs.polkadot.com/parachains/launch-a-parachain/deploy-to-polkadot/",
      "preview": "This guide walks you through the journey of deploying your Polkadot SDK parachain on the Polkadot TestNet, detailing each step to a successful deployment.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Get Started with an Account and Tokens",
          "anchor": "get-started-with-an-account-and-tokens"
        },
        {
          "depth": 2,
          "title": "Reserve a Parachain Identifier",
          "anchor": "reserve-a-parachain-identifier"
        },
        {
          "depth": 2,
          "title": "Generate Custom Keys for Your Collators",
          "anchor": "generate-custom-keys-for-your-collators"
        },
        {
          "depth": 2,
          "title": "Generate the Chain Specification",
          "anchor": "generate-the-chain-specification"
        },
        {
          "depth": 2,
          "title": "Export Required Files",
          "anchor": "export-required-files"
        },
        {
          "depth": 2,
          "title": "Register a Parathread",
          "anchor": "register-a-parathread"
        },
        {
          "depth": 2,
          "title": "Start the Collator Node",
          "anchor": "start-the-collator-node"
        },
        {
          "depth": 2,
          "title": "Producing Blocks",
          "anchor": "producing-blocks"
        }
      ],
      "stats": {
        "word_count": 2339,
        "token_estimate": 4053,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:e1a9ddc491a7ba9834dea5d157065fa948cb4ca3445e0f975fb3f3486109a68c",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-launch-a-parachain-obtain-coretime",
      "title": "Obtain Coretime",
      "slug": "parachains-launch-a-parachain-obtain-coretime",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/launch-a-parachain/obtain-coretime.md",
      "html_url": "https://docs.polkadot.com/parachains/launch-a-parachain/obtain-coretime/",
      "preview": "Learn how to obtain coretime for block production with this guide, covering both on-demand and bulk options for smooth operations.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Order On-Demand Coretime",
          "anchor": "order-on-demand-coretime"
        },
        {
          "depth": 3,
          "title": "On-Demand Extrinsics",
          "anchor": "on-demand-extrinsics"
        },
        {
          "depth": 3,
          "title": "Place an On-Demand Order",
          "anchor": "place-an-on-demand-order"
        },
        {
          "depth": 2,
          "title": "Purchase Bulk Coretime",
          "anchor": "purchase-bulk-coretime"
        },
        {
          "depth": 3,
          "title": "Connect Your Wallet to RegionX",
          "anchor": "connect-your-wallet-to-regionx"
        },
        {
          "depth": 3,
          "title": "Obtain Coretime Chain Funds",
          "anchor": "obtain-coretime-chain-funds"
        },
        {
          "depth": 3,
          "title": "Purchase a Core",
          "anchor": "purchase-a-core"
        },
        {
          "depth": 3,
          "title": "Verify Your Purchase",
          "anchor": "verify-your-purchase"
        },
        {
          "depth": 3,
          "title": "Assign Your Parachain to the Core",
          "anchor": "assign-your-parachain-to-the-core"
        },
        {
          "depth": 2,
          "title": "Next Steps",
          "anchor": "next-steps"
        }
      ],
      "stats": {
        "word_count": 1315,
        "token_estimate": 2016,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:3f6614678bd184c13a936508daa300a50e669927faceacfa64f6a2b4f33c4df9",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-launch-a-parachain-set-up-the-parachain-template",
      "title": "Set Up the Polkadot SDK Parachain Template",
      "slug": "parachains-launch-a-parachain-set-up-the-parachain-template",
      "categories": [
        "Basics",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/launch-a-parachain/set-up-the-parachain-template.md",
      "html_url": "https://docs.polkadot.com/parachains/launch-a-parachain/set-up-the-parachain-template/",
      "preview": "Learn how to set up and run the Polkadot SDK Parachain Template locally, creating a ready-to-customize foundation for your parachain.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Polkadot SDK Utility Tools",
          "anchor": "polkadot-sdk-utility-tools"
        },
        {
          "depth": 2,
          "title": "Clone the Template",
          "anchor": "clone-the-template"
        },
        {
          "depth": 2,
          "title": "Explore the Project Structure",
          "anchor": "explore-the-project-structure"
        },
        {
          "depth": 2,
          "title": "Compile the Runtime",
          "anchor": "compile-the-runtime"
        },
        {
          "depth": 2,
          "title": "Verify the Build",
          "anchor": "verify-the-build"
        },
        {
          "depth": 2,
          "title": "Run the Node Locally",
          "anchor": "run-the-node-locally"
        },
        {
          "depth": 2,
          "title": "Interact with the Node",
          "anchor": "interact-with-the-node"
        },
        {
          "depth": 2,
          "title": "Stop the Node",
          "anchor": "stop-the-node"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1613,
        "token_estimate": 2571,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:9d7d1ff02d06fea92df66e2de5a860c6fa2535697d25c8992bc3b70b04886484",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-runtime-maintenance-coretime-renewal",
      "title": "Coretime Renewal",
      "slug": "parachains-runtime-maintenance-coretime-renewal",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/runtime-maintenance/coretime-renewal.md",
      "html_url": "https://docs.polkadot.com/parachains/runtime-maintenance/coretime-renewal/",
      "preview": "Learn how to renew coretime manually or automatically to ensure uninterrupted parachain operation with predictable pricing and minimal risk.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Bulk Sale Phases",
          "anchor": "bulk-sale-phases"
        },
        {
          "depth": 2,
          "title": "Renewal Timing",
          "anchor": "renewal-timing"
        },
        {
          "depth": 2,
          "title": "Manual Renewal",
          "anchor": "manual-renewal"
        },
        {
          "depth": 2,
          "title": "Auto-Renewal",
          "anchor": "auto-renewal"
        },
        {
          "depth": 3,
          "title": "Set Up an HRMP Channel",
          "anchor": "set-up-an-hrmp-channel"
        },
        {
          "depth": 3,
          "title": "Fund Sovereign Account",
          "anchor": "fund-sovereign-account"
        },
        {
          "depth": 3,
          "title": "Auto-Renewal Configuration Extrinsics",
          "anchor": "auto-renewal-configuration-extrinsics"
        },
        {
          "depth": 3,
          "title": "Construct the Enable Auto-Renewal Extrinsic",
          "anchor": "construct-the-enable-auto-renewal-extrinsic"
        },
        {
          "depth": 3,
          "title": "Submit the XCM from Your Parachain",
          "anchor": "submit-the-xcm-from-your-parachain"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2086,
        "token_estimate": 3364,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:d81a99abcf2a0f016a4c8100b02639ab589f38c6c2d0a967caa6a408b5ef78df",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-runtime-maintenance-runtime-upgrades",
      "title": "Runtime Upgrades",
      "slug": "parachains-runtime-maintenance-runtime-upgrades",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/runtime-maintenance/runtime-upgrades.md",
      "html_url": "https://docs.polkadot.com/parachains/runtime-maintenance/runtime-upgrades/",
      "preview": "Learn how to safely perform runtime upgrades for your Polkadot SDK-based blockchain, including step-by-step instructions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Start Your Chain",
          "anchor": "start-your-chain"
        },
        {
          "depth": 2,
          "title": "Add a New Feature",
          "anchor": "add-a-new-feature"
        },
        {
          "depth": 2,
          "title": "Bump the Runtime Version",
          "anchor": "bump-the-runtime-version"
        },
        {
          "depth": 2,
          "title": "Build the New Runtime",
          "anchor": "build-the-new-runtime"
        },
        {
          "depth": 2,
          "title": "Submit the Runtime Upgrade",
          "anchor": "submit-the-runtime-upgrade"
        },
        {
          "depth": 2,
          "title": "Verify the Upgrade",
          "anchor": "verify-the-upgrade"
        },
        {
          "depth": 3,
          "title": "Check Runtime Version",
          "anchor": "check-runtime-version"
        },
        {
          "depth": 3,
          "title": "Test New Functionality",
          "anchor": "test-new-functionality"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1332,
        "token_estimate": 2297,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:8e0c8ad8609399eb36ed296b6bf0c256c3c76d802b21f31ced6f235cffeb477e",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-runtime-maintenance-storage-migrations",
      "title": "Storage Migrations",
      "slug": "parachains-runtime-maintenance-storage-migrations",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/runtime-maintenance/storage-migrations.md",
      "html_url": "https://docs.polkadot.com/parachains/runtime-maintenance/storage-migrations/",
      "preview": "Ensure smooth runtime upgrades with storage migrations, update data formats, and prevent errors. Learn when and how to implement migrations efficiently.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Storage Migration Scenarios",
          "anchor": "storage-migration-scenarios"
        },
        {
          "depth": 2,
          "title": "Implement Storage Migrations",
          "anchor": "implement-storage-migrations"
        },
        {
          "depth": 3,
          "title": "Core Migration Function",
          "anchor": "core-migration-function"
        },
        {
          "depth": 3,
          "title": "Migration Testing Hooks",
          "anchor": "migration-testing-hooks"
        },
        {
          "depth": 3,
          "title": "Migration Structure",
          "anchor": "migration-structure"
        },
        {
          "depth": 3,
          "title": "Migration Organization",
          "anchor": "migration-organization"
        },
        {
          "depth": 3,
          "title": "Scheduling Migrations",
          "anchor": "scheduling-migrations"
        },
        {
          "depth": 2,
          "title": "Single-Block Migrations",
          "anchor": "single-block-migrations"
        },
        {
          "depth": 2,
          "title": "Multi Block Migrations",
          "anchor": "multi-block-migrations"
        }
      ],
      "stats": {
        "word_count": 2257,
        "token_estimate": 3789,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:4f62dc612f8bed0464b9bfe2c2fb542b550b4f8cbca3b1d825cb337d73171cfb",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-runtime-maintenance-unlock-parachains",
      "title": "Unlock a Parachain",
      "slug": "parachains-runtime-maintenance-unlock-parachains",
      "categories": [
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/runtime-maintenance/unlock-parachains.md",
      "html_url": "https://docs.polkadot.com/parachains/runtime-maintenance/unlock-parachains/",
      "preview": "Learn how to unlock your parachain. This step-by-step guide covers verifying lock status, preparing calls, and executing the unlock process.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Check If the Parachain Is Locked",
          "anchor": "check-if-the-parachain-is-locked"
        },
        {
          "depth": 2,
          "title": "How to Unlock a Parachain",
          "anchor": "how-to-unlock-a-parachain"
        },
        {
          "depth": 3,
          "title": "Prepare the Unlock Call",
          "anchor": "prepare-the-unlock-call"
        },
        {
          "depth": 3,
          "title": "Fund the Sovereign Account",
          "anchor": "fund-the-sovereign-account"
        },
        {
          "depth": 3,
          "title": "Craft and Submit the XCM",
          "anchor": "craft-and-submit-the-xcm"
        }
      ],
      "stats": {
        "word_count": 1258,
        "token_estimate": 1978,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:a764ed148d92454d67de0374173d0bcd9880c758399882fb9e300b08662f12c5",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-testing-fork-a-parachain",
      "title": "Fork a Parachain Using Chopsticks",
      "slug": "parachains-testing-fork-a-parachain",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/testing/fork-a-parachain.md",
      "html_url": "https://docs.polkadot.com/parachains/testing/fork-a-parachain/",
      "preview": "Simplify Polkadot SDK development with Chopsticks. Learn essential features, how to install Chopsticks, and how to configure local blockchain forks.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install Chopsticks",
          "anchor": "install-chopsticks"
        },
        {
          "depth": 3,
          "title": "Global Installation",
          "anchor": "global-installation"
        },
        {
          "depth": 3,
          "title": "Local Installation",
          "anchor": "local-installation"
        },
        {
          "depth": 2,
          "title": "Configure Chopsticks",
          "anchor": "configure-chopsticks"
        },
        {
          "depth": 3,
          "title": "Configuration File",
          "anchor": "configuration-file"
        },
        {
          "depth": 3,
          "title": "CLI Flags",
          "anchor": "cli-flags"
        },
        {
          "depth": 2,
          "title": "WebSocket Commands",
          "anchor": "websocket-commands"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1224,
        "token_estimate": 2366,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:53a54c066ac94d30eff305d8e314546101b7ac464ded3be42f3461551ac7cfda",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "parachains-testing-run-a-parachain-network",
      "title": "Run a Parachain Network",
      "slug": "parachains-testing-run-a-parachain-network",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/parachains/testing/run-a-parachain-network.md",
      "html_url": "https://docs.polkadot.com/parachains/testing/run-a-parachain-network/",
      "preview": "Learn how to deploy a local parachain test network using Zombienet, including building a custom collator and verifying block production.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up the Parachain Template",
          "anchor": "set-up-the-parachain-template"
        },
        {
          "depth": 2,
          "title": "Download Relay Chain Binaries",
          "anchor": "download-relay-chain-binaries"
        },
        {
          "depth": 2,
          "title": "Generate a Paseo Local Chain Spec",
          "anchor": "generate-a-paseo-local-chain-spec"
        },
        {
          "depth": 2,
          "title": "Configure the Network",
          "anchor": "configure-the-network"
        },
        {
          "depth": 2,
          "title": "Spawn the Network",
          "anchor": "spawn-the-network"
        },
        {
          "depth": 2,
          "title": "Verify the Network",
          "anchor": "verify-the-network"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 973,
        "token_estimate": 1747,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:3fb0d6fba118a463b7f38d6e84153db1af6776c1860e2e3e021567ffffb451f1",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-app-chat",
      "title": "Chat in the Polkadot App",
      "slug": "reference-apps-hosts-polkadot-app-chat",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/chat.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/chat/",
      "preview": "Reference for Polkadot App Chat, room and bot registration, typed messages, custom rendering, and how it composes Statement Store with Bulletin Chain.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Room and Bot Registration",
          "anchor": "room-and-bot-registration"
        },
        {
          "depth": 2,
          "title": "Message Types",
          "anchor": "message-types"
        },
        {
          "depth": 2,
          "title": "Custom Message Rendering",
          "anchor": "custom-message-rendering"
        },
        {
          "depth": 2,
          "title": "Message Queueing",
          "anchor": "message-queueing"
        },
        {
          "depth": 2,
          "title": "Composition: Statement Store + Bulletin Chain",
          "anchor": "composition-statement-store-bulletin-chain"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 672,
        "token_estimate": 970,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:dff82f33e884adb91d46c6819c77d9ace50dd5e8df77ece632e37cf8efc01ebd",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-app-coinage",
      "title": "Coinage in the Polkadot App",
      "slug": "reference-apps-hosts-polkadot-app-coinage",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/coinage.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/coinage/",
      "preview": "Reference for Coinage, the Polkadot App's peer-to-peer payment flow with the privacy and personhood-gating properties of the pallet-coinage primitive.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Model",
          "anchor": "conceptual-model"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 372,
        "token_estimate": 545,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:2729d544753481f5f976a7a803d369d7ff0334efda22b41b4972aa53f595cba1",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-app",
      "title": "Polkadot App Reference",
      "slug": "reference-apps-hosts-polkadot-app",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/",
      "preview": "Reference for the Polkadot App, the mobile Host in the Triangle that holds the user's signing key, runs PoP, and approves every Product transaction.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How It Works",
          "anchor": "how-it-works"
        },
        {
          "depth": 2,
          "title": "Where the App Fits in the SDK Surface",
          "anchor": "where-the-app-fits-in-the-sdk-surface"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 712,
        "token_estimate": 1113,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:6fa48dbbd281e0ce6bc7e77b7be07346c6c551d15ba9c66076b1d8d4595e4dd5",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-app-pocket",
      "title": "Pocket Recipient in the Polkadot App",
      "slug": "reference-apps-hosts-polkadot-app-pocket",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/pocket.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/pocket/",
      "preview": "Reference for how the Polkadot App receives a Pocket transfer initiated from Desktop, including the recipient-side flow for funds or assets.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Model",
          "anchor": "conceptual-model"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 370,
        "token_estimate": 499,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:ba7aec517cbc7b211155090b517ba573ad64531fd9c16555e2b354c7a6d150eb",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-app-pop",
      "title": "Proof of Personhood in the Polkadot App",
      "slug": "reference-apps-hosts-polkadot-app-pop",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/pop.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/pop/",
      "preview": "Reference for how the Polkadot App runs Proof of Personhood, with biometric verification, Ring-VRF aliases on People Chain, and the PoP tier model.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Ring-VRF Aliases",
          "anchor": "ring-vrf-aliases"
        },
        {
          "depth": 2,
          "title": "PoP Tiers: Full vs. Lite",
          "anchor": "pop-tiers-full-vs-lite"
        },
        {
          "depth": 2,
          "title": "What This Unlocks for a Product",
          "anchor": "what-this-unlocks-for-a-product"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 664,
        "token_estimate": 914,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:c2ebc1b107b42d2c815f881b1311c2a60e6504efb73e843cbab28d4624116e55",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-app-sign-in",
      "title": "Sign In with Polkadot",
      "slug": "reference-apps-hosts-polkadot-app-sign-in",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/sign-in.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-app/sign-in/",
      "preview": "Reference for Sign In with Polkadot, the Host-level authentication handshake between Polkadot Desktop or Polkadot Web and the paired Polkadot App.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How the Handshake Works",
          "anchor": "how-the-handshake-works"
        },
        {
          "depth": 2,
          "title": "Where Sign In Differs from Per-Transaction Signing",
          "anchor": "where-sign-in-differs-from-per-transaction-signing"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 597,
        "token_estimate": 834,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:89a79e315bf21447eb75c11eabf453cacb70d0deb6e792bab6e89e6a0be37e4c",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-desktop",
      "title": "Polkadot Desktop Reference",
      "slug": "reference-apps-hosts-polkadot-desktop",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/",
      "preview": "Reference for Polkadot Desktop, the desktop Host that loads Products by .dot name, mediates signing to the App, and enforces sandbox permissions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How It Works",
          "anchor": "how-it-works"
        },
        {
          "depth": 2,
          "title": "Where Desktop Fits in the SDK Surface",
          "anchor": "where-desktop-fits-in-the-sdk-surface"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 671,
        "token_estimate": 1090,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:f5317dea45acadb53d1873cc8a99dc26e22bc500ec6f3c59da0a38ae1ad2fb26",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-desktop-permissions",
      "title": "Permissions in Polkadot Desktop",
      "slug": "reference-apps-hosts-polkadot-desktop-permissions",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/permissions.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/permissions/",
      "preview": "Reference for how Polkadot Desktop enforces sandbox permissions a Product declares, including capability types, manifest declaration, and denial UX.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Capability Types",
          "anchor": "capability-types"
        },
        {
          "depth": 2,
          "title": "Declaring Permissions",
          "anchor": "declaring-permissions"
        },
        {
          "depth": 2,
          "title": "Denial UX",
          "anchor": "denial-ux"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 518,
        "token_estimate": 709,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:652be9fbeaef2c89c9198256df1af0657dd47d61e10039e7b90d2b87f0fc2e0d",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-desktop-pocket",
      "title": "Pocket Send Flow in Polkadot Desktop",
      "slug": "reference-apps-hosts-polkadot-desktop-pocket",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/pocket.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/pocket/",
      "preview": "Reference for Pocket, Polkadot Desktop's peer-to-peer send flow with personhood-aware addressing, and how it pairs with the App-side recipient view.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Model",
          "anchor": "conceptual-model"
        },
        {
          "depth": 2,
          "title": "What the User Sees",
          "anchor": "what-the-user-sees"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 520,
        "token_estimate": 707,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:c98f9c618ea366d3e0b055134c764fef545a951e711e8b45bac2534affa2e90c",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-desktop-preimage",
      "title": "Preimage Submission via Polkadot Desktop",
      "slug": "reference-apps-hosts-polkadot-desktop-preimage",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/preimage.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/preimage/",
      "preview": "Reference for how Polkadot Desktop mediates preimage submission for Products, and the Statement vs Preimage distinction for off-chain content.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What the Preimage Surface Does",
          "anchor": "what-the-preimage-surface-does"
        },
        {
          "depth": 2,
          "title": "Statement vs Preimage",
          "anchor": "statement-vs-preimage"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 591,
        "token_estimate": 1049,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:9a2412ca04cad191ffbcf0cc32747b60ea9ca77e80ebb09f322f27191f41f76e",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-desktop-signing",
      "title": "Signing in Polkadot Desktop",
      "slug": "reference-apps-hosts-polkadot-desktop-signing",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/signing.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/signing/",
      "preview": "Reference for how Polkadot Desktop mediates transaction signing, including the App signer, ChainSubmit permission, approval, timeout, and rejection.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Three-Actor Model",
          "anchor": "the-three-actor-model"
        },
        {
          "depth": 2,
          "title": "`ChainSubmit`: Ability to Request ≠ Auto-Sign",
          "anchor": "chainsubmit-ability-to-request-auto-sign"
        },
        {
          "depth": 2,
          "title": "What the User Sees",
          "anchor": "what-the-user-sees"
        },
        {
          "depth": 2,
          "title": "Asynchronous Approval and Timeouts",
          "anchor": "asynchronous-approval-and-timeouts"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 811,
        "token_estimate": 1145,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:27783b70091c1c656d336c54bad17aec3b38462d13e42522074c6852e2aa3459",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-desktop-statement-store",
      "title": "Statement Store via Polkadot Desktop's Host API",
      "slug": "reference-apps-hosts-polkadot-desktop-statement-store",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/statement-store.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-desktop/statement-store/",
      "preview": "Reference for how Polkadot Desktop mediates Statement Store access, including proof routing, account context, and Bulletin Chain composition pattern.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What Desktop Adds",
          "anchor": "what-desktop-adds"
        },
        {
          "depth": 2,
          "title": "What Desktop Does Not Do",
          "anchor": "what-desktop-does-not-do"
        },
        {
          "depth": 2,
          "title": "Composition with the Bulletin Chain",
          "anchor": "composition-with-the-bulletin-chain"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 625,
        "token_estimate": 897,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:d867d834da6a0f437f3d76edbab5098efb8f9db5177230b4f288bd3dfa0efd6e",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-web-host-api",
      "title": "Host API on Polkadot Web",
      "slug": "reference-apps-hosts-polkadot-web-host-api",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/host-api.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/host-api/",
      "preview": "Reference for the TrUAPI Host API surface exposed by Polkadot Web, including shared Desktop behavior and where browser-context behavior differs.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What Is the Same",
          "anchor": "what-is-the-same"
        },
        {
          "depth": 2,
          "title": "Where Browser-Context Differs",
          "anchor": "where-browser-context-differs"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 486,
        "token_estimate": 671,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:c19a0a16b340e4dc3091e64cac695d0e09e366694f5d91bf753883f65f7648f0",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-web",
      "title": "Polkadot Web Reference",
      "slug": "reference-apps-hosts-polkadot-web",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/",
      "preview": "Reference for Polkadot Web (dot.li), the browser-based Host that loads Polkadot Products by their .dot name without requiring a desktop installation.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Architecture",
          "anchor": "architecture"
        },
        {
          "depth": 2,
          "title": "Visiting and Shield States",
          "anchor": "visiting-and-shield-states"
        },
        {
          "depth": 2,
          "title": "Host API on Web",
          "anchor": "host-api-on-web"
        },
        {
          "depth": 2,
          "title": "On-Chain `polkadot.com`",
          "anchor": "on-chain-polkadotcom"
        },
        {
          "depth": 2,
          "title": "Upload Journeys",
          "anchor": "upload-journeys"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 706,
        "token_estimate": 1059,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:dc3d064bc144536ccffd21f72a6f7454034302ffc1ae1e054655a40c5934608b",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-web-onchain-polkadot-com",
      "title": "On-Chain polkadot.com",
      "slug": "reference-apps-hosts-polkadot-web-onchain-polkadot-com",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/onchain-polkadot-com.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/onchain-polkadot-com/",
      "preview": "Reference for the on-chain-published presence backing polkadot.com discovery, a Polkadot Product that indexes and points at other Polkadot Products.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Why an On-Chain Discovery Layer",
          "anchor": "why-an-on-chain-discovery-layer"
        },
        {
          "depth": 2,
          "title": "Implications for a Product Developer",
          "anchor": "implications-for-a-product-developer"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 465,
        "token_estimate": 689,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:fe124293494c155acb176bf1dd96fb38d937336df03712dd789d1ac9a958c4aa",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-web-shield-states",
      "title": "Shield States in Polkadot Web",
      "slug": "reference-apps-hosts-polkadot-web-shield-states",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/shield-states.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/shield-states/",
      "preview": "Reference for the shield-state UI in Polkadot Web, including how the Host surfaces the trust posture of the loaded Product and what each state means.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Model",
          "anchor": "conceptual-model"
        },
        {
          "depth": 2,
          "title": "Why Products Should Care",
          "anchor": "why-products-should-care"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 479,
        "token_estimate": 651,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:fdd1c248297c5c50233e9abcd37d1e3a908bfafba42eef93234896c09d042b44",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-hosts-polkadot-web-visiting",
      "title": "Visiting a Product on Polkadot Web",
      "slug": "reference-apps-hosts-polkadot-web-visiting",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/visiting.md",
      "html_url": "https://docs.polkadot.com/reference/apps/hosts/polkadot-web/visiting/",
      "preview": "How Polkadot Web resolves a .dot name and loads the resulting Product inside a browser tab, including the visiting flow that differs from Desktop.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Visiting Flow",
          "anchor": "the-visiting-flow"
        },
        {
          "depth": 2,
          "title": "How This Differs from Polkadot Desktop",
          "anchor": "how-this-differs-from-polkadot-desktop"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 428,
        "token_estimate": 592,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:910df157ce7e22b0f911f9dc0331253ee1a17cd24d7c5d6862ee3f1c34ac8f7a",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps",
      "title": "App Development Reference",
      "slug": "reference-apps",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps.md",
      "html_url": "https://docs.polkadot.com/reference/apps/",
      "preview": "Technical reference for building Polkadot Products, including Hosts, TrUAPI between Host and Product, and the on-chain infrastructure they consume.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Architecture",
          "anchor": "architecture"
        },
        {
          "depth": 2,
          "title": "Hosts",
          "anchor": "hosts"
        },
        {
          "depth": 2,
          "title": "Protocol",
          "anchor": "protocol"
        },
        {
          "depth": 2,
          "title": "Infrastructure",
          "anchor": "infrastructure"
        },
        {
          "depth": 2,
          "title": "Skills",
          "anchor": "skills"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 686,
        "token_estimate": 1106,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:cb7ec11adde7e59027d969792a674fca4173c0845f7a0370aa8a64c38a22e215",
      "last_updated": "2026-06-23T11:32:12+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-bulletin-chain-authorization",
      "title": "Bulletin Chain Authorization",
      "slug": "reference-apps-infrastructure-bulletin-chain-authorization",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/authorization.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/authorization/",
      "preview": "How writes to the Bulletin Chain are gated — the explicit per-account authorization model, the transaction-and-byte quota, and the expiration lifecycle.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What an Authorization Records",
          "anchor": "what-an-authorization-records"
        },
        {
          "depth": 2,
          "title": "What a Write Costs",
          "anchor": "what-a-write-costs"
        },
        {
          "depth": 2,
          "title": "Expiration",
          "anchor": "expiration"
        },
        {
          "depth": 2,
          "title": "Provisioning on TestNet",
          "anchor": "provisioning-on-testnet"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 515,
        "token_estimate": 719,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:5c7d8a96345b775644f4ce1fcb837dc14e4878513404d980b4191d58e61319c6",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-bulletin-chain-chunked-upload",
      "title": "Chunked Uploads on the Bulletin Chain",
      "slug": "reference-apps-infrastructure-bulletin-chain-chunked-upload",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/chunked-upload.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/chunked-upload/",
      "preview": "How payloads larger than the per-transaction byte limit are uploaded as chunks under a DAG-PB manifest, transparently to the Product.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What Happens Internally",
          "anchor": "what-happens-internally"
        },
        {
          "depth": 2,
          "title": "What This Costs",
          "anchor": "what-this-costs"
        },
        {
          "depth": 2,
          "title": "What a Product Sees",
          "anchor": "what-a-product-sees"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 602,
        "token_estimate": 828,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:8d6dcbf5b779522e1d302897f42fa734222bec7019d344bf3ce9ca77b1de1689",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-bulletin-chain-cross-chain",
      "title": "Cross-Chain Bulletin Storage via People Chain",
      "slug": "reference-apps-infrastructure-bulletin-chain-cross-chain",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/cross-chain.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/cross-chain/",
      "preview": "How a Bulletin Chain storage call initiated from the People Chain — where a Product's Proof of Personhood identity lives — reaches the Bulletin Chain via XCM.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Flow",
          "anchor": "the-flow"
        },
        {
          "depth": 2,
          "title": "When to Use the Cross-Chain Path",
          "anchor": "when-to-use-the-cross-chain-path"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 561,
        "token_estimate": 743,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:0d7eacfabdbcfdc085795c62eec9c3e2daf3a21e64271d6e03c2ca8addc8f0b0",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-bulletin-chain",
      "title": "Bulletin Chain Reference",
      "slug": "reference-apps-infrastructure-bulletin-chain",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/",
      "preview": "Reference for the Bulletin Chain — Polkadot's decentralized, content-addressed storage layer for Products, with authorization, chunked uploads, and renewal.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Architecture",
          "anchor": "architecture"
        },
        {
          "depth": 2,
          "title": "When to Use Bulletin",
          "anchor": "when-to-use-bulletin"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 732,
        "token_estimate": 1119,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:619a76b452e4551fd2d02c4274d039f536a3c02cb74a560eba6df253533fa5ad",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-bulletin-chain-renewal",
      "title": "Bulletin Chain Renewal",
      "slug": "reference-apps-infrastructure-bulletin-chain-renewal",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/renewal.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/bulletin-chain/renewal/",
      "preview": "The retention lifecycle for data on the Bulletin Chain — default window, what happens at expiration, and the mechanics of renewing data before it falls off.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Default Retention Window",
          "anchor": "the-default-retention-window"
        },
        {
          "depth": 2,
          "title": "What Renewal Does",
          "anchor": "what-renewal-does"
        },
        {
          "depth": 2,
          "title": "What Renewal Costs",
          "anchor": "what-renewal-costs"
        },
        {
          "depth": 2,
          "title": "What Happens to Forgotten Data",
          "anchor": "what-happens-to-forgotten-data"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 624,
        "token_estimate": 848,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:68d2496727ebc154f3339a8f8e9c54b15700e69b932fbf2396f340b5572ef6c7",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns-architecture",
      "title": "dotNS Architecture",
      "slug": "reference-apps-infrastructure-dotns-architecture",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/architecture.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/architecture/",
      "preview": "The cooperating contracts on Asset Hub that back the dotNS registry — name records, ownership, content references, and PopRules enforcement.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Responsibilities",
          "anchor": "conceptual-responsibilities"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 468,
        "token_estimate": 705,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:291779c6de17299721fb06577d6877aad7c831e39a2e8e8092e33b522d2f29f2",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns-cli",
      "title": "dotNS CLI Reference",
      "slug": "reference-apps-infrastructure-dotns-cli",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/cli.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/cli/",
      "preview": "Reference for @parity/dotns-cli — the command-line tool for managing .dot name registrations, contenthash updates, transfers, and renewals.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Command Families",
          "anchor": "command-families"
        },
        {
          "depth": 2,
          "title": "Installing and Authenticating",
          "anchor": "installing-and-authenticating"
        },
        {
          "depth": 2,
          "title": "Command Surface",
          "anchor": "command-surface"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 575,
        "token_estimate": 1015,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:d5fc04d96cd87d148712e5d3ab1ec171f4093da2fe98d9815d4805d8e70d6b37",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns",
      "title": "dotNS Reference",
      "slug": "reference-apps-infrastructure-dotns",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/",
      "preview": "Reference for dotNS — the .dot name system on Asset Hub that resolves Product names to published bundles, with PopRules pricing and contract architecture.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 528,
        "token_estimate": 879,
        "headings": 2,
        "sections_indexed": 2
      },
      "version_hash": "sha256:e704c571bc642d5f733595adb9cf6b8c0471ef7116ce802b53936a7b706dd5a3",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns-name-mechanism",
      "title": "The .dot Name Mechanism",
      "slug": "reference-apps-infrastructure-dotns-name-mechanism",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/name-mechanism.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/name-mechanism/",
      "preview": "How a .dot name resolves to a Polkadot Product — namehash derivation, contenthash to CID mapping, and the IPFS gateway and Bulletin Chain delivery path.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Layer 1: The Registry on Asset Hub",
          "anchor": "layer-1-the-registry-on-asset-hub"
        },
        {
          "depth": 2,
          "title": "Layer 2: Namehash Derivation",
          "anchor": "layer-2-namehash-derivation"
        },
        {
          "depth": 2,
          "title": "Layer 3: `contenthash` → CID",
          "anchor": "layer-3-contenthash-cid"
        },
        {
          "depth": 2,
          "title": "Layer 4: Delivery (IPFS Gateway or Bulletin Peer-to-Peer)",
          "anchor": "layer-4-delivery-ipfs-gateway-or-bulletin-peer-to-peer"
        },
        {
          "depth": 2,
          "title": "End-to-End Resolution",
          "anchor": "end-to-end-resolution"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 831,
        "token_estimate": 1209,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:1856f935ad027c8b5f1f3a9aedfa8a25121df5c3eb37bbc552cc48faebc9176c",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns-poprules-pricing",
      "title": "PopRules and dotNS Pricing",
      "slug": "reference-apps-infrastructure-dotns-poprules-pricing",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/poprules-pricing.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/poprules-pricing/",
      "preview": "The pricing ladder for .dot name registration — who can register what name length at what cost, organized by PoP tier and suffix shape.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Two PoP Tiers",
          "anchor": "the-two-pop-tiers"
        },
        {
          "depth": 2,
          "title": "The Pricing Ladder",
          "anchor": "the-pricing-ladder"
        },
        {
          "depth": 2,
          "title": "Lite → Full Migration Reservation",
          "anchor": "lite-full-migration-reservation"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 617,
        "token_estimate": 1044,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:5f8b0a9912424db6b770d792c3c349e456c2a3584e6e0c0c67ce05483d30acec",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns-testnet-contracts",
      "title": "dotNS TestNet Contracts",
      "slug": "reference-apps-infrastructure-dotns-testnet-contracts",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/testnet-contracts.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/testnet-contracts/",
      "preview": "Current Paseo TestNet contract addresses for the dotNS registry — registry core, registration and pricing, and lifecycle contract families.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Contract Address Table",
          "anchor": "contract-address-table"
        },
        {
          "depth": 2,
          "title": "How to Use These Addresses",
          "anchor": "how-to-use-these-addresses"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 431,
        "token_estimate": 779,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:c85182ff6e12ef0c2b45f481ca9ffe4b7804cc5c136099f89896b4f13128accd",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-dotns-transfer",
      "title": "Name Transfers",
      "slug": "reference-apps-infrastructure-dotns-transfer",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/transfer.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/dotns/transfer/",
      "preview": "Transferring ownership of a .dot name to another account — the flow, the validation rules, and what changes on the new owner's side.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What Changes on Transfer",
          "anchor": "what-changes-on-transfer"
        },
        {
          "depth": 2,
          "title": "When the Tier Lock Matters",
          "anchor": "when-the-tier-lock-matters"
        },
        {
          "depth": 2,
          "title": "What a Product Should Know",
          "anchor": "what-a-product-should-know"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 497,
        "token_estimate": 692,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:fca6d071059cd81425cb5f1021a3800153b180435a67f6e4f057b8d382338a99",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-hop-how-it-works",
      "title": "How HOP Works",
      "slug": "reference-apps-infrastructure-hop-how-it-works",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/how-it-works.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/how-it-works/",
      "preview": "The HOP protocol's conceptual model — what a hop is, how multi-hop routing is constructed, and how the verifier model proves cross-chain correctness.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What a Single Hop Is",
          "anchor": "what-a-single-hop-is"
        },
        {
          "depth": 2,
          "title": "How Multi-Hop Routing Is Constructed",
          "anchor": "how-multi-hop-routing-is-constructed"
        },
        {
          "depth": 2,
          "title": "The Verifier Model",
          "anchor": "the-verifier-model"
        },
        {
          "depth": 2,
          "title": "What a Product Sees",
          "anchor": "what-a-product-sees"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 629,
        "token_estimate": 852,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:af4e8730ec41f19f841ebbf49f40661eda1b3b9abaa03537b2fdabad07f61b90",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-hop",
      "title": "HOP Reference",
      "slug": "reference-apps-infrastructure-hop",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/",
      "preview": "Reference for HOP — Polkadot's cross-chain hop protocol that moves assets and messages between chains, with current maturity-state caveats clearly flagged.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Where HOP Fits",
          "anchor": "where-hop-fits"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 464,
        "token_estimate": 709,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:1f29cafb6c5d0bcff91a979d20e95d018fcc563fc78cd4d4b05516bdc4f39c62",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-hop-recipient",
      "title": "HOP Recipient Journey",
      "slug": "reference-apps-infrastructure-hop-recipient",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/recipient.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/recipient/",
      "preview": "The receiving side of a HOP transfer — observing the incoming hop on the destination chain, validating the proof, and settling the resulting state.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Flow at a Glance",
          "anchor": "the-flow-at-a-glance"
        },
        {
          "depth": 2,
          "title": "What the Recipient's Product Sees",
          "anchor": "what-the-recipients-product-sees"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 466,
        "token_estimate": 689,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:b1a36fb6043574910d50d196b76a31d4a8d6a19513bf963f2537ad6607592a7a",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-hop-sender",
      "title": "HOP Sender Journey",
      "slug": "reference-apps-infrastructure-hop-sender",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/sender.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/hop/sender/",
      "preview": "The sender side of a HOP transfer — dispatching a multi-hop send, tracking it as it routes through intermediate chains, and observing the final outcome.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Flow at a Glance",
          "anchor": "the-flow-at-a-glance"
        },
        {
          "depth": 2,
          "title": "What Can Go Wrong",
          "anchor": "what-can-go-wrong"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 448,
        "token_estimate": 662,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:55b40eeea4a2d23ffb7feb58d4e0e0d5083c089b6b851040ce1f12c6d30e4ea8",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop",
      "title": "Proof of Personhood Reference",
      "slug": "reference-apps-infrastructure-pop",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/",
      "preview": "Reference for Polkadot's Proof of Personhood infrastructure — Ring-VRF and aliases, plus per-pallet documentation for the pallets that gate logic on personhood.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Mechanism",
          "anchor": "the-mechanism"
        },
        {
          "depth": 2,
          "title": "The Pallets",
          "anchor": "the-pallets"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 478,
        "token_estimate": 1009,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:d0813ca9641f0606b36b1c59bf2bb754f3ef0b74e64f3d6c3ac8154d5190fdd7",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-pallet-coinage",
      "title": "pallet-coinage Reference",
      "slug": "reference-apps-infrastructure-pop-pallet-coinage",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-coinage.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-coinage/",
      "preview": "The PoP pallet behind the Polkadot App's Coinage feature — personhood-aware peer-to-peer payments with privacy properties beyond a standard Balances transfer.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Surface",
          "anchor": "conceptual-surface"
        },
        {
          "depth": 2,
          "title": "Relationship to Coinage in the App",
          "anchor": "relationship-to-coinage-in-the-app"
        },
        {
          "depth": 2,
          "title": "Pallet Surface",
          "anchor": "pallet-surface"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 810,
        "token_estimate": 1487,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:f4e684532071f7ee2d25a4c0063d723db6970bb5fd774ef07a1d01be425fb499",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-pallet-game",
      "title": "pallet-game Reference",
      "slug": "reference-apps-infrastructure-pop-pallet-game",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-game.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-game/",
      "preview": "The PoP pallet for personhood-gated on-chain games and randomized selection — fair-draw mechanics that rely on Ring-VRF aliases for unique participation.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What the Pallet Guarantees",
          "anchor": "what-the-pallet-guarantees"
        },
        {
          "depth": 2,
          "title": "What a Product Uses It For",
          "anchor": "what-a-product-uses-it-for"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 444,
        "token_estimate": 632,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:8e13d603364db5fb3af0b4a764f1a92dc583700c25f0f3e08fbf6194b8efb741",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-pallet-identity",
      "title": "pallet-identity Reference",
      "slug": "reference-apps-infrastructure-pop-pallet-identity",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-identity.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-identity/",
      "preview": "The People Chain identity record associated with a PoP account — what it stores, how it relates to aliases, and how a Product reads from it.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What the Pallet Records",
          "anchor": "what-the-pallet-records"
        },
        {
          "depth": 2,
          "title": "Identity vs. Aliases",
          "anchor": "identity-vs-aliases"
        },
        {
          "depth": 2,
          "title": "When to Use From a Product",
          "anchor": "when-to-use-from-a-product"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 550,
        "token_estimate": 955,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:545be149ceacca1f2be7ef0f879f0e2a287f674190500f932af4f6bf7be7aeeb",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-pallet-people",
      "title": "pallet-people Reference",
      "slug": "reference-apps-infrastructure-pop-pallet-people",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-people.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-people/",
      "preview": "The foundational Proof of Personhood pallet — personhood registration, ring membership, alias issuance, and the under_alias runtime origin.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Ring Membership",
          "anchor": "ring-membership"
        },
        {
          "depth": 2,
          "title": "Alias Issuance",
          "anchor": "alias-issuance"
        },
        {
          "depth": 2,
          "title": "`under_alias` Dispatch",
          "anchor": "under_alias-dispatch"
        },
        {
          "depth": 2,
          "title": "Pallets That Depend on This One",
          "anchor": "pallets-that-depend-on-this-one"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 623,
        "token_estimate": 884,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:a15329e15f3ef215dc4ce74777411216d6a81796021429996e57a2d7b2710bcf",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-pallet-score",
      "title": "pallet-score Reference",
      "slug": "reference-apps-infrastructure-pop-pallet-score",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-score.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-score/",
      "preview": "The PoP pallet for personhood-anchored reputation and scoring — per-alias scores that accumulate while staying unlinkable to user accounts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What the Pallet Records",
          "anchor": "what-the-pallet-records"
        },
        {
          "depth": 2,
          "title": "Read and Write Paths",
          "anchor": "read-and-write-paths"
        },
        {
          "depth": 2,
          "title": "Use Cases",
          "anchor": "use-cases"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 486,
        "token_estimate": 706,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:9d253337e5d33bf68dcc408519fbce84bf0be1a80506312024e7f92eaa8bf072",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-pallet-ubc",
      "title": "pallet-ubc Reference",
      "slug": "reference-apps-infrastructure-pop-pallet-ubc",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-ubc.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/pallet-ubc/",
      "preview": "The Universal Basic Capacity pallet — per-person on-chain capacity primitives, including the periodic fee-free transaction quota for verified persons.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What the Pallet Provides",
          "anchor": "what-the-pallet-provides"
        },
        {
          "depth": 2,
          "title": "When a Product Reaches for UBC",
          "anchor": "when-a-product-reaches-for-ubc"
        },
        {
          "depth": 2,
          "title": "Eligibility Constraints",
          "anchor": "eligibility-constraints"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 566,
        "token_estimate": 778,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:61d0724990e1e28da04c2cea53abb3e2271ec69f914bef2a260cd1d5009faa56",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-pop-ring-vrf-and-aliases",
      "title": "Ring-VRF and Aliases",
      "slug": "reference-apps-infrastructure-pop-ring-vrf-and-aliases",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/ring-vrf-and-aliases.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/pop/ring-vrf-and-aliases/",
      "preview": "How Polkadot's Proof of Personhood produces unlinkable per-Product aliases with Ring-VRF, and how under_alias lets pallets gate on aliases.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What PoP Produces",
          "anchor": "what-pop-produces"
        },
        {
          "depth": 2,
          "title": "What an Alias Is",
          "anchor": "what-an-alias-is"
        },
        {
          "depth": 2,
          "title": "The `under_alias` Runtime Origin",
          "anchor": "the-under_alias-runtime-origin"
        },
        {
          "depth": 2,
          "title": "Cross-Product Aliases",
          "anchor": "cross-product-aliases"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 755,
        "token_estimate": 1032,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:9706a58945bea4114d4b6547adf129977417b55045f73c6eabffd05209c81985",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-statement-store-allowance",
      "title": "Statement Store Allowance",
      "slug": "reference-apps-infrastructure-statement-store-allowance",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/allowance.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/allowance/",
      "preview": "How per-account statement quota is enforced — max_count for live statements and max_size for total bytes — and why submissions are gated rather than fee-priced.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What an Allowance Records",
          "anchor": "what-an-allowance-records"
        },
        {
          "depth": 2,
          "title": "How the Limits Interact",
          "anchor": "how-the-limits-interact"
        },
        {
          "depth": 2,
          "title": "Per-Statement Size Limit",
          "anchor": "per-statement-size-limit"
        },
        {
          "depth": 2,
          "title": "Provisioning on TestNet",
          "anchor": "provisioning-on-testnet"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 558,
        "token_estimate": 787,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:88b81eec224d630400ea61d461b3cd0fb15b22f4de45eff8bb5a6d7ae831978f",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-statement-store-channels",
      "title": "Statement Store Channels",
      "slug": "reference-apps-infrastructure-statement-store-channels",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/channels.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/channels/",
      "preview": "The last-write-wins primitive on top of statements — a channel field causes the pallet to replace older entries from the same account on the same channel.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "When to Reach for Channels",
          "anchor": "when-to-reach-for-channels"
        },
        {
          "depth": 2,
          "title": "Scope and Replacement Rules",
          "anchor": "scope-and-replacement-rules"
        },
        {
          "depth": 2,
          "title": "The Channel-Store API",
          "anchor": "the-channel-store-api"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 571,
        "token_estimate": 846,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:9812120cd6f74e827b1d93b72d577e78d4c416ef889e19d5680f71437992f472",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-statement-store",
      "title": "Statement Store Reference",
      "slug": "reference-apps-infrastructure-statement-store",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/",
      "preview": "Reference for the Statement Store — Polkadot's network-layer pub/sub primitive on the People Chain, with on-chain rules and off-chain payloads via gossip.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How a Statement Reaches Subscribers",
          "anchor": "how-a-statement-reaches-subscribers"
        },
        {
          "depth": 2,
          "title": "Delivery Semantics",
          "anchor": "delivery-semantics"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 627,
        "token_estimate": 1007,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:23b6b1b5bb7ea418b85f184171cd7e4798203f0d47b2f3762a5f4fb9fc845cca",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-statement-store-lifecycle",
      "title": "Statement Lifecycle",
      "slug": "reference-apps-infrastructure-statement-store-lifecycle",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/lifecycle.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/lifecycle/",
      "preview": "How a Statement Store submission moves through validation, gossip propagation, TTL expiry, and eviction — and what each step guarantees.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Five Steps",
          "anchor": "the-five-steps"
        },
        {
          "depth": 2,
          "title": "What Each Step Guarantees",
          "anchor": "what-each-step-guarantees"
        },
        {
          "depth": 2,
          "title": "On-Chain Trigger (Forthcoming)",
          "anchor": "on-chain-trigger-forthcoming"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 563,
        "token_estimate": 811,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:2c3b45652d2695051bc2f9560b505c92f03613ab80b07ec9b15f314e2b66595f",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-infrastructure-statement-store-subscriptions",
      "title": "Statement Store Subscriptions",
      "slug": "reference-apps-infrastructure-statement-store-subscriptions",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/subscriptions.md",
      "html_url": "https://docs.polkadot.com/reference/apps/infrastructure/statement-store/subscriptions/",
      "preview": "How a subscriber registers a topic filter against the People Chain node — primary topic, optional secondary topic, dedup behavior, and unsubscription.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How Topics Filter",
          "anchor": "how-topics-filter"
        },
        {
          "depth": 2,
          "title": "What the Callback Receives",
          "anchor": "what-the-callback-receives"
        },
        {
          "depth": 2,
          "title": "Subscription Lifecycle",
          "anchor": "subscription-lifecycle"
        },
        {
          "depth": 2,
          "title": "Initial-State Behavior",
          "anchor": "initial-state-behavior"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 586,
        "token_estimate": 820,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:62055a454cad743ab43770ab9c5fda25da4e0cd4995f2e588bed32756b1d6b76",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-account-management",
      "title": "Account Management Method Group",
      "slug": "reference-apps-protocol-truapi-account-management",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/account-management.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/account-management/",
      "preview": "TrUAPI Account Management method group for resolving sub-accounts, reading account state, and using @parity/product-sdk-signer to get Product accounts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 360,
        "token_estimate": 564,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:237a7a86a50040a0f87b01e59deb1c8d6fee164c600d43bf5f6b9c94d332c6b2",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-calls",
      "title": "TrUAPI Calls Method Group",
      "slug": "reference-apps-protocol-truapi-calls",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/calls.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/calls/",
      "preview": "The lifecycle calls a Product uses to identify itself to its Host, the Host capability introduction, and the setup every TrUAPI group relies on.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 346,
        "token_estimate": 488,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:8e182299b6d99250add673ec4b388de746954c934be675a6b752083f0acfacd5",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-chain-interaction",
      "title": "Chain Interaction Method Group",
      "slug": "reference-apps-protocol-truapi-chain-interaction",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/chain-interaction.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/chain-interaction/",
      "preview": "TrUAPI method group for reading chain state and subscribing to changes, behind @parity/product-sdk-chain-client and the typed PAPI API exposed per chain.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 419,
        "token_estimate": 648,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:e6f10e0e5ef719cccadde1b640a77ce429816cf132bac6762ddc896e30606703",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-chat",
      "title": "Chat Method Group",
      "slug": "reference-apps-protocol-truapi-chat",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/chat.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/chat/",
      "preview": "TrUAPI method group for in-App chat, including room and bot registration, typed message publishing, and custom message rendering by subscription.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 338,
        "token_estimate": 484,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:55f46e1f1657f51da13ec60f14ca428f21b24083a35693ff9e69aae60e9b6569",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-entropy",
      "title": "Entropy Method Group",
      "slug": "reference-apps-protocol-truapi-entropy",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/entropy.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/entropy/",
      "preview": "TrUAPI method group for deriving deterministic per-Product entropy from the user's root key, suitable for seeding Product-local key material.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 462,
        "token_estimate": 626,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:96e55623b9965cb74ad6b1ed9d59944c7ebb3db5356fd55c2a0b1529175bfda2",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi",
      "title": "TrUAPI Reference",
      "slug": "reference-apps-protocol-truapi",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/",
      "preview": "TrUAPI is the protocol between Polkadot Hosts and the Products that run inside them, covering signing, chain interaction, storage, and messaging.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Two Audiences",
          "anchor": "two-audiences"
        },
        {
          "depth": 2,
          "title": "The Eleven Method Groups",
          "anchor": "the-eleven-method-groups"
        },
        {
          "depth": 2,
          "title": "High-Level Diagram",
          "anchor": "high-level-diagram"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1050,
        "token_estimate": 1865,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:c20b283564b4c165003ad80ae6e0f3e0df3f4fb25bd2b0b7bdd16d140627d68e",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-local-storage",
      "title": "Local Storage Method Group",
      "slug": "reference-apps-protocol-truapi-local-storage",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/local-storage.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/local-storage/",
      "preview": "TrUAPI Local Storage method group for per-Product, per-device key-value persistence, Host-managed namespaces, JSON helpers, and KvStore use.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 330,
        "token_estimate": 535,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:e579150cbfc831561481283ed7554384eae2783827c813c3b66afe7d565e5933",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-packages",
      "title": "TrUAPI Packages",
      "slug": "reference-apps-protocol-truapi-packages",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/packages.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/packages/",
      "preview": "Which SDK package wraps which TrUAPI method group, and where the boundary between Product code and Host code lives in the package reference.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Package Map",
          "anchor": "package-map"
        },
        {
          "depth": 2,
          "title": "The Boundary Between Product Code and Host Code",
          "anchor": "the-boundary-between-product-code-and-host-code"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 571,
        "token_estimate": 1524,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:70fa5cec59e5f2b08249fda5ad3226e940fd459ba69ae43204ad97ab1075039a",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-payment",
      "title": "Payment Method Group",
      "slug": "reference-apps-protocol-truapi-payment",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/payment.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/payment/",
      "preview": "TrUAPI method group for payment flows, including the standard Balances transfer surface and the Pocket peer-to-peer flow for Product payments.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 356,
        "token_estimate": 534,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:5d4a4d615a9cddaa7a85acc1775cafd8747629844911f6dac35d1e05bb35cab8",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-permissions",
      "title": "Permissions Method Group",
      "slug": "reference-apps-protocol-truapi-permissions",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/permissions.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/permissions/",
      "preview": "TrUAPI method group for declaring, querying, and gating on Product capabilities, including the ChainSubmit, ExternalRequest, and Microphone surfaces.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 395,
        "token_estimate": 564,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:084802d73d3a92119becce9d40151d2b6f4145154c4301f4edd1d9fe56e605f3",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-preimage",
      "title": "Preimage Method Group",
      "slug": "reference-apps-protocol-truapi-preimage",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/preimage.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/preimage/",
      "preview": "TrUAPI method group for submitting off-chain content that on-chain operations dereference by hash, with preimage and Statement Store distinction.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 327,
        "token_estimate": 490,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:d1bcdaf018c39e533e2ad0175c69159ba40ccef55dfacdc2425b3f331785c433",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-sandbox",
      "title": "Sandbox and Sub-Accounts in TrUAPI",
      "slug": "reference-apps-protocol-truapi-sandbox",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/sandbox.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/sandbox/",
      "preview": "Why a Polkadot Product gets a per-domain sub-account, why the Host API is the only egress, and how permissions selectively relax that isolation.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Why Derived Sub-Accounts, Not Root Identity",
          "anchor": "why-derived-sub-accounts-not-root-identity"
        },
        {
          "depth": 2,
          "title": "Why the Host API Is the Only Egress",
          "anchor": "why-the-host-api-is-the-only-egress"
        },
        {
          "depth": 2,
          "title": "How Permissions Selectively Relax Isolation",
          "anchor": "how-permissions-selectively-relax-isolation"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 695,
        "token_estimate": 942,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:685e7f6b9ad61473ca6d126c8b0f5a295386853514757c7155218c833ba103da",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-signing",
      "title": "Signing Method Group",
      "slug": "reference-apps-protocol-truapi-signing",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/signing.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/signing/",
      "preview": "TrUAPI method group for dispatching transactions through the Host to the paired Polkadot App for per-transaction approval, signing, and results.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 3,
          "title": "Auto-Signing",
          "anchor": "auto-signing"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 593,
        "token_estimate": 891,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:c94fbdc9970d3bbcaf2855b547b44142d33c0b7d645cc91c223783ed00b8de19",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-statement-store",
      "title": "Statement Store Method Group",
      "slug": "reference-apps-protocol-truapi-statement-store",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/statement-store.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/statement-store/",
      "preview": "TrUAPI method group for publishing and subscribing to gossip-distributed signed statements on the People Chain through the Host and SDK client.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Conceptual Contract",
          "anchor": "conceptual-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 442,
        "token_estimate": 696,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:55ed5dce29241b3176843fadd0cab62908339f8124fb37e476f5f5fe7b16e951",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-protocol-truapi-versioning",
      "title": "TrUAPI Versioning",
      "slug": "reference-apps-protocol-truapi-versioning",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/versioning.md",
      "html_url": "https://docs.polkadot.com/reference/apps/protocol/truapi/versioning/",
      "preview": "How TrUAPI versions evolve, what compatibility a Product can rely on across Host versions, and how to target a specific version range safely.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What a Version Number Identifies",
          "anchor": "what-a-version-number-identifies"
        },
        {
          "depth": 2,
          "title": "What a Product Targets",
          "anchor": "what-a-product-targets"
        },
        {
          "depth": 2,
          "title": "How the SDK Maps to Versions",
          "anchor": "how-the-sdk-maps-to-versions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 543,
        "token_estimate": 716,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:e4a73d2978cc0492a33ee5497bbad3be5662a9b1333228c72c013823bb6ecd20",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-apps-skills",
      "title": "Polkadot Product Skills",
      "slug": "reference-apps-skills",
      "categories": [
        "Apps",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/apps/skills.md",
      "html_url": "https://docs.polkadot.com/reference/apps/skills/",
      "preview": "Reference for the product-sdk skills — modular instructions that teach an AI agent how to work effectively across the Polkadot Products stack.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Skills List",
          "anchor": "skills-list"
        },
        {
          "depth": 2,
          "title": "How to Install",
          "anchor": "how-to-install"
        },
        {
          "depth": 2,
          "title": "Updating",
          "anchor": "updating"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 721,
        "token_estimate": 1566,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:6b1615ea3a5b5039faf0d2bb9868c69afd743952344b2fa47cbb5186810f4aad",
      "last_updated": "2026-06-23T11:32:12+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-glossary",
      "title": "Glossary",
      "slug": "reference-glossary",
      "categories": [
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/glossary.md",
      "html_url": "https://docs.polkadot.com/reference/glossary/",
      "preview": "Glossary of terms used within the Polkadot ecosystem, Polkadot SDK, its subsequent libraries, and other relevant Web3 terminology.",
      "outline": [
        {
          "depth": 2,
          "title": "Alias",
          "anchor": "alias"
        },
        {
          "depth": 2,
          "title": "Allowance",
          "anchor": "allowance"
        },
        {
          "depth": 2,
          "title": "Asset Hub",
          "anchor": "asset-hub"
        },
        {
          "depth": 2,
          "title": "Authority",
          "anchor": "authority"
        },
        {
          "depth": 2,
          "title": "Authority Round (Aura)",
          "anchor": "authority-round-aura"
        },
        {
          "depth": 2,
          "title": "Blake2b-256",
          "anchor": "blake2b-256"
        },
        {
          "depth": 2,
          "title": "Blind Assignment of Blockchain Extension (BABE)",
          "anchor": "blind-assignment-of-blockchain-extension-babe"
        },
        {
          "depth": 2,
          "title": "Block Author",
          "anchor": "block-author"
        },
        {
          "depth": 2,
          "title": "Browse",
          "anchor": "browse"
        },
        {
          "depth": 2,
          "title": "Bulletin Chain",
          "anchor": "bulletin-chain"
        },
        {
          "depth": 2,
          "title": "Byzantine Fault Tolerance (BFT)",
          "anchor": "byzantine-fault-tolerance-bft"
        },
        {
          "depth": 3,
          "title": "Byzantine Failure",
          "anchor": "byzantine-failure"
        },
        {
          "depth": 3,
          "title": "Practical Byzantine Fault Tolerance (pBFT)",
          "anchor": "practical-byzantine-fault-tolerance-pbft"
        },
        {
          "depth": 2,
          "title": "Call",
          "anchor": "call"
        },
        {
          "depth": 2,
          "title": "Chain Specification",
          "anchor": "chain-specification"
        },
        {
          "depth": 2,
          "title": "Chain State",
          "anchor": "chain-state"
        },
        {
          "depth": 2,
          "title": "Chat",
          "anchor": "chat"
        },
        {
          "depth": 2,
          "title": "Coin (in Coinage)",
          "anchor": "coin-in-coinage"
        },
        {
          "depth": 2,
          "title": "Coinage",
          "anchor": "coinage"
        },
        {
          "depth": 2,
          "title": "Collator",
          "anchor": "collator"
        },
        {
          "depth": 2,
          "title": "Collective",
          "anchor": "collective"
        },
        {
          "depth": 2,
          "title": "Consensus",
          "anchor": "consensus"
        },
        {
          "depth": 2,
          "title": "Consensus Algorithm",
          "anchor": "consensus-algorithm"
        },
        {
          "depth": 2,
          "title": "Consensus Engine",
          "anchor": "consensus-engine"
        },
        {
          "depth": 2,
          "title": "Content Identifier (CID)",
          "anchor": "content-identifier-cid"
        },
        {
          "depth": 2,
          "title": "Coretime",
          "anchor": "coretime"
        },
        {
          "depth": 2,
          "title": "Cross-Consensus Messaging (XCM)",
          "anchor": "cross-consensus-messaging-xcm"
        },
        {
          "depth": 2,
          "title": "DAG-PB",
          "anchor": "dag-pb"
        },
        {
          "depth": 2,
          "title": "Derived Sub-Account",
          "anchor": "derived-sub-account"
        },
        {
          "depth": 2,
          "title": "Development Phrase",
          "anchor": "development-phrase"
        },
        {
          "depth": 2,
          "title": "Digest",
          "anchor": "digest"
        },
        {
          "depth": 2,
          "title": "Dimension of Individuality Measurement (DIM)",
          "anchor": "dimension-of-individuality-measurement-dim"
        },
        {
          "depth": 2,
          "title": "Dispatchable",
          "anchor": "dispatchable"
        },
        {
          "depth": 2,
          "title": "DOT",
          "anchor": "dot"
        },
        {
          "depth": 2,
          "title": "dot Address",
          "anchor": "dot-address"
        },
        {
          "depth": 2,
          "title": "DotNS",
          "anchor": "dotns"
        },
        {
          "depth": 2,
          "title": "Entropy",
          "anchor": "entropy"
        },
        {
          "depth": 2,
          "title": "Ephemeral",
          "anchor": "ephemeral"
        },
        {
          "depth": 2,
          "title": "Events",
          "anchor": "events"
        },
        {
          "depth": 2,
          "title": "Executor",
          "anchor": "executor"
        },
        {
          "depth": 2,
          "title": "Existential Deposit",
          "anchor": "existential-deposit"
        },
        {
          "depth": 2,
          "title": "Extrinsic",
          "anchor": "extrinsic"
        },
        {
          "depth": 2,
          "title": "Fork Choice Rule/Strategy",
          "anchor": "fork-choice-rulestrategy"
        },
        {
          "depth": 2,
          "title": "Framework for Runtime Aggregation of Modularized Entities (FRAME)",
          "anchor": "framework-for-runtime-aggregation-of-modularized-entities-frame"
        },
        {
          "depth": 2,
          "title": "Full Node",
          "anchor": "full-node"
        },
        {
          "depth": 2,
          "title": "Genesis Configuration",
          "anchor": "genesis-configuration"
        },
        {
          "depth": 2,
          "title": "GHOST-based Recursive Ancestor Deriving Prefix Agreement (GRANDPA)",
          "anchor": "ghost-based-recursive-ancestor-deriving-prefix-agreement-grandpa"
        },
        {
          "depth": 2,
          "title": "Handoff Protocol (HOP)",
          "anchor": "handoff-protocol-hop"
        },
        {
          "depth": 2,
          "title": "Header",
          "anchor": "header"
        },
        {
          "depth": 2,
          "title": "HOLLAR",
          "anchor": "hollar"
        },
        {
          "depth": 2,
          "title": "Host",
          "anchor": "host"
        },
        {
          "depth": 2,
          "title": "Host API",
          "anchor": "host-api"
        },
        {
          "depth": 2,
          "title": "Hybrid Consensus",
          "anchor": "hybrid-consensus"
        },
        {
          "depth": 2,
          "title": "Inherent Transactions",
          "anchor": "inherent-transactions"
        },
        {
          "depth": 2,
          "title": "InterPlanetary File System (IPFS)",
          "anchor": "interplanetary-file-system-ipfs"
        },
        {
          "depth": 2,
          "title": "JSON-RPC",
          "anchor": "json-rpc"
        },
        {
          "depth": 2,
          "title": "Keystore",
          "anchor": "keystore"
        },
        {
          "depth": 2,
          "title": "Kusama",
          "anchor": "kusama"
        },
        {
          "depth": 2,
          "title": "libp2p",
          "anchor": "libp2p"
        },
        {
          "depth": 2,
          "title": "Light Client",
          "anchor": "light-client"
        },
        {
          "depth": 2,
          "title": "Manifest",
          "anchor": "manifest"
        },
        {
          "depth": 2,
          "title": "Metadata",
          "anchor": "metadata"
        },
        {
          "depth": 2,
          "title": "Nominated Proof of Stake (NPoS)",
          "anchor": "nominated-proof-of-stake-npos"
        },
        {
          "depth": 2,
          "title": "Oracle",
          "anchor": "oracle"
        },
        {
          "depth": 2,
          "title": "Origin",
          "anchor": "origin"
        },
        {
          "depth": 2,
          "title": "Pairing",
          "anchor": "pairing"
        },
        {
          "depth": 2,
          "title": "Pallet",
          "anchor": "pallet"
        },
        {
          "depth": 2,
          "title": "PAPI",
          "anchor": "papi"
        },
        {
          "depth": 2,
          "title": "Parachain",
          "anchor": "parachain"
        },
        {
          "depth": 2,
          "title": "PAS",
          "anchor": "pas"
        },
        {
          "depth": 2,
          "title": "Paseo TestNet",
          "anchor": "paseo-testnet"
        },
        {
          "depth": 2,
          "title": "People Chain",
          "anchor": "people-chain"
        },
        {
          "depth": 2,
          "title": "Pocket",
          "anchor": "pocket"
        },
        {
          "depth": 2,
          "title": "Polkadot",
          "anchor": "polkadot"
        },
        {
          "depth": 2,
          "title": "Polkadot App",
          "anchor": "polkadot-app"
        },
        {
          "depth": 2,
          "title": "Polkadot Cloud",
          "anchor": "polkadot-cloud"
        },
        {
          "depth": 2,
          "title": "Polkadot Desktop",
          "anchor": "polkadot-desktop"
        },
        {
          "depth": 2,
          "title": "Polkadot Hub",
          "anchor": "polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Polkadot SDK",
          "anchor": "polkadot-sdk"
        },
        {
          "depth": 2,
          "title": "Polkadot Virtual Machine (PVM)",
          "anchor": "polkadot-virtual-machine-pvm"
        },
        {
          "depth": 2,
          "title": "Polkadot Web",
          "anchor": "polkadot-web"
        },
        {
          "depth": 2,
          "title": "PoP Full",
          "anchor": "pop-full"
        },
        {
          "depth": 2,
          "title": "PoP Lite",
          "anchor": "pop-lite"
        },
        {
          "depth": 2,
          "title": "PoP Tier",
          "anchor": "pop-tier"
        },
        {
          "depth": 2,
          "title": "Preimage",
          "anchor": "preimage"
        },
        {
          "depth": 2,
          "title": "Product",
          "anchor": "product"
        },
        {
          "depth": 2,
          "title": "Proof of Personhood (PoP)",
          "anchor": "proof-of-personhood-pop"
        },
        {
          "depth": 2,
          "title": "pUSD",
          "anchor": "pusd"
        },
        {
          "depth": 2,
          "title": "Recycler",
          "anchor": "recycler"
        },
        {
          "depth": 2,
          "title": "Relay Chain",
          "anchor": "relay-chain"
        },
        {
          "depth": 2,
          "title": "Ring-VRF",
          "anchor": "ring-vrf"
        },
        {
          "depth": 2,
          "title": "Rococo",
          "anchor": "rococo"
        },
        {
          "depth": 2,
          "title": "Runtime",
          "anchor": "runtime"
        },
        {
          "depth": 2,
          "title": "Sandbox",
          "anchor": "sandbox"
        },
        {
          "depth": 2,
          "title": "Session Public Key",
          "anchor": "session-public-key"
        },
        {
          "depth": 2,
          "title": "Shield States",
          "anchor": "shield-states"
        },
        {
          "depth": 2,
          "title": "Sign In with Polkadot",
          "anchor": "sign-in-with-polkadot"
        },
        {
          "depth": 2,
          "title": "Signing Model",
          "anchor": "signing-model"
        },
        {
          "depth": 2,
          "title": "Simple Concatenated Aggregate Little-Endian (SCALE)",
          "anchor": "simple-concatenated-aggregate-little-endian-scale"
        },
        {
          "depth": 2,
          "title": "Slot",
          "anchor": "slot"
        },
        {
          "depth": 2,
          "title": "Smoldot",
          "anchor": "smoldot"
        },
        {
          "depth": 2,
          "title": "Sovereign Account",
          "anchor": "sovereign-account"
        },
        {
          "depth": 2,
          "title": "Sr25519",
          "anchor": "sr25519"
        },
        {
          "depth": 2,
          "title": "SS58 Address Format",
          "anchor": "ss58-address-format"
        },
        {
          "depth": 2,
          "title": "State Transition Function (STF)",
          "anchor": "state-transition-function-stf"
        },
        {
          "depth": 2,
          "title": "Statement",
          "anchor": "statement"
        },
        {
          "depth": 2,
          "title": "Statement Store",
          "anchor": "statement-store"
        },
        {
          "depth": 2,
          "title": "Storage Item",
          "anchor": "storage-item"
        },
        {
          "depth": 2,
          "title": "Substrate",
          "anchor": "substrate"
        },
        {
          "depth": 2,
          "title": "Transaction",
          "anchor": "transaction"
        },
        {
          "depth": 2,
          "title": "Transaction Era",
          "anchor": "transaction-era"
        },
        {
          "depth": 2,
          "title": "Triangle",
          "anchor": "triangle"
        },
        {
          "depth": 2,
          "title": "Triangle User-Agent Programming Interface (TrUAPI)",
          "anchor": "triangle-user-agent-programming-interface-truapi"
        },
        {
          "depth": 2,
          "title": "Trie (Patricia Merkle Tree)",
          "anchor": "trie-patricia-merkle-tree"
        },
        {
          "depth": 2,
          "title": "Validator",
          "anchor": "validator"
        },
        {
          "depth": 2,
          "title": "WebAssembly (Wasm)",
          "anchor": "webassembly-wasm"
        },
        {
          "depth": 2,
          "title": "Weight",
          "anchor": "weight"
        },
        {
          "depth": 2,
          "title": "Westend",
          "anchor": "westend"
        }
      ],
      "stats": {
        "word_count": 6223,
        "token_estimate": 9568,
        "headings": 118,
        "sections_indexed": 118
      },
      "version_hash": "sha256:8b6299f142f29ff35acbb912c706d0e6c915510255af4a55c5ca63ec175fb63f",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-governance",
      "title": "On-Chain Governance Overview",
      "slug": "reference-governance",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/governance.md",
      "html_url": "https://docs.polkadot.com/reference/governance/",
      "preview": "Discover Polkadot’s cutting-edge OpenGov system, enabling transparent, decentralized decision-making through direct democracy and flexible governance tracks.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Governance Evolution",
          "anchor": "governance-evolution"
        },
        {
          "depth": 2,
          "title": "OpenGov Key Features",
          "anchor": "opengov-key-features"
        },
        {
          "depth": 2,
          "title": "Origins and Tracks",
          "anchor": "origins-and-tracks"
        },
        {
          "depth": 2,
          "title": "Referendums",
          "anchor": "referendums"
        },
        {
          "depth": 3,
          "title": "Vote on Referendums",
          "anchor": "vote-on-referendums"
        },
        {
          "depth": 3,
          "title": "Delegate Voting Power",
          "anchor": "delegate-voting-power"
        },
        {
          "depth": 3,
          "title": "Cancel a Referendum",
          "anchor": "cancel-a-referendum"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 984,
        "token_estimate": 1512,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:fd72debd641dda80a51f1cf76a0d8de8a267a51e33506a7906fa58753275d9d6",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-governance-origins-tracks",
      "title": "Origins and Tracks",
      "slug": "reference-governance-origins-tracks",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/governance/origins-tracks.md",
      "html_url": "https://docs.polkadot.com/reference/governance/origins-tracks/",
      "preview": "Explore Polkadot's OpenGov origins and tracks system, defining privilege levels, decision processes, and tailored pathways for network proposals.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Origins",
          "anchor": "origins"
        },
        {
          "depth": 2,
          "title": "Tracks",
          "anchor": "tracks"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 463,
        "token_estimate": 617,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:bae612ad294e7b35edda5d5962140afdbea34e2a4fad45b3c29be99734f12f60",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference",
      "title": "Technical Reference Overview",
      "slug": "reference",
      "categories": [
        "Basics",
        "Polkadot Protocol",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference.md",
      "html_url": "https://docs.polkadot.com/reference/",
      "preview": "Learn about Polkadot's technical architecture, governance framework, parachain ecosystem, and the tools you need to build and interact with the network.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Polkadot Hub",
          "anchor": "polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Parachains",
          "anchor": "parachains"
        },
        {
          "depth": 2,
          "title": "On-Chain Governance",
          "anchor": "on-chain-governance"
        },
        {
          "depth": 2,
          "title": "Glossary",
          "anchor": "glossary"
        },
        {
          "depth": 2,
          "title": "Tools",
          "anchor": "tools"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 888,
        "token_estimate": 1531,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:ac0e0c8b8514a78950c5df651820407b66da8c569086b8324e82c370604ba6a7",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-accounts",
      "title": "Polkadot SDK Accounts",
      "slug": "reference-parachains-accounts",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/accounts.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/accounts/",
      "preview": "Learn about account structures, balances, and address formats in the Polkadot SDK, including how to manage lifecycle, references, and balances.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Account Data Structure",
          "anchor": "account-data-structure"
        },
        {
          "depth": 3,
          "title": "Account",
          "anchor": "account"
        },
        {
          "depth": 3,
          "title": "Account Info",
          "anchor": "account-info"
        },
        {
          "depth": 3,
          "title": "Account Reference Counters",
          "anchor": "account-reference-counters"
        },
        {
          "depth": 2,
          "title": "Account Balance Types",
          "anchor": "account-balance-types"
        },
        {
          "depth": 3,
          "title": "Balance Types",
          "anchor": "balance-types"
        },
        {
          "depth": 3,
          "title": "Locks",
          "anchor": "locks"
        },
        {
          "depth": 3,
          "title": "Balance Types on Polkadot.js",
          "anchor": "balance-types-on-polkadotjs"
        },
        {
          "depth": 2,
          "title": "Address Formats",
          "anchor": "address-formats"
        },
        {
          "depth": 3,
          "title": "Basic Format",
          "anchor": "basic-format"
        },
        {
          "depth": 3,
          "title": "Address Type",
          "anchor": "address-type"
        },
        {
          "depth": 3,
          "title": "Address Length",
          "anchor": "address-length"
        },
        {
          "depth": 3,
          "title": "Checksum Types",
          "anchor": "checksum-types"
        },
        {
          "depth": 3,
          "title": "Validating Addresses",
          "anchor": "validating-addresses"
        }
      ],
      "stats": {
        "word_count": 4124,
        "token_estimate": 6300,
        "headings": 15,
        "sections_indexed": 15
      },
      "version_hash": "sha256:ec3a15386bdb148a52a3b478469563de94e7565cd64e36c9c039355d68d67517",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-blocks-transactions-fees-blocks",
      "title": "Blocks",
      "slug": "reference-parachains-blocks-transactions-fees-blocks",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/blocks-transactions-fees/blocks.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/blocks-transactions-fees/blocks/",
      "preview": "Understand how blocks are produced, validated, and imported in Polkadot SDK-based blockchains, covering initialization, finalization, and authoring processes.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What is a Block?",
          "anchor": "what-is-a-block"
        },
        {
          "depth": 2,
          "title": "Block Production",
          "anchor": "block-production"
        },
        {
          "depth": 3,
          "title": "Initialize Block",
          "anchor": "initialize-block"
        },
        {
          "depth": 3,
          "title": "Finalize Block",
          "anchor": "finalize-block"
        },
        {
          "depth": 2,
          "title": "Block Authoring and Import",
          "anchor": "block-authoring-and-import"
        },
        {
          "depth": 3,
          "title": "Block Import Queue",
          "anchor": "block-import-queue"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 888,
        "token_estimate": 1331,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:fc4e5d8c317678c48e4349628c27d47fb8188752ee36a5d1f29e9408f18c22b0",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-blocks-transactions-fees-fees",
      "title": "Transactions Weights and Fees",
      "slug": "reference-parachains-blocks-transactions-fees-fees",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/blocks-transactions-fees/fees.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/blocks-transactions-fees/fees/",
      "preview": "Overview of transaction weights and fees in Polkadot SDK chains, detailing how fees are calculated using a defined formula and runtime specifics.",
      "outline": [
        {
          "depth": 2,
          "title": "Introductions",
          "anchor": "introductions"
        },
        {
          "depth": 2,
          "title": "How Fees are Calculated",
          "anchor": "how-fees-are-calculated"
        },
        {
          "depth": 2,
          "title": "Using the Transaction Payment Pallet",
          "anchor": "using-the-transaction-payment-pallet"
        },
        {
          "depth": 3,
          "title": "Understanding the Inclusion Fee",
          "anchor": "understanding-the-inclusion-fee"
        },
        {
          "depth": 3,
          "title": "Accounts with an Insufficient Balance",
          "anchor": "accounts-with-an-insufficient-balance"
        },
        {
          "depth": 3,
          "title": "Fee Multipliers",
          "anchor": "fee-multipliers"
        },
        {
          "depth": 2,
          "title": "Transactions with Special Requirements",
          "anchor": "transactions-with-special-requirements"
        },
        {
          "depth": 2,
          "title": "Default Weight Annotations",
          "anchor": "default-weight-annotations"
        },
        {
          "depth": 3,
          "title": "Weights and Database Read/Write Operations",
          "anchor": "weights-and-database-readwrite-operations"
        },
        {
          "depth": 3,
          "title": "Dispatch Classes",
          "anchor": "dispatch-classes"
        },
        {
          "depth": 3,
          "title": "Dynamic Weights",
          "anchor": "dynamic-weights"
        },
        {
          "depth": 2,
          "title": "Post Dispatch Weight Correction",
          "anchor": "post-dispatch-weight-correction"
        },
        {
          "depth": 2,
          "title": "Custom Fees",
          "anchor": "custom-fees"
        },
        {
          "depth": 3,
          "title": "Custom Weights",
          "anchor": "custom-weights"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 2826,
        "token_estimate": 4200,
        "headings": 15,
        "sections_indexed": 15
      },
      "version_hash": "sha256:a9b6429d3b95d59c930a3ec6dd4aecea4f5c2a7bd6eb4cea480ce3a4e34785e7",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-blocks-transactions-fees-transactions",
      "title": "Transactions",
      "slug": "reference-parachains-blocks-transactions-fees-transactions",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/blocks-transactions-fees/transactions.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/blocks-transactions-fees/transactions/",
      "preview": "Learn how to construct, submit, and validate transactions in the Polkadot SDK, covering signed, unsigned, and inherent types of transactions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What Is a Transaction?",
          "anchor": "what-is-a-transaction"
        },
        {
          "depth": 3,
          "title": "Signed Transactions",
          "anchor": "signed-transactions"
        },
        {
          "depth": 3,
          "title": "Unsigned Transactions",
          "anchor": "unsigned-transactions"
        },
        {
          "depth": 3,
          "title": "Inherent Transactions",
          "anchor": "inherent-transactions"
        },
        {
          "depth": 2,
          "title": "Transaction Formats",
          "anchor": "transaction-formats"
        },
        {
          "depth": 3,
          "title": "Types of Transaction Formats",
          "anchor": "types-of-transaction-formats"
        },
        {
          "depth": 3,
          "title": "Signed Transaction Data Structure",
          "anchor": "signed-transaction-data-structure"
        },
        {
          "depth": 3,
          "title": "Signed Extensions",
          "anchor": "signed-extensions"
        },
        {
          "depth": 2,
          "title": "Transaction Construction",
          "anchor": "transaction-construction"
        },
        {
          "depth": 3,
          "title": "Construct a Signed Transaction",
          "anchor": "construct-a-signed-transaction"
        },
        {
          "depth": 3,
          "title": "Transaction Encoding",
          "anchor": "transaction-encoding"
        },
        {
          "depth": 3,
          "title": "Customize Transaction Construction",
          "anchor": "customize-transaction-construction"
        },
        {
          "depth": 2,
          "title": "Lifecycle of a Transaction",
          "anchor": "lifecycle-of-a-transaction"
        },
        {
          "depth": 3,
          "title": "Define Transaction Properties",
          "anchor": "define-transaction-properties"
        },
        {
          "depth": 3,
          "title": "Process on a Block Authoring Node",
          "anchor": "process-on-a-block-authoring-node"
        },
        {
          "depth": 3,
          "title": "Validate and Queue",
          "anchor": "validate-and-queue"
        },
        {
          "depth": 3,
          "title": "Transaction Ordering and Priority",
          "anchor": "transaction-ordering-and-priority"
        },
        {
          "depth": 3,
          "title": "Transaction Execution",
          "anchor": "transaction-execution"
        },
        {
          "depth": 2,
          "title": "Transaction Mortality",
          "anchor": "transaction-mortality"
        },
        {
          "depth": 2,
          "title": "Unique Identifiers for Extrinsics",
          "anchor": "unique-identifiers-for-extrinsics"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 3300,
        "token_estimate": 4611,
        "headings": 22,
        "sections_indexed": 22
      },
      "version_hash": "sha256:96d19c9c56bc35c73c5f003c55ffcff74bd39cd7d74cf17201abd20b15e2dd05",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-chain-data",
      "title": "Chain Data",
      "slug": "reference-parachains-chain-data",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/chain-data.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/chain-data/",
      "preview": "Learn how to expose and utilize chain data for blockchain applications. Discover runtime metadata, RPC APIs, and tools for efficient development.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Application Development",
          "anchor": "application-development"
        },
        {
          "depth": 2,
          "title": "Understand Metadata",
          "anchor": "understand-metadata"
        },
        {
          "depth": 2,
          "title": "Expose Runtime Information as Metadata",
          "anchor": "expose-runtime-information-as-metadata"
        },
        {
          "depth": 2,
          "title": "Generate Metadata",
          "anchor": "generate-metadata"
        },
        {
          "depth": 2,
          "title": "Retrieve Runtime Metadata",
          "anchor": "retrieve-runtime-metadata"
        },
        {
          "depth": 3,
          "title": "Use Polkadot.js",
          "anchor": "use-polkadotjs"
        },
        {
          "depth": 3,
          "title": "Use Curl",
          "anchor": "use-curl"
        },
        {
          "depth": 3,
          "title": "Use Subxt",
          "anchor": "use-subxt"
        },
        {
          "depth": 2,
          "title": "Client Applications and Metadata",
          "anchor": "client-applications-and-metadata"
        },
        {
          "depth": 2,
          "title": "Metadata Format",
          "anchor": "metadata-format"
        },
        {
          "depth": 3,
          "title": "Pallets",
          "anchor": "pallets"
        },
        {
          "depth": 3,
          "title": "Extrinsic",
          "anchor": "extrinsic"
        },
        {
          "depth": 2,
          "title": "Included RPC APIs",
          "anchor": "included-rpc-apis"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 2172,
        "token_estimate": 3645,
        "headings": 15,
        "sections_indexed": 15
      },
      "version_hash": "sha256:f50b3bfaaa2a3f5799e4ff72c6540a835edcf20b67a637aae641a5818fb03a35",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-consensus-async-backing",
      "title": "Asynchronous Backing",
      "slug": "reference-parachains-consensus-async-backing",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/consensus/async-backing.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/consensus/async-backing/",
      "preview": "Understand how asynchronous backing pipelines parachain block production, the protocol changes it introduces on the Relay Chain, and how parachains participate safely and efficiently.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Configurations",
          "anchor": "configurations"
        },
        {
          "depth": 2,
          "title": "Synchronous VS. Asynchronous Processing",
          "anchor": "synchronous-vs-asynchronous-processing"
        }
      ],
      "stats": {
        "word_count": 978,
        "token_estimate": 1750,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:5f0acffdc9a38b824a7247aabd5657f9997a172fd085f9ff0aaf18cc03271970",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-consensus-elastic-scaling",
      "title": "Elastic Scaling",
      "slug": "reference-parachains-consensus-elastic-scaling",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/consensus/elastic-scaling.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/consensus/elastic-scaling/",
      "preview": "Learn how elastic scaling in Polkadot boosts parachain throughput, reduces latency, and supports dynamic, cost-efficient resource allocation.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How Elastic Scaling Works",
          "anchor": "how-elastic-scaling-works"
        },
        {
          "depth": 2,
          "title": "Benefits of Elastic Scaling",
          "anchor": "benefits-of-elastic-scaling"
        },
        {
          "depth": 2,
          "title": "Use Cases",
          "anchor": "use-cases"
        },
        {
          "depth": 3,
          "title": "Handling Sudden Traffic Spikes",
          "anchor": "handling-sudden-traffic-spikes"
        },
        {
          "depth": 3,
          "title": "Supporting Early-Stage Growth",
          "anchor": "supporting-early-stage-growth"
        },
        {
          "depth": 3,
          "title": "Scaling Massive IoT Networks",
          "anchor": "scaling-massive-iot-networks"
        },
        {
          "depth": 3,
          "title": "Powering Real-Time, Low-Latency Systems",
          "anchor": "powering-real-time-low-latency-systems"
        }
      ],
      "stats": {
        "word_count": 1046,
        "token_estimate": 1440,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:a8a20c71c851e6ee4440b65e4b5b96187327345a757a450ee3a021afc7e5af52",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-consensus-inclusion-pipeline",
      "title": "Inclusion Pipeline",
      "slug": "reference-parachains-consensus-inclusion-pipeline",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/consensus/inclusion-pipeline.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/consensus/inclusion-pipeline/",
      "preview": "Learn how Polkadot validates parachain blocks through the Inclusion Pipeline, detailing context, generation, backing, and inclusion stages.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Pipeline Stages",
          "anchor": "pipeline-stages"
        },
        {
          "depth": 3,
          "title": "Context",
          "anchor": "context"
        },
        {
          "depth": 3,
          "title": "Generation",
          "anchor": "generation"
        },
        {
          "depth": 3,
          "title": "Backing",
          "anchor": "backing"
        },
        {
          "depth": 3,
          "title": "Inclusion",
          "anchor": "inclusion"
        }
      ],
      "stats": {
        "word_count": 567,
        "token_estimate": 818,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:c51eb3c6cfc5a5c6c6cd19366bec72a77b9f89aa6a72b5df23c549abc36fa04f",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-consensus",
      "title": "Parachain Consensus",
      "slug": "reference-parachains-consensus",
      "categories": [
        "Polkadot Protocol",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/consensus.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/consensus/",
      "preview": "Understand how the blocks authored by parachain collators are secured by the relay chain validators and how the parachain transactions achieve finality.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "The Role of Collators",
          "anchor": "the-role-of-collators"
        },
        {
          "depth": 2,
          "title": "Consensus and Validation",
          "anchor": "consensus-and-validation"
        },
        {
          "depth": 3,
          "title": "Path of a Parachain Block",
          "anchor": "path-of-a-parachain-block"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 856,
        "token_estimate": 1250,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:ad20d2c3b2471eb8fcc31a2d5666c34bd874525900ad49c1e95329f86f338410",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-cryptography",
      "title": "Cryptography",
      "slug": "reference-parachains-cryptography",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/cryptography.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/cryptography/",
      "preview": "A concise guide to cryptography in blockchain, covering hash functions, encryption types, digital signatures, and elliptic curve applications.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Hash Functions",
          "anchor": "hash-functions"
        },
        {
          "depth": 3,
          "title": "Key Properties of Hash Functions",
          "anchor": "key-properties-of-hash-functions"
        },
        {
          "depth": 3,
          "title": "Blake2",
          "anchor": "blake2"
        },
        {
          "depth": 2,
          "title": "Types of Cryptography",
          "anchor": "types-of-cryptography"
        },
        {
          "depth": 3,
          "title": "Symmetric Cryptography",
          "anchor": "symmetric-cryptography"
        },
        {
          "depth": 3,
          "title": "Asymmetric Cryptography",
          "anchor": "asymmetric-cryptography"
        },
        {
          "depth": 3,
          "title": "Trade-offs and Compromises",
          "anchor": "trade-offs-and-compromises"
        },
        {
          "depth": 2,
          "title": "Digital Signatures",
          "anchor": "digital-signatures"
        },
        {
          "depth": 3,
          "title": "Example of Creating a Digital Signature",
          "anchor": "example-of-creating-a-digital-signature"
        },
        {
          "depth": 2,
          "title": "Elliptic Curve",
          "anchor": "elliptic-curve"
        },
        {
          "depth": 3,
          "title": "Various Implementations",
          "anchor": "various-implementations"
        }
      ],
      "stats": {
        "word_count": 1274,
        "token_estimate": 1736,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:40d07670a7bcbeba4d0137f394de08f29dc755575cc1ea2a8ebca288c2e4f415",
      "last_updated": "2026-04-23T12:21:22+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-data-encoding",
      "title": "Data Encoding",
      "slug": "reference-parachains-data-encoding",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/data-encoding.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/data-encoding/",
      "preview": "SCALE codec enables fast, efficient data encoding, ideal for resource-constrained environments like Wasm, supporting custom types and compact encoding.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "SCALE Codec",
          "anchor": "scale-codec"
        },
        {
          "depth": 3,
          "title": "Encode",
          "anchor": "encode"
        },
        {
          "depth": 3,
          "title": "Decode",
          "anchor": "decode"
        },
        {
          "depth": 3,
          "title": "CompactAs",
          "anchor": "compactas"
        },
        {
          "depth": 3,
          "title": "HasCompact",
          "anchor": "hascompact"
        },
        {
          "depth": 3,
          "title": "EncodeLike",
          "anchor": "encodelike"
        },
        {
          "depth": 3,
          "title": "Data Types",
          "anchor": "data-types"
        },
        {
          "depth": 2,
          "title": "Encode and Decode Rust Trait Implementations",
          "anchor": "encode-and-decode-rust-trait-implementations"
        },
        {
          "depth": 2,
          "title": "SCALE Codec Libraries",
          "anchor": "scale-codec-libraries"
        }
      ],
      "stats": {
        "word_count": 1279,
        "token_estimate": 3106,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:c1b1ffe61a76feae29c001d601eacd14dc2b3e294da093514a1d933628aa2cdc",
      "last_updated": "2026-06-05T18:49:43+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains",
      "title": "Parachains Overview",
      "slug": "reference-parachains",
      "categories": [
        "Basics",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/",
      "preview": "Learn about parachains, specialized blockchains on Polkadot that gain shared security and interoperability. Discover how they work and the tools to build them.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Polkadot SDK: Parachain Architecture",
          "anchor": "polkadot-sdk-parachain-architecture"
        },
        {
          "depth": 3,
          "title": "Substrate: The Foundation",
          "anchor": "substrate-the-foundation"
        },
        {
          "depth": 3,
          "title": "FRAME: Building Blocks for Your Runtime",
          "anchor": "frame-building-blocks-for-your-runtime"
        },
        {
          "depth": 3,
          "title": "Cumulus: Parachain-Specific Functionality",
          "anchor": "cumulus-parachain-specific-functionality"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1012,
        "token_estimate": 1706,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:4420c2a6316058662ff876d3d56cc41bf901bac99661daff6c190e7e1a9e5c95",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-interoperability",
      "title": "Interoperability",
      "slug": "reference-parachains-interoperability",
      "categories": [
        "Basics",
        "Polkadot Protocol",
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/interoperability.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/interoperability/",
      "preview": "Explore the importance of interoperability in the Polkadot ecosystem, covering XCM, bridges, and cross-chain communication.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Why Interoperability Matters",
          "anchor": "why-interoperability-matters"
        },
        {
          "depth": 2,
          "title": "Key Mechanisms for Interoperability",
          "anchor": "key-mechanisms-for-interoperability"
        },
        {
          "depth": 3,
          "title": "Cross-Consensus Messaging (XCM): The Backbone of Communication",
          "anchor": "cross-consensus-messaging-xcm-the-backbone-of-communication"
        },
        {
          "depth": 3,
          "title": "Bridges: Connecting External Networks",
          "anchor": "bridges-connecting-external-networks"
        },
        {
          "depth": 2,
          "title": "The Polkadot Advantage",
          "anchor": "the-polkadot-advantage"
        },
        {
          "depth": 2,
          "title": "Looking Ahead",
          "anchor": "looking-ahead"
        }
      ],
      "stats": {
        "word_count": 581,
        "token_estimate": 763,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:72e1be74aca2fb4ee7bbba4de426997b42024a95b15886ec6a6ece0feea58aef",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-networks",
      "title": "Networks",
      "slug": "reference-parachains-networks",
      "categories": [
        "Basics",
        "Polkadot Protocol",
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/networks.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/networks/",
      "preview": "Explore Polkadot's networks, with Paseo as the official Polkadot TestNet for parachain and dApp development, plus Kusama and Westend for specialized use cases.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Network Overview",
          "anchor": "network-overview"
        },
        {
          "depth": 3,
          "title": "Recommended Development Path",
          "anchor": "recommended-development-path"
        },
        {
          "depth": 3,
          "title": "Alternative Networks",
          "anchor": "alternative-networks"
        },
        {
          "depth": 2,
          "title": "Polkadot MainNet",
          "anchor": "polkadot-mainnet"
        },
        {
          "depth": 2,
          "title": "Polkadot TestNet (Paseo)",
          "anchor": "polkadot-testnet-paseo"
        },
        {
          "depth": 2,
          "title": "Other Networks",
          "anchor": "other-networks"
        },
        {
          "depth": 3,
          "title": "Kusama Network",
          "anchor": "kusama-network"
        },
        {
          "depth": 3,
          "title": "Westend",
          "anchor": "westend"
        },
        {
          "depth": 2,
          "title": "Local Test Networks",
          "anchor": "local-test-networks"
        },
        {
          "depth": 3,
          "title": "Zombienet",
          "anchor": "zombienet"
        },
        {
          "depth": 3,
          "title": "Chopsticks",
          "anchor": "chopsticks"
        }
      ],
      "stats": {
        "word_count": 1497,
        "token_estimate": 2025,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:3c5781d367df932ca11255253b6ff946a269caf3e3b2b29fc3cea524d3636606",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-node-and-runtime",
      "title": "Node and Runtime",
      "slug": "reference-parachains-node-and-runtime",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/node-and-runtime.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/node-and-runtime/",
      "preview": "Learn how Polkadot SDK-based nodes function, how the client and runtime are separated, and how they communicate using SCALE-encoded data.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Architectural Principles",
          "anchor": "architectural-principles"
        },
        {
          "depth": 3,
          "title": "Advantages of this Architecture",
          "anchor": "advantages-of-this-architecture"
        },
        {
          "depth": 2,
          "title": "Node (Client)",
          "anchor": "node-client"
        },
        {
          "depth": 2,
          "title": "Runtime",
          "anchor": "runtime"
        },
        {
          "depth": 3,
          "title": "Characteristics",
          "anchor": "characteristics"
        },
        {
          "depth": 3,
          "title": "Key Functions",
          "anchor": "key-functions"
        },
        {
          "depth": 2,
          "title": "Communication Between Node and Runtime",
          "anchor": "communication-between-node-and-runtime"
        },
        {
          "depth": 3,
          "title": "Runtime APIs",
          "anchor": "runtime-apis"
        },
        {
          "depth": 3,
          "title": "Host Functions",
          "anchor": "host-functions"
        }
      ],
      "stats": {
        "word_count": 621,
        "token_estimate": 901,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:7713ea77c4631525511f4bcf4dbe10506b8b806acc92a2b72a4557f518460442",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-parachains-randomness",
      "title": "Randomness",
      "slug": "reference-parachains-randomness",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/parachains/randomness.md",
      "html_url": "https://docs.polkadot.com/reference/parachains/randomness/",
      "preview": "Explore the importance of randomness in PoS blockchains, focusing on Polkadot’s VRF-based approach to ensure fairness and security in validator selection.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "VRF",
          "anchor": "vrf"
        },
        {
          "depth": 3,
          "title": "How VRF Works",
          "anchor": "how-vrf-works"
        },
        {
          "depth": 2,
          "title": "RANDAO",
          "anchor": "randao"
        },
        {
          "depth": 2,
          "title": "VDFs",
          "anchor": "vdfs"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        }
      ],
      "stats": {
        "word_count": 986,
        "token_estimate": 1336,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:e7d5de8207c507e8305224bd244333575155d0391ee6e8ae0db9ea9628c45b0e",
      "last_updated": "2026-04-23T12:21:22+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-assets",
      "title": "Polkadot Hub Assets",
      "slug": "reference-polkadot-hub-assets",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/assets.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/assets/",
      "preview": "Learn about asset management on Polkadot Hub, including on-chain assets, foreign asset integration, and XCM for cross-chain asset transfers.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Why Use Polkadot Hub?",
          "anchor": "why-use-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Types of Assets",
          "anchor": "types-of-assets"
        },
        {
          "depth": 2,
          "title": "Asset Structure",
          "anchor": "asset-structure"
        },
        {
          "depth": 2,
          "title": "Common Asset IDs",
          "anchor": "common-asset-ids"
        },
        {
          "depth": 2,
          "title": "How Native Assets Work",
          "anchor": "how-native-assets-work"
        },
        {
          "depth": 3,
          "title": "Asset Operations",
          "anchor": "asset-operations"
        },
        {
          "depth": 3,
          "title": "Roles and Permissions",
          "anchor": "roles-and-permissions"
        },
        {
          "depth": 3,
          "title": "Freezing Assets",
          "anchor": "freezing-assets"
        },
        {
          "depth": 3,
          "title": "Delegated Transfers",
          "anchor": "delegated-transfers"
        },
        {
          "depth": 2,
          "title": "How Foreign Assets Work",
          "anchor": "how-foreign-assets-work"
        },
        {
          "depth": 2,
          "title": "Moving Assets Across Chains",
          "anchor": "moving-assets-across-chains"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1241,
        "token_estimate": 1824,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:69067fa60ec15d3799301424145f3ce1a066594a38fa707a2492cb3353baeaeb",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-bridging",
      "title": "Bridge Hub",
      "slug": "reference-polkadot-hub-bridging",
      "categories": [
        "Polkadot Protocol",
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/bridging.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/bridging/",
      "preview": "Learn about the Bridge Hub system parachain, a parachain that facilitates the interactions from Polkadot to the rest of Web3.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Trustless Bridging",
          "anchor": "trustless-bridging"
        },
        {
          "depth": 2,
          "title": "Bridging Components",
          "anchor": "bridging-components"
        },
        {
          "depth": 3,
          "title": "Ethereum-Specific Support",
          "anchor": "ethereum-specific-support"
        },
        {
          "depth": 2,
          "title": "Deployed Bridges",
          "anchor": "deployed-bridges"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 739,
        "token_estimate": 1111,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:035748e377875271924b7699c1dfef9ea7ed6d40a3e36c544039b0131cc4b252",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-collectives-and-daos",
      "title": "Collectives Chain",
      "slug": "reference-polkadot-hub-collectives-and-daos",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/collectives-and-daos.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/collectives-and-daos/",
      "preview": "Learn how the Collectives chain provides infrastructure for governance organizations, enabling decentralized network stewardship and decision-making.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Key Collectives",
          "anchor": "key-collectives"
        }
      ],
      "stats": {
        "word_count": 282,
        "token_estimate": 395,
        "headings": 2,
        "sections_indexed": 2
      },
      "version_hash": "sha256:22a8f12553210d4af5bbdd55b75a1dcb778a1375948d357e22233436c5577f8d",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-consensus-and-security-agile-coretime",
      "title": "Agile Coretime",
      "slug": "reference-polkadot-hub-consensus-and-security-agile-coretime",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/consensus-and-security/agile-coretime.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/consensus-and-security/agile-coretime/",
      "preview": "Explore the efficient scheduling mechanisms to access Polkadot cores to produce blockspace continuously or on-demand.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Bulk Coretime",
          "anchor": "bulk-coretime"
        },
        {
          "depth": 3,
          "title": "Coretime Interlacing",
          "anchor": "coretime-interlacing"
        },
        {
          "depth": 3,
          "title": "Coretime Splitting",
          "anchor": "coretime-splitting"
        },
        {
          "depth": 2,
          "title": "On-Demand Coretime",
          "anchor": "on-demand-coretime"
        }
      ],
      "stats": {
        "word_count": 454,
        "token_estimate": 622,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:d739dc73d7341abb699841519248ac4b1b4f02e41b08b21bc76ab8c590221a84",
      "last_updated": "2026-06-22T15:10:09+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-consensus-and-security-pos-consensus",
      "title": "Proof of Stake Consensus",
      "slug": "reference-polkadot-hub-consensus-and-security-pos-consensus",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/consensus-and-security/pos-consensus.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/consensus-and-security/pos-consensus/",
      "preview": "Explore Polkadot's consensus protocols for secure, scalable, and decentralized network operation, including NPoS, BABE, GRANDPA, and BEEFY.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Nominated Proof of Stake",
          "anchor": "nominated-proof-of-stake"
        },
        {
          "depth": 2,
          "title": "Hybrid Consensus",
          "anchor": "hybrid-consensus"
        },
        {
          "depth": 2,
          "title": "Block Production - BABE",
          "anchor": "block-production-babe"
        },
        {
          "depth": 3,
          "title": "Validator Participation",
          "anchor": "validator-participation"
        },
        {
          "depth": 3,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        },
        {
          "depth": 2,
          "title": "Finality Gadget - GRANDPA",
          "anchor": "finality-gadget-grandpa"
        },
        {
          "depth": 3,
          "title": "Probabilistic vs. Provable Finality",
          "anchor": "probabilistic-vs-provable-finality"
        },
        {
          "depth": 3,
          "title": "Additional Resources",
          "anchor": "additional-resources-2"
        },
        {
          "depth": 2,
          "title": "Fork Choice",
          "anchor": "fork-choice"
        },
        {
          "depth": 3,
          "title": "Additional Resources",
          "anchor": "additional-resources-3"
        },
        {
          "depth": 2,
          "title": "Bridging - BEEFY",
          "anchor": "bridging-beefy"
        }
      ],
      "stats": {
        "word_count": 1727,
        "token_estimate": 2293,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:7c3cfbb5b8353213a244ae0370322443ce11c1bdab0f219a0b6e775c48faa131",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-consensus-and-security-relay-chain",
      "title": "Overview of the Polkadot Relay Chain",
      "slug": "reference-polkadot-hub-consensus-and-security-relay-chain",
      "categories": [
        "Basics",
        "Polkadot Protocol",
        "Parachains"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/consensus-and-security/relay-chain.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/consensus-and-security/relay-chain/",
      "preview": "Explore Polkadot's core architecture, including its multi-chain vision, shared security, and the DOT token's governance and staking roles.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Polkadot 1.0",
          "anchor": "polkadot-10"
        },
        {
          "depth": 3,
          "title": "High-Level Architecture",
          "anchor": "high-level-architecture"
        },
        {
          "depth": 3,
          "title": "Polkadot's Additional Functionalities",
          "anchor": "polkadots-additional-functionalities"
        },
        {
          "depth": 3,
          "title": "Polkadot's Resilience",
          "anchor": "polkadots-resilience"
        },
        {
          "depth": 3,
          "title": "Polkadot's Blockspace",
          "anchor": "polkadots-blockspace"
        },
        {
          "depth": 2,
          "title": "DOT Token",
          "anchor": "dot-token"
        },
        {
          "depth": 3,
          "title": "Redenomination of DOT",
          "anchor": "redenomination-of-dot"
        },
        {
          "depth": 3,
          "title": "The Planck Unit",
          "anchor": "the-planck-unit"
        },
        {
          "depth": 3,
          "title": "Uses for DOT",
          "anchor": "uses-for-dot"
        },
        {
          "depth": 2,
          "title": "JAM and the Road Ahead",
          "anchor": "jam-and-the-road-ahead"
        }
      ],
      "stats": {
        "word_count": 1705,
        "token_estimate": 2391,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:0859be89440366a78bd1d2c522b62b9294a357f3803dc4bab10f55eae2abf498",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-data-storage",
      "title": "Data Storage",
      "slug": "reference-polkadot-hub-data-storage",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/data-storage.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/data-storage/",
      "preview": "Technical reference for the Polkadot Bulletin Chain, a specialized data storage chain with IPFS-compatible content addressing for the Polkadot ecosystem.",
      "outline": [
        {
          "depth": 2,
          "title": "Use Cases",
          "anchor": "use-cases"
        },
        {
          "depth": 2,
          "title": "Key Concepts",
          "anchor": "key-concepts"
        },
        {
          "depth": 2,
          "title": "Authorization",
          "anchor": "authorization"
        },
        {
          "depth": 3,
          "title": "Who Grants Authorization",
          "anchor": "who-grants-authorization"
        },
        {
          "depth": 3,
          "title": "Account Authorization",
          "anchor": "account-authorization"
        },
        {
          "depth": 3,
          "title": "Preimage Authorization",
          "anchor": "preimage-authorization"
        },
        {
          "depth": 3,
          "title": "Capacity Planning",
          "anchor": "capacity-planning"
        },
        {
          "depth": 2,
          "title": "Transaction Storage Pallet",
          "anchor": "transaction-storage-pallet"
        },
        {
          "depth": 2,
          "title": "IPFS Integration and Data Retrieval",
          "anchor": "ipfs-integration-and-data-retrieval"
        },
        {
          "depth": 3,
          "title": "How It Works",
          "anchor": "how-it-works"
        },
        {
          "depth": 3,
          "title": "Retrieval Methods",
          "anchor": "retrieval-methods"
        },
        {
          "depth": 2,
          "title": "Data Lifecycle",
          "anchor": "data-lifecycle"
        },
        {
          "depth": 2,
          "title": "Size Limits",
          "anchor": "size-limits"
        },
        {
          "depth": 2,
          "title": "Network Endpoints",
          "anchor": "network-endpoints"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1620,
        "token_estimate": 2590,
        "headings": 15,
        "sections_indexed": 15
      },
      "version_hash": "sha256:701f067a466fe1b5ce2065017675d5ca527dff4e0062b45517c3ddc4c29077b7",
      "last_updated": "2026-04-23T12:21:22+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub",
      "title": "Polkadot Hub Overview",
      "slug": "reference-polkadot-hub",
      "categories": [
        "Basics",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/",
      "preview": "Learn how Polkadot Hub serves as the entry point to Polkadot, providing access to smart contracts, staking, governance, identity management, and cross-ecosystem interoperability.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Polkadot Hub Capabilities",
          "anchor": "polkadot-hub-capabilities"
        },
        {
          "depth": 2,
          "title": "Core Components",
          "anchor": "core-components"
        },
        {
          "depth": 3,
          "title": "Smart Contracts",
          "anchor": "smart-contracts"
        },
        {
          "depth": 3,
          "title": "Asset Management",
          "anchor": "asset-management"
        },
        {
          "depth": 3,
          "title": "People Chain",
          "anchor": "people-chain"
        },
        {
          "depth": 3,
          "title": "Bridge Hub",
          "anchor": "bridge-hub"
        },
        {
          "depth": 3,
          "title": "Consensus & Security",
          "anchor": "consensus-security"
        },
        {
          "depth": 3,
          "title": "Collectives & DAOs",
          "anchor": "collectives-daos"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 808,
        "token_estimate": 1209,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:9446faf408431203779c64f746efb53c9652095a368ad9b3da2b161b1ff43513",
      "last_updated": "2026-04-01T02:33:47+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-people-and-identity",
      "title": "People Chain",
      "slug": "reference-polkadot-hub-people-and-identity",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/people-and-identity.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/people-and-identity/",
      "preview": "Learn how People chain secures decentralized identity management, empowering users to control and verify digital identities without central authorities.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Identity Management System",
          "anchor": "identity-management-system"
        },
        {
          "depth": 3,
          "title": "Sub-Identities",
          "anchor": "sub-identities"
        },
        {
          "depth": 2,
          "title": "Verification Process",
          "anchor": "verification-process"
        },
        {
          "depth": 3,
          "title": "Judgment Requests",
          "anchor": "judgment-requests"
        },
        {
          "depth": 3,
          "title": "Judgment Classifications",
          "anchor": "judgment-classifications"
        },
        {
          "depth": 3,
          "title": "Registrars",
          "anchor": "registrars"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 606,
        "token_estimate": 879,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:e1ee302b7b89f14716a94d1f3bf67a551776792828b5996aa8f2d0ac7eb34a1b",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-polkadot-hub-smart-contracts",
      "title": "Polkadot Hub Smart Contracts",
      "slug": "reference-polkadot-hub-smart-contracts",
      "categories": [
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/polkadot-hub/smart-contracts.md",
      "html_url": "https://docs.polkadot.com/reference/polkadot-hub/smart-contracts/",
      "preview": "Learn how Polkadot Hub supports smart contracts through the REVM, a Rust-based Ethereum Virtual Machine compatible runtime.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "REVM Smart Contracts",
          "anchor": "revm-smart-contracts"
        },
        {
          "depth": 3,
          "title": "PVM Smart Contracts",
          "anchor": "pvm-smart-contracts"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 448,
        "token_estimate": 648,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:6d4aeddfc6a457f54d30fdbefdc4c8cf953d7b09024449c6402e41c24908414e",
      "last_updated": "2026-01-14T11:42:16+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-chopsticks",
      "title": "Chopsticks",
      "slug": "reference-tools-chopsticks",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/chopsticks.md",
      "html_url": "https://docs.polkadot.com/reference/tools/chopsticks/",
      "preview": "Chopsticks is a versatile tool for forking live Polkadot SDK chains, enabling local testing, block replay, and XCM simulation without deploying to live networks.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "Key Features",
          "anchor": "key-features"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 3,
          "title": "Global Installation",
          "anchor": "global-installation"
        },
        {
          "depth": 3,
          "title": "Local Installation",
          "anchor": "local-installation"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "Configuration Options",
          "anchor": "configuration-options"
        },
        {
          "depth": 3,
          "title": "Configuration File",
          "anchor": "configuration-file"
        },
        {
          "depth": 3,
          "title": "Create a Fork",
          "anchor": "create-a-fork"
        },
        {
          "depth": 3,
          "title": "Interact with a Fork",
          "anchor": "interact-with-a-fork"
        },
        {
          "depth": 3,
          "title": "Replay Blocks",
          "anchor": "replay-blocks"
        },
        {
          "depth": 3,
          "title": "Test XCM",
          "anchor": "test-xcm"
        },
        {
          "depth": 2,
          "title": "WebSocket Commands",
          "anchor": "websocket-commands"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1944,
        "token_estimate": 3718,
        "headings": 15,
        "sections_indexed": 15
      },
      "version_hash": "sha256:330af8a28f5dfe5c56c4f5e50f5fa7dc25f8cff75029b407eab939f6e7b2da9f",
      "last_updated": "2026-02-09T14:37:20+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-dedot",
      "title": "Dedot",
      "slug": "reference-tools-dedot",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/dedot.md",
      "html_url": "https://docs.polkadot.com/reference/tools/dedot/",
      "preview": "Dedot is a next-gen JavaScript client for Polkadot and Polkadot SDK-based blockchains, offering lightweight, tree-shakable APIs with strong TypeScript support.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "Key Features",
          "anchor": "key-features"
        },
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "Initialize a Client Instance",
          "anchor": "initialize-a-client-instance"
        },
        {
          "depth": 3,
          "title": "Enable Type and API Suggestions",
          "anchor": "enable-type-and-api-suggestions"
        },
        {
          "depth": 3,
          "title": "Read On-Chain Data",
          "anchor": "read-on-chain-data"
        },
        {
          "depth": 3,
          "title": "Sign and Send Transactions",
          "anchor": "sign-and-send-transactions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1022,
        "token_estimate": 2117,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:70ad2998d40d2d6590e2d6551ebdc0c1ffb819b9d1248ac82f5ac5ef33664d57",
      "last_updated": "2026-06-17T08:07:57+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-light-clients",
      "title": "Light Clients",
      "slug": "reference-tools-light-clients",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/light-clients.md",
      "html_url": "https://docs.polkadot.com/reference/tools/light-clients/",
      "preview": "Light clients enable secure and efficient blockchain interaction without running a full node. Learn everything you need to know about light clients on Polkadot.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Light Clients Workflow",
          "anchor": "light-clients-workflow"
        },
        {
          "depth": 2,
          "title": "JSON-RPC and Light Client Comparison",
          "anchor": "json-rpc-and-light-client-comparison"
        },
        {
          "depth": 2,
          "title": "Using Light Clients",
          "anchor": "using-light-clients"
        },
        {
          "depth": 3,
          "title": "PAPI Light Client Support",
          "anchor": "papi-light-client-support"
        },
        {
          "depth": 3,
          "title": "Substrate Connect - Browser Extension",
          "anchor": "substrate-connect-browser-extension"
        },
        {
          "depth": 2,
          "title": "Resources",
          "anchor": "resources"
        }
      ],
      "stats": {
        "word_count": 788,
        "token_estimate": 1231,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:3598528fa6c9d56bf706644fce15aff4f6e29292fabb4a854a17e71ab24aaba0",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-moonwall",
      "title": "E2E Testing with Moonwall",
      "slug": "reference-tools-moonwall",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/moonwall.md",
      "html_url": "https://docs.polkadot.com/reference/tools/moonwall/",
      "preview": "Enhance blockchain end-to-end testing with Moonwall's standardized environment setup, comprehensive configuration management, and simple network interactions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install Moonwall",
          "anchor": "install-moonwall"
        },
        {
          "depth": 3,
          "title": "Global Installation",
          "anchor": "global-installation"
        },
        {
          "depth": 3,
          "title": "Local Installation",
          "anchor": "local-installation"
        },
        {
          "depth": 2,
          "title": "Initialize Moonwall",
          "anchor": "initialize-moonwall"
        },
        {
          "depth": 2,
          "title": "Writing Tests",
          "anchor": "writing-tests"
        },
        {
          "depth": 2,
          "title": "Running the Tests",
          "anchor": "running-the-tests"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1276,
        "token_estimate": 2402,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:34a3f5608ed7f7178437e625c8954da48c7d2f58631c61181cd482ddba4a5996",
      "last_updated": "2026-02-10T12:46:15+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-omninode",
      "title": "Polkadot Omni Node",
      "slug": "reference-tools-omninode",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/omninode.md",
      "html_url": "https://docs.polkadot.com/reference/tools/omninode/",
      "preview": "Run parachain nodes easily with the polkadot-omni-node, a white-labeled binary that can run parachain nodes using a single pre-built solution.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Install Polkadot Omni Node",
          "anchor": "install-polkadot-omni-node"
        },
        {
          "depth": 2,
          "title": "Obtain Chain Specifications",
          "anchor": "obtain-chain-specifications"
        },
        {
          "depth": 2,
          "title": "Run a Parachain Full Node",
          "anchor": "run-a-parachain-full-node"
        },
        {
          "depth": 2,
          "title": "Interact with the Node",
          "anchor": "interact-with-the-node"
        },
        {
          "depth": 2,
          "title": "Parachain Compatibility",
          "anchor": "parachain-compatibility"
        },
        {
          "depth": 3,
          "title": "Required Runtime APIs",
          "anchor": "required-runtime-apis"
        },
        {
          "depth": 3,
          "title": "Required Pallets",
          "anchor": "required-pallets"
        }
      ],
      "stats": {
        "word_count": 1197,
        "token_estimate": 2069,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:aea90c046fb794120450dd27e77e47af0bd64f4754373b2898919083339aee3b",
      "last_updated": "2026-05-27T20:25:14+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-papi",
      "title": "Polkadot-API",
      "slug": "reference-tools-papi",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/papi.md",
      "html_url": "https://docs.polkadot.com/reference/tools/papi/",
      "preview": "Polkadot-API (PAPI) is a modular, composable library set designed for efficient interaction with Polkadot chains, prioritizing a \"light-client first\" approach.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "API Instantiation",
          "anchor": "api-instantiation"
        },
        {
          "depth": 3,
          "title": "Reading Chain Data",
          "anchor": "reading-chain-data"
        },
        {
          "depth": 3,
          "title": "Sending Transactions",
          "anchor": "sending-transactions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1102,
        "token_estimate": 1906,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:6e89643e85857a6be8ee89bb5b09868ac161954274c4a17d6c09f3d90eb237ac",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-paraspell",
      "title": "ParaSpell XCM SDK",
      "slug": "reference-tools-paraspell",
      "categories": [
        "Tooling",
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/paraspell.md",
      "html_url": "https://docs.polkadot.com/reference/tools/paraspell/",
      "preview": "A powerful open-source library that simplifies XCM integration, enabling developers to easily build interoperable dApps on Polkadot.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "ParaSpell XCM SDK",
          "anchor": "paraspell-xcm-sdk"
        },
        {
          "depth": 2,
          "title": "Install ParaSpell",
          "anchor": "install-paraspell"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 545,
        "token_estimate": 840,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:51be47f39b3d11f4ea3a892d5a2696d7557cd184da57c534e08e22f467cecbb8",
      "last_updated": "2026-04-23T12:21:22+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-polkadart",
      "title": "Polkadart",
      "slug": "reference-tools-polkadart",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/polkadart.md",
      "html_url": "https://docs.polkadot.com/reference/tools/polkadart/",
      "preview": "Polkadart is a type-safe, native Dart, SDK for Polkadot and any compatible Polkadot-SDK blockchain network.",
      "outline": [
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "Type Generation",
          "anchor": "type-generation"
        },
        {
          "depth": 3,
          "title": "Run Generator",
          "anchor": "run-generator"
        },
        {
          "depth": 3,
          "title": "Use Generated Types",
          "anchor": "use-generated-types"
        },
        {
          "depth": 3,
          "title": "Creating an API Instance",
          "anchor": "creating-an-api-instance"
        },
        {
          "depth": 3,
          "title": "Reading Chain Data",
          "anchor": "reading-chain-data"
        },
        {
          "depth": 3,
          "title": "Subscribe to New Blocks",
          "anchor": "subscribe-to-new-blocks"
        },
        {
          "depth": 3,
          "title": "Send a Transaction",
          "anchor": "send-a-transaction"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 611,
        "token_estimate": 1129,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:2f649e5d6879783feea7cc05c38390e225bcf540c5d4590c2e873c86ead71347",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-polkadot-js-api",
      "title": "Polkadot.js API",
      "slug": "reference-tools-polkadot-js-api",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/polkadot-js-api.md",
      "html_url": "https://docs.polkadot.com/reference/tools/polkadot-js-api/",
      "preview": "Interact with Polkadot SDK-based chains easily using the Polkadot.js API. Query chain data, submit transactions, and more via JavaScript or Typescript.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "Dynamic API Generation",
          "anchor": "dynamic-api-generation"
        },
        {
          "depth": 3,
          "title": "Available API Categories",
          "anchor": "available-api-categories"
        },
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "Creating an API Instance",
          "anchor": "creating-an-api-instance"
        },
        {
          "depth": 3,
          "title": "Reading Chain Data",
          "anchor": "reading-chain-data"
        },
        {
          "depth": 3,
          "title": "Sending Transactions",
          "anchor": "sending-transactions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 662,
        "token_estimate": 1204,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:9fc70d41a2966ea719ac504996be7641b5c89dffd38b77e25f2207cfe2b124c4",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-pop-cli",
      "title": "Quickstart Parachain Development with Pop CLI",
      "slug": "reference-tools-pop-cli",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/pop-cli.md",
      "html_url": "https://docs.polkadot.com/reference/tools/pop-cli/",
      "preview": "Quickly bootstrap parachain projects, scaffold templates, deploy local networks, and streamline development workflows using Pop CLI.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 3,
          "title": "Install Pop CLI",
          "anchor": "install-pop-cli"
        },
        {
          "depth": 3,
          "title": "Set Up Your Development Environment",
          "anchor": "set-up-your-development-environment"
        },
        {
          "depth": 3,
          "title": "Initialize a Project",
          "anchor": "initialize-a-project"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 598,
        "token_estimate": 968,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:403fcb601811597709be71d666786fe51a281108d79645095dfb49a3fee9ba9a",
      "last_updated": "2026-06-17T08:07:57+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-py-substrate-interface",
      "title": "Python Substrate Interface",
      "slug": "reference-tools-py-substrate-interface",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/py-substrate-interface.md",
      "html_url": "https://docs.polkadot.com/reference/tools/py-substrate-interface/",
      "preview": "Learn how to connect to Polkadot SDK-based nodes, query data, submit transactions, and manage blockchain interactions using the Python Substrate Interface.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "Establishing Connection",
          "anchor": "establishing-connection"
        },
        {
          "depth": 3,
          "title": "Reading Chain State",
          "anchor": "reading-chain-state"
        },
        {
          "depth": 3,
          "title": "Submitting Transactions",
          "anchor": "submitting-transactions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 533,
        "token_estimate": 922,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:f479a4ee11d2a7b0096b00f5817a6c4974fd5add4330f6a8aa7e46facdb8d657",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-sidecar",
      "title": "Sidecar REST API",
      "slug": "reference-tools-sidecar",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/sidecar.md",
      "html_url": "https://docs.polkadot.com/reference/tools/sidecar/",
      "preview": "Learn about Substrate API Sidecar, a REST service that provides endpoints for interacting with Polkadot SDK-based chains and simplifies blockchain interactions.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 2,
          "title": "Usage",
          "anchor": "usage"
        },
        {
          "depth": 3,
          "title": "Endpoints",
          "anchor": "endpoints"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1017,
        "token_estimate": 1900,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:bc1148bab35d445ae8aff8d15da9f2ecc6f4d85faaf00c7783c5c652a24090d7",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-subxt",
      "title": "Subxt Rust API",
      "slug": "reference-tools-subxt",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/subxt.md",
      "html_url": "https://docs.polkadot.com/reference/tools/subxt/",
      "preview": "Subxt is a Rust library for type-safe interaction with Polkadot SDK blockchains, enabling transactions, state queries, runtime API access, and more.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Installation",
          "anchor": "installation"
        },
        {
          "depth": 2,
          "title": "Get Started",
          "anchor": "get-started"
        },
        {
          "depth": 3,
          "title": "Download Chain Metadata",
          "anchor": "download-chain-metadata"
        },
        {
          "depth": 3,
          "title": "Generate Type-Safe Interfaces",
          "anchor": "generate-type-safe-interfaces"
        },
        {
          "depth": 3,
          "title": "Initialize the Subxt Client",
          "anchor": "initialize-the-subxt-client"
        },
        {
          "depth": 3,
          "title": "Read Chain Data",
          "anchor": "read-chain-data"
        },
        {
          "depth": 3,
          "title": "Submit Transactions",
          "anchor": "submit-transactions"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1139,
        "token_estimate": 2071,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:0ad620158d52b9f9a177890f8ab86597713338513b053fd34dbbc25c78df9550",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-xcm-tools",
      "title": "XCM Tools",
      "slug": "reference-tools-xcm-tools",
      "categories": [
        "Tooling",
        "Interoperability"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/xcm-tools.md",
      "html_url": "https://docs.polkadot.com/reference/tools/xcm-tools/",
      "preview": "Explore essential XCM tools across Polkadot, crafted to enhance cross-chain functionality and integration within the ecosystem.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Popular XCM Tools",
          "anchor": "popular-xcm-tools"
        },
        {
          "depth": 3,
          "title": "Moonsong Labs XCM Tools",
          "anchor": "moonsong-labs-xcm-tools"
        },
        {
          "depth": 3,
          "title": "ParaSpell",
          "anchor": "paraspell"
        },
        {
          "depth": 3,
          "title": "Astar XCM Tools",
          "anchor": "astar-xcm-tools"
        },
        {
          "depth": 3,
          "title": "Chopsticks",
          "anchor": "chopsticks"
        },
        {
          "depth": 3,
          "title": "Moonbeam XCM SDK",
          "anchor": "moonbeam-xcm-sdk"
        }
      ],
      "stats": {
        "word_count": 830,
        "token_estimate": 1303,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:ca67b2d70beb2f434841525ad8055efb703d40ffd6904dc831de5ef1e9fd5a5e",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "reference-tools-zombienet",
      "title": "Zombienet",
      "slug": "reference-tools-zombienet",
      "categories": [
        "Parachains",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/reference/tools/zombienet.md",
      "html_url": "https://docs.polkadot.com/reference/tools/zombienet/",
      "preview": "Zombienet is a testing framework for Polkadot SDK-based blockchain networks, enabling developers to deploy and test ephemeral environments across various platforms.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Install Zombienet",
          "anchor": "install-zombienet"
        },
        {
          "depth": 2,
          "title": "Providers",
          "anchor": "providers"
        },
        {
          "depth": 3,
          "title": "Kubernetes",
          "anchor": "kubernetes"
        },
        {
          "depth": 3,
          "title": "Podman",
          "anchor": "podman"
        },
        {
          "depth": 3,
          "title": "Native",
          "anchor": "native"
        },
        {
          "depth": 2,
          "title": "Configure Zombienet",
          "anchor": "configure-zombienet"
        },
        {
          "depth": 3,
          "title": "Basic Configuration",
          "anchor": "basic-configuration"
        },
        {
          "depth": 3,
          "title": "CLI Commands",
          "anchor": "cli-commands"
        },
        {
          "depth": 3,
          "title": "Settings",
          "anchor": "settings"
        },
        {
          "depth": 3,
          "title": "Relay Chain Configuration",
          "anchor": "relay-chain-configuration"
        },
        {
          "depth": 3,
          "title": "Parachain Configuration",
          "anchor": "parachain-configuration"
        },
        {
          "depth": 3,
          "title": "XCM Configuration",
          "anchor": "xcm-configuration"
        },
        {
          "depth": 2,
          "title": "Spawn a Network",
          "anchor": "spawn-a-network"
        },
        {
          "depth": 2,
          "title": "Write Tests",
          "anchor": "write-tests"
        },
        {
          "depth": 3,
          "title": "Test File Structure",
          "anchor": "test-file-structure"
        },
        {
          "depth": 3,
          "title": "Run Tests",
          "anchor": "run-tests"
        },
        {
          "depth": 3,
          "title": "Common Assertions",
          "anchor": "common-assertions"
        },
        {
          "depth": 2,
          "title": "Configuration Reference",
          "anchor": "configuration-reference"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3789,
        "token_estimate": 9020,
        "headings": 20,
        "sections_indexed": 20
      },
      "version_hash": "sha256:0ce9dc154b2def1b737973ea2f2ccff07c46f843dae9d5688854f34d9f8f2262",
      "last_updated": "2026-03-16T21:04:56+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-connect",
      "title": "Connect to Polkadot",
      "slug": "smart-contracts-connect",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/connect.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/connect/",
      "preview": "Explore how to connect to Polkadot Hub, configure your wallet, and obtain test tokens for developing and testing smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Networks Details",
          "anchor": "networks-details"
        },
        {
          "depth": 2,
          "title": "Test Tokens",
          "anchor": "test-tokens"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 645,
        "token_estimate": 1243,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:b4007a8078553990eaa6edd18f6784aadec548eb4687e7fddd6f1e093408635c",
      "last_updated": "2026-02-26T12:14:54+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-dapps-zero-to-hero",
      "title": "Zero to Hero Smart Contract DApp",
      "slug": "smart-contracts-cookbook-dapps-zero-to-hero",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/dapps/zero-to-hero.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/dapps/zero-to-hero/",
      "preview": "Learn how to build a decentralized application on Polkadot Hub using Viem and Next.js by creating a simple dApp that interacts with a smart contract.",
      "outline": [
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Project Overview",
          "anchor": "project-overview"
        },
        {
          "depth": 2,
          "title": "Create and Deploy the Storage Contract",
          "anchor": "create-and-deploy-the-storage-contract"
        },
        {
          "depth": 3,
          "title": "Set Up Hardhat Project",
          "anchor": "set-up-hardhat-project"
        },
        {
          "depth": 3,
          "title": "Create the Storage Contract",
          "anchor": "create-the-storage-contract"
        },
        {
          "depth": 3,
          "title": "Configure Hardhat for Polkadot Hub",
          "anchor": "configure-hardhat-for-polkadot-hub"
        },
        {
          "depth": 3,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 3,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 3,
          "title": "Export the Contract ABI",
          "anchor": "export-the-contract-abi"
        },
        {
          "depth": 2,
          "title": "Set Up the DApp Project",
          "anchor": "set-up-the-dapp-project"
        },
        {
          "depth": 2,
          "title": "Install Dependencies",
          "anchor": "install-dependencies"
        },
        {
          "depth": 2,
          "title": "Connect to Polkadot Hub",
          "anchor": "connect-to-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Set Up the Smart Contract Interface",
          "anchor": "set-up-the-smart-contract-interface"
        },
        {
          "depth": 2,
          "title": "Create the Wallet Connection Component",
          "anchor": "create-the-wallet-connection-component"
        },
        {
          "depth": 2,
          "title": "Create the Read Contract Component",
          "anchor": "create-the-read-contract-component"
        },
        {
          "depth": 2,
          "title": "Create the Write Contract Component",
          "anchor": "create-the-write-contract-component"
        },
        {
          "depth": 2,
          "title": "How It Works",
          "anchor": "how-it-works"
        },
        {
          "depth": 3,
          "title": "Wallet Connection",
          "anchor": "wallet-connection"
        },
        {
          "depth": 3,
          "title": "Data Reads",
          "anchor": "data-reads"
        },
        {
          "depth": 3,
          "title": "Data Writes",
          "anchor": "data-writes"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3357,
        "token_estimate": 6414,
        "headings": 22,
        "sections_indexed": 22
      },
      "version_hash": "sha256:750ca67f09d91388004f000a6c9f2ebfa9c2dd9029acafd6857d663f5bbe1822",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v2-core-v2-pvm",
      "title": "Deploying Uniswap V2 Core on Polkadot",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v2-core-v2-pvm",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/core-v2-pvm.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/core-v2-pvm/",
      "preview": "Learn how to deploy and test Uniswap V2 Core on Polkadot Hub using Hardhat, bringing AMM-based token swaps to the Polkadot ecosystem.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Understanding Uniswap V2 Architecture",
          "anchor": "understanding-uniswap-v2-architecture"
        },
        {
          "depth": 2,
          "title": "Test the Contracts",
          "anchor": "test-the-contracts"
        },
        {
          "depth": 2,
          "title": "Deploy the Contracts",
          "anchor": "deploy-the-contracts"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 1432,
        "token_estimate": 2463,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:6c162154b899f8fd25746d55d26cd0684608a722242c3ad31220e79b2c8ba346",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v2-core-v2",
      "title": "Uniswap V2 Core with EVM on Polkadot",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v2-core-v2",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/core-v2.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/core-v2/",
      "preview": "Deploy and test unmodified Uniswap V2 Core contracts on Polkadot Hub using standard Hardhat and TypeScript with the EVM execution path.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Configure Secure Key Management",
          "anchor": "configure-secure-key-management"
        },
        {
          "depth": 2,
          "title": "Uniswap V2 Core Architecture",
          "anchor": "uniswap-v2-core-architecture"
        },
        {
          "depth": 2,
          "title": "Test the Contracts",
          "anchor": "test-the-contracts"
        },
        {
          "depth": 2,
          "title": "Deploy the Contracts",
          "anchor": "deploy-the-contracts"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1636,
        "token_estimate": 2941,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:d95a41e621ce470cf91fee4f05bcc24f99b91f4d2bdfccb80432c142976779ea",
      "last_updated": "2026-06-08T14:49:30+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v2",
      "title": "Uniswap V2 on Polkadot",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v2",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/",
      "preview": "Deploy and test the full Uniswap V2 stack on Polkadot Hub — from core AMM contracts to periphery router interfaces — using standard Ethereum tooling.",
      "outline": [
        {
          "depth": 2,
          "title": "Tutorials",
          "anchor": "tutorials"
        }
      ],
      "stats": {
        "word_count": 176,
        "token_estimate": 268,
        "headings": 1,
        "sections_indexed": 1
      },
      "version_hash": "sha256:ae54d408bc7e58080cbf2fe24c30618f80a66f6a45565bfd3ef0a2cd44a0984d",
      "last_updated": "2026-04-23T12:21:22+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v2-periphery-v2",
      "title": "Uniswap V2 Periphery with EVM on Polkadot",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v2-periphery-v2",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/periphery-v2.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v2/periphery-v2/",
      "preview": "Deploy and test unmodified Uniswap V2 Periphery Router contracts on Polkadot Hub using standard Hardhat and TypeScript with the EVM execution path.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Configure Secure Key Management",
          "anchor": "configure-secure-key-management"
        },
        {
          "depth": 2,
          "title": "Uniswap V2 Periphery Architecture",
          "anchor": "uniswap-v2-periphery-architecture"
        },
        {
          "depth": 2,
          "title": "Test the Contracts",
          "anchor": "test-the-contracts"
        },
        {
          "depth": 2,
          "title": "Deploy the Contracts",
          "anchor": "deploy-the-contracts"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2065,
        "token_estimate": 3807,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:a9f58d3b51713dd4c1921f1b9cf7ed135181f8d3af72f0c8c42c3c977f68ea60",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v3-core-v3",
      "title": "Uniswap V3 Core with EVM on Polkadot Hub",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v3-core-v3",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v3/core-v3.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v3/core-v3/",
      "preview": "Deploy and test unmodified Uniswap V3 Core contracts on Polkadot Hub using standard Hardhat and TypeScript with the EVM execution path.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Configure Secure Key Management",
          "anchor": "configure-secure-key-management"
        },
        {
          "depth": 3,
          "title": "V3-Specific Configuration",
          "anchor": "v3-specific-configuration"
        },
        {
          "depth": 2,
          "title": "Uniswap V3 Core Architecture",
          "anchor": "uniswap-v3-core-architecture"
        },
        {
          "depth": 3,
          "title": "Concentrated Liquidity and Fee Tiers",
          "anchor": "concentrated-liquidity-and-fee-tiers"
        },
        {
          "depth": 3,
          "title": "Tick System and Price Math",
          "anchor": "tick-system-and-price-math"
        },
        {
          "depth": 3,
          "title": "Core Contracts",
          "anchor": "core-contracts"
        },
        {
          "depth": 3,
          "title": "Math Libraries",
          "anchor": "math-libraries"
        },
        {
          "depth": 3,
          "title": "Project Structure",
          "anchor": "project-structure"
        },
        {
          "depth": 2,
          "title": "Test the Contracts",
          "anchor": "test-the-contracts"
        },
        {
          "depth": 2,
          "title": "Deploy the Contracts",
          "anchor": "deploy-the-contracts"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2575,
        "token_estimate": 4756,
        "headings": 14,
        "sections_indexed": 14
      },
      "version_hash": "sha256:b31ee67d04e8769ec7d106984949c527a544f39b6ea71badf9613b51c8a6b6da",
      "last_updated": "2026-05-15T14:43:50+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v3",
      "title": "Uniswap V3 on Polkadot",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v3",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v3.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v3/",
      "preview": "Deploy and test Uniswap V3 Core contracts on Polkadot Hub with concentrated liquidity, multiple fee tiers, and TWAP oracles using standard Ethereum tooling.",
      "outline": [
        {
          "depth": 2,
          "title": "Tutorials",
          "anchor": "tutorials"
        }
      ],
      "stats": {
        "word_count": 196,
        "token_estimate": 299,
        "headings": 1,
        "sections_indexed": 1
      },
      "version_hash": "sha256:1cfb9c80ecc0dce2ecfb9ccb6bf6aec408ae4bf0fc2e5649a8bdff3dff551d82",
      "last_updated": "2026-06-04T16:06:19+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-eth-dapps-uniswap-v3-periphery-v3",
      "title": "Uniswap V3 Periphery with EVM on Polkadot Hub",
      "slug": "smart-contracts-cookbook-eth-dapps-uniswap-v3-periphery-v3",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v3/periphery-v3.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/eth-dapps/uniswap-v3/periphery-v3/",
      "preview": "Deploy and test unmodified Uniswap V3 Periphery contracts, SwapRouter and NonfungiblePositionManager, on Polkadot Hub using standard Hardhat and TypeScript with the EVM execution path.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Configure Secure Key Management",
          "anchor": "configure-secure-key-management"
        },
        {
          "depth": 3,
          "title": "V3-Specific Configuration",
          "anchor": "v3-specific-configuration"
        },
        {
          "depth": 2,
          "title": "Uniswap V3 Periphery Architecture",
          "anchor": "uniswap-v3-periphery-architecture"
        },
        {
          "depth": 3,
          "title": "Concentrated Liquidity and LP Positions",
          "anchor": "concentrated-liquidity-and-lp-positions"
        },
        {
          "depth": 3,
          "title": "SwapRouter",
          "anchor": "swaprouter"
        },
        {
          "depth": 3,
          "title": "NonfungiblePositionManager",
          "anchor": "nonfungiblepositionmanager"
        },
        {
          "depth": 3,
          "title": "Project Structure",
          "anchor": "project-structure"
        },
        {
          "depth": 2,
          "title": "Test the Contracts",
          "anchor": "test-the-contracts"
        },
        {
          "depth": 2,
          "title": "Deploy the Contracts",
          "anchor": "deploy-the-contracts"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 3087,
        "token_estimate": 5331,
        "headings": 13,
        "sections_indexed": 13
      },
      "version_hash": "sha256:ea1e3abde1d69d430de5dc85fd39007d541161188861762908805147cb3bb0a4",
      "last_updated": "2026-06-04T16:06:19+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook",
      "title": "Smart Contracts Cookbook",
      "slug": "smart-contracts-cookbook",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/",
      "preview": "Explore our full collection of tutorials and guides to learn step-by-step how to build, deploy, and work with smart contracts on Polkadot.",
      "outline": [],
      "stats": {
        "word_count": 34,
        "token_estimate": 37,
        "headings": 0,
        "sections_indexed": 0
      },
      "version_hash": "sha256:4aed37f738d115d9828ab18bb685636a4cb78b3653fb32d600929d52e4204027",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-smart-contracts-deploy-basic-basic-hardhat",
      "title": "Deploy a Basic Contract with Hardhat",
      "slug": "smart-contracts-cookbook-smart-contracts-deploy-basic-basic-hardhat",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-basic/basic-hardhat.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-basic/basic-hardhat/",
      "preview": "Learn how to deploy a basic smart contract to Polkadot Hub using Hardhat, ideal for professional workflows that require comprehensive testing and debugging.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up Your Project",
          "anchor": "set-up-your-project"
        },
        {
          "depth": 2,
          "title": "Configure Hardhat",
          "anchor": "configure-hardhat"
        },
        {
          "depth": 2,
          "title": "Create the Contract",
          "anchor": "create-the-contract"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 779,
        "token_estimate": 1438,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:c4e45874c3e6e818983574baf1a14206e98d7e8b157e64ef2f2b8a1e2bb4de71",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-smart-contracts-deploy-basic-basic-remix",
      "title": "Deploy a Basic Contract with Remix IDE",
      "slug": "smart-contracts-cookbook-smart-contracts-deploy-basic-basic-remix",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-basic/basic-remix.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-basic/basic-remix/",
      "preview": "Learn how to deploy a basic smart contract to Polkadot Hub using Remix IDE, ideal for rapid prototyping, learning, and visual development.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Locate Your Contract",
          "anchor": "locate-your-contract"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 533,
        "token_estimate": 847,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:5fe0f71df9ecf94b341bf11c5692aa8dfe1823c90ec707c0226bcf9fc15c7d2a",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-smart-contracts-deploy-erc20-erc20-hardhat",
      "title": "Deploy an ERC-20 Using Hardhat",
      "slug": "smart-contracts-cookbook-smart-contracts-deploy-erc20-erc20-hardhat",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-erc20/erc20-hardhat.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-erc20/erc20-hardhat/",
      "preview": "Deploy an ERC-20 token on Polkadot Hub using PVM. This guide covers contract creation, compilation, deployment, and interaction via Hardhat.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up Your Project",
          "anchor": "set-up-your-project"
        },
        {
          "depth": 2,
          "title": "Configure Hardhat",
          "anchor": "configure-hardhat"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Test the Contract",
          "anchor": "test-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1087,
        "token_estimate": 2046,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:adc4baa9da9436508faeab0d2274720a8e26135dae3fb5b3e8cf28fd6b798a2a",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-smart-contracts-deploy-erc20-erc20-remix",
      "title": "Deploy an ERC-20 Using Remix IDE",
      "slug": "smart-contracts-cookbook-smart-contracts-deploy-erc20-erc20-remix",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-erc20/erc20-remix.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-erc20/erc20-remix/",
      "preview": "Deploy an ERC-20 token contract on Polkadot Hub. This guide covers contract creation, compilation, deployment, and interaction via the Remix IDE.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Create Your Contract",
          "anchor": "create-your-contract"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Interact with the Contract",
          "anchor": "interact-with-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 865,
        "token_estimate": 1402,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:b34b29c8409aafae22df8131de569fc8b4c264c13c1b11dd6aa1620e23e07f8c",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-smart-contracts-deploy-nft-nft-hardhat",
      "title": "Deploy an ERC-721 Using Hardhat",
      "slug": "smart-contracts-cookbook-smart-contracts-deploy-nft-nft-hardhat",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-nft/nft-hardhat.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-nft/nft-hardhat/",
      "preview": "Learn how to deploy an ERC-721 NFT contract to Polkadot Hub using Hardhat, a comprehensive development environment with built-in deployment capabilities.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Set Up Your Project",
          "anchor": "set-up-your-project"
        },
        {
          "depth": 2,
          "title": "Configure Hardhat",
          "anchor": "configure-hardhat"
        },
        {
          "depth": 2,
          "title": "Create the Contract",
          "anchor": "create-the-contract"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 976,
        "token_estimate": 1826,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:cf85263483252c058f46af69eb0ca948509aa03334e933e7786decb689acf4d4",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-cookbook-smart-contracts-deploy-nft-nft-remix",
      "title": "Deploy an ERC-721 NFT Using Remix",
      "slug": "smart-contracts-cookbook-smart-contracts-deploy-nft-nft-remix",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-nft/nft-remix.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/cookbook/smart-contracts/deploy-nft/nft-remix/",
      "preview": "Learn how to deploy an ERC-721 NFT contract to Polkadot Hub using Remix, a browser-based IDE for quick prototyping and learning.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Create Your Contract",
          "anchor": "create-your-contract"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 673,
        "token_estimate": 1135,
        "headings": 6,
        "sections_indexed": 6
      },
      "version_hash": "sha256:4f5abda2e8dd2b4cfdedf802e3f18e8424a76a74437ea25cbd105d56b379c1be",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-dev-environments-foundry",
      "title": "Use Foundry with Polkadot Hub",
      "slug": "smart-contracts-dev-environments-foundry",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/dev-environments/foundry.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/dev-environments/foundry/",
      "preview": "Learn how to create, compile, test, deploy, and verify smart contracts on Polkadot Hub using Foundry, a fast and portable Ethereum toolkit.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install Foundry",
          "anchor": "install-foundry"
        },
        {
          "depth": 2,
          "title": "Initialize a Foundry Project",
          "anchor": "initialize-a-foundry-project"
        },
        {
          "depth": 2,
          "title": "Compile Contracts",
          "anchor": "compile-contracts"
        },
        {
          "depth": 2,
          "title": "Configure Foundry for Polkadot Hub",
          "anchor": "configure-foundry-for-polkadot-hub"
        },
        {
          "depth": 3,
          "title": "Available Networks and RPC Endpoints",
          "anchor": "available-networks-and-rpc-endpoints"
        },
        {
          "depth": 2,
          "title": "Deploy a Contract",
          "anchor": "deploy-a-contract"
        },
        {
          "depth": 3,
          "title": "Set Up Environment Variables",
          "anchor": "set-up-environment-variables"
        },
        {
          "depth": 3,
          "title": "Deploy Using Forge",
          "anchor": "deploy-using-forge"
        },
        {
          "depth": 3,
          "title": "Deploy Using Scripts",
          "anchor": "deploy-using-scripts"
        },
        {
          "depth": 2,
          "title": "Verify a Contract",
          "anchor": "verify-a-contract"
        },
        {
          "depth": 3,
          "title": "Basic Verification",
          "anchor": "basic-verification"
        },
        {
          "depth": 3,
          "title": "Verification with Constructor Arguments",
          "anchor": "verification-with-constructor-arguments"
        },
        {
          "depth": 2,
          "title": "Interact with Contracts",
          "anchor": "interact-with-contracts"
        },
        {
          "depth": 3,
          "title": "Using Cast",
          "anchor": "using-cast"
        },
        {
          "depth": 3,
          "title": "Using Forge Scripts",
          "anchor": "using-forge-scripts"
        },
        {
          "depth": 2,
          "title": "Run Tests",
          "anchor": "run-tests"
        },
        {
          "depth": 2,
          "title": "Additional Resources",
          "anchor": "additional-resources"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1752,
        "token_estimate": 3584,
        "headings": 20,
        "sections_indexed": 20
      },
      "version_hash": "sha256:008b6bba728a275005c273e950a9ddfcc564193a52c439dbe7b334228c6c8592",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-dev-environments-hardhat-polkadot",
      "title": "Use Hardhat with Polkadot Hub",
      "slug": "smart-contracts-dev-environments-hardhat-polkadot",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/dev-environments/hardhat-polkadot.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/dev-environments/hardhat-polkadot/",
      "preview": "Learn how to set up, configure, and use Hardhat Polkadot to create, compile, test, and deploy Solidity smart contracts on Polkadot Hub using the PVM runtime.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Initialize a Hardhat Project",
          "anchor": "initialize-a-hardhat-project"
        },
        {
          "depth": 2,
          "title": "Compile Your Contract",
          "anchor": "compile-your-contract"
        },
        {
          "depth": 2,
          "title": "Test Your Contract Locally",
          "anchor": "test-your-contract-locally"
        },
        {
          "depth": 3,
          "title": "Start a Local Node",
          "anchor": "start-a-local-node"
        },
        {
          "depth": 3,
          "title": "Run Tests",
          "anchor": "run-tests"
        },
        {
          "depth": 3,
          "title": "Deploy to Local Node",
          "anchor": "deploy-to-local-node"
        },
        {
          "depth": 2,
          "title": "Deploy to Polkadot Hub TestNet",
          "anchor": "deploy-to-polkadot-hub-testnet"
        },
        {
          "depth": 3,
          "title": "Common Issues",
          "anchor": "common-issues"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1277,
        "token_estimate": 2253,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:c0fd7a4f91b714ace9399ee3e161ec41b30cdd20b187060bacea2fc2c8a22489",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-dev-environments-hardhat",
      "title": "Use Hardhat with Polkadot Hub",
      "slug": "smart-contracts-dev-environments-hardhat",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/dev-environments/hardhat.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/dev-environments/hardhat/",
      "preview": "Learn how to create, compile, test, and deploy smart contracts on Polkadot Hub using Hardhat, a powerful development environment for blockchain developers.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Initialize a Hardhat Project",
          "anchor": "initialize-a-hardhat-project"
        },
        {
          "depth": 2,
          "title": "Configure Hardhat for Polkadot Hub",
          "anchor": "configure-hardhat-for-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Verify a Contract",
          "anchor": "verify-a-contract"
        },
        {
          "depth": 3,
          "title": "Install the Verification Plugin",
          "anchor": "install-the-verification-plugin"
        },
        {
          "depth": 3,
          "title": "Add Verification Config",
          "anchor": "add-verification-config"
        },
        {
          "depth": 3,
          "title": "Basic Verification",
          "anchor": "basic-verification"
        },
        {
          "depth": 3,
          "title": "Verification with Constructor Arguments",
          "anchor": "verification-with-constructor-arguments"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1024,
        "token_estimate": 1942,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:feb00a6e4902c1ddb8301e501cdc7b0f283ce2992fc1b590aaadd6bab53feb51",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-dev-environments-local-dev-node",
      "title": "Local Development Node",
      "slug": "smart-contracts-dev-environments-local-dev-node",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/dev-environments/local-dev-node.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/dev-environments/local-dev-node/",
      "preview": "Follow this step-by-step guide to install a Revive Dev node and ETH-RPC adapter for smart contract development in a local environment.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Install the Revive Dev Node and ETH-RPC Adapter",
          "anchor": "install-the-revive-dev-node-and-eth-rpc-adapter"
        },
        {
          "depth": 2,
          "title": "Run the Local Node",
          "anchor": "run-the-local-node"
        }
      ],
      "stats": {
        "word_count": 1471,
        "token_estimate": 2513,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:dfbf3e2f3f8cbff5b33fa974c2e8b0a60d0ba8e7526e927c8eae89ad44a15f0e",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-dev-environments-remix",
      "title": "Use the Remix IDE on Polkadot Hub",
      "slug": "smart-contracts-dev-environments-remix",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/dev-environments/remix.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/dev-environments/remix/",
      "preview": "Explore the smart contract development and deployment process on Polkadot Hub using Remix IDE, a visual IDE for blockchain developers.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Access Remix IDE",
          "anchor": "access-remix-ide"
        },
        {
          "depth": 2,
          "title": "Connect Remix to Polkadot",
          "anchor": "connect-remix-to-polkadot"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 618,
        "token_estimate": 1003,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:e10a8ba97e9c843f8f2d241cb9c2da652cd0f98673ee7db020f5d6043cd417df",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-explorers",
      "title": "Block Explorers",
      "slug": "smart-contracts-explorers",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/explorers.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/explorers/",
      "preview": "Access block explorers like Subscan and BlockScout to track transactions, analyze contracts, and view on-chain data from smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Core Functionality",
          "anchor": "core-functionality"
        },
        {
          "depth": 2,
          "title": "Available Block Explorers",
          "anchor": "available-block-explorers"
        },
        {
          "depth": 3,
          "title": "BlockScout",
          "anchor": "blockscout"
        },
        {
          "depth": 3,
          "title": "Subscan",
          "anchor": "subscan"
        }
      ],
      "stats": {
        "word_count": 286,
        "token_estimate": 478,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:ff89fc155f78b22f60497faf15b14e12860148289f8d3e8ae98c1071ef41ffc5",
      "last_updated": "2026-06-17T08:07:57+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-faucet",
      "title": "Get Tokens from the Official Faucet",
      "slug": "smart-contracts-faucet",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/faucet.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/faucet/",
      "preview": "Learn how to obtain test tokens from Polkadot faucets for development and testing purposes across different networks.",
      "outline": [
        {
          "depth": 2,
          "title": "Get Test Tokens",
          "anchor": "get-test-tokens"
        },
        {
          "depth": 2,
          "title": "Things to Consider",
          "anchor": "things-to-consider"
        },
        {
          "depth": 2,
          "title": "Using Your Test Tokens",
          "anchor": "using-your-test-tokens"
        }
      ],
      "stats": {
        "word_count": 271,
        "token_estimate": 367,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:e14f2c32dd7e23c0d6578b487b8441fdf10788b59ad497056a45f99f0e1ef86c",
      "last_updated": "2026-04-13T11:32:58+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-accounts",
      "title": "Accounts in Polkadot Hub Smart Contracts",
      "slug": "smart-contracts-for-eth-devs-accounts",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/accounts.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/accounts/",
      "preview": "Bridges Ethereum's 20-byte addresses with Polkadot's 32-byte accounts, enabling seamless interaction while maintaining compatibility with Ethereum tooling.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Address Types and Mappings",
          "anchor": "address-types-and-mappings"
        },
        {
          "depth": 3,
          "title": "Ethereum to Polkadot Mapping",
          "anchor": "ethereum-to-polkadot-mapping"
        },
        {
          "depth": 3,
          "title": "Polkadot to Ethereum Mapping",
          "anchor": "polkadot-to-ethereum-mapping"
        },
        {
          "depth": 3,
          "title": "Interacting with Unmapped Substrate Accounts",
          "anchor": "interacting-with-unmapped-substrate-accounts"
        },
        {
          "depth": 3,
          "title": "Account Mapping for Native Polkadot Accounts",
          "anchor": "account-mapping-for-native-polkadot-accounts"
        },
        {
          "depth": 2,
          "title": "Account Registration",
          "anchor": "account-registration"
        },
        {
          "depth": 2,
          "title": "Fallback Accounts",
          "anchor": "fallback-accounts"
        },
        {
          "depth": 3,
          "title": "How Fallback Works with Unmapped Accounts",
          "anchor": "how-fallback-works-with-unmapped-accounts"
        },
        {
          "depth": 2,
          "title": "Contract Address Generation",
          "anchor": "contract-address-generation"
        },
        {
          "depth": 2,
          "title": "Security Considerations",
          "anchor": "security-considerations"
        }
      ],
      "stats": {
        "word_count": 1735,
        "token_estimate": 2652,
        "headings": 11,
        "sections_indexed": 11
      },
      "version_hash": "sha256:749e3bd8e4ce0638a9ac69d4568353198b7d21a8620c705679fe84aca2d14413",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-blocks-transactions-fees",
      "title": "Transactions and Fees on Asset Hub",
      "slug": "smart-contracts-for-eth-devs-blocks-transactions-fees",
      "categories": [
        "Smart Contracts",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/blocks-transactions-fees.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/blocks-transactions-fees/",
      "preview": "Explore how Asset Hub smart contracts handle blocks, transactions, and fees with EVM compatibility, supporting various Ethereum transaction types.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Smart Contract Blocks",
          "anchor": "smart-contract-blocks"
        },
        {
          "depth": 2,
          "title": "Smart Contract Transactions",
          "anchor": "smart-contract-transactions"
        },
        {
          "depth": 3,
          "title": "EVM Transaction Types",
          "anchor": "evm-transaction-types"
        },
        {
          "depth": 2,
          "title": "Fees and Gas",
          "anchor": "fees-and-gas"
        },
        {
          "depth": 3,
          "title": "Gas Model Overview",
          "anchor": "gas-model-overview"
        },
        {
          "depth": 3,
          "title": "Fee Components",
          "anchor": "fee-components"
        },
        {
          "depth": 3,
          "title": "Gas Calculation and Conversion",
          "anchor": "gas-calculation-and-conversion"
        }
      ],
      "stats": {
        "word_count": 731,
        "token_estimate": 1091,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:ef45e08c061ad481f6cd10ffd6c86c9ae4019244ff5ef5ad3f2c35f5707d1f2b",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-contract-deployment",
      "title": "Contract Deployment",
      "slug": "smart-contracts-for-eth-devs-contract-deployment",
      "categories": [
        "Smart Contracts",
        "Basics"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/contract-deployment.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/contract-deployment/",
      "preview": "Compare deployment flows for REVM and PVM-based smart contracts on the Polkadot Hub. Includes single-step REVM flows and PVM's two-step deployment model.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "REVM Deployment",
          "anchor": "revm-deployment"
        },
        {
          "depth": 2,
          "title": "PVM Deployment",
          "anchor": "pvm-deployment"
        },
        {
          "depth": 3,
          "title": "Standard Contract Deployment",
          "anchor": "standard-contract-deployment"
        },
        {
          "depth": 3,
          "title": "Two-Step Deployment Model",
          "anchor": "two-step-deployment-model"
        },
        {
          "depth": 3,
          "title": "Factory Pattern Considerations",
          "anchor": "factory-pattern-considerations"
        },
        {
          "depth": 3,
          "title": "Migration Strategy for Factory Contracts",
          "anchor": "migration-strategy-for-factory-contracts"
        },
        {
          "depth": 3,
          "title": "Architecture-Specific Limitations",
          "anchor": "architecture-specific-limitations"
        },
        {
          "depth": 3,
          "title": "On-Chain Constructors",
          "anchor": "on-chain-constructors"
        },
        {
          "depth": 2,
          "title": "Gas Estimation vs Actual Consumption",
          "anchor": "gas-estimation-vs-actual-consumption"
        },
        {
          "depth": 2,
          "title": "Deployment Comparison",
          "anchor": "deployment-comparison"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 754,
        "token_estimate": 1150,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:b4d64a6b3f0ebc9b16a5cb6d856aea93991b4f807cafeb0b21329924085b0abf",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-dual-vm-stack",
      "title": "Dual Virtual Machine Stack",
      "slug": "smart-contracts-for-eth-devs-dual-vm-stack",
      "categories": [
        "Smart Contracts",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/dual-vm-stack.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/dual-vm-stack/",
      "preview": "Compare Polkadot’s dual smart contract VMs—REVM for EVM compatibility and PolkaVM for RISC-V performance, flexibility, and efficiency.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "REVM Backend",
          "anchor": "revm-backend"
        },
        {
          "depth": 3,
          "title": "Key Benefits",
          "anchor": "key-benefits"
        },
        {
          "depth": 3,
          "title": "How It Works",
          "anchor": "how-it-works"
        },
        {
          "depth": 2,
          "title": "Architecture",
          "anchor": "architecture"
        },
        {
          "depth": 3,
          "title": "Revive Pallet",
          "anchor": "revive-pallet"
        },
        {
          "depth": 2,
          "title": "Alternative: PVM Backend",
          "anchor": "alternative-pvm-backend"
        },
        {
          "depth": 2,
          "title": "Where To Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 476,
        "token_estimate": 704,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:f56e092a184fc62ce5338959b483aee22b36c1f4dc8ed07882d43164a6820413",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-evm-vs-pvm",
      "title": "EVM vs PVM",
      "slug": "smart-contracts-for-eth-devs-evm-vs-pvm",
      "categories": [
        "Smart Contracts",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/evm-vs-pvm.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/evm-vs-pvm/",
      "preview": "Compares EVM and PVM, highlighting key architectural differences, gas models, memory management, and account handling while ensuring Solidity compatibility.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Core Virtual Machine Architecture",
          "anchor": "core-virtual-machine-architecture"
        },
        {
          "depth": 3,
          "title": "High-Level Architecture Comparison",
          "anchor": "high-level-architecture-comparison"
        },
        {
          "depth": 2,
          "title": "Gas Model",
          "anchor": "gas-model"
        },
        {
          "depth": 3,
          "title": "Dynamic Gas Value Scaling",
          "anchor": "dynamic-gas-value-scaling"
        },
        {
          "depth": 3,
          "title": "Multi-Dimensional Resource Metering",
          "anchor": "multi-dimensional-resource-metering"
        },
        {
          "depth": 2,
          "title": "Memory Management",
          "anchor": "memory-management"
        },
        {
          "depth": 3,
          "title": "Current Memory Limits",
          "anchor": "current-memory-limits"
        },
        {
          "depth": 2,
          "title": "Account Management - Existential Deposit",
          "anchor": "account-management-existential-deposit"
        },
        {
          "depth": 3,
          "title": "Account Management Comparison",
          "anchor": "account-management-comparison"
        },
        {
          "depth": 2,
          "title": "Contract Deployment",
          "anchor": "contract-deployment"
        },
        {
          "depth": 2,
          "title": "Solidity and YUL IR Translation Incompatibilities",
          "anchor": "solidity-and-yul-ir-translation-incompatibilities"
        },
        {
          "depth": 3,
          "title": "Contract Code Structure",
          "anchor": "contract-code-structure"
        },
        {
          "depth": 3,
          "title": "Solidity-Specific Differences",
          "anchor": "solidity-specific-differences"
        },
        {
          "depth": 3,
          "title": "YUL Function Translation Differences",
          "anchor": "yul-function-translation-differences"
        },
        {
          "depth": 3,
          "title": "Unsupported Operations",
          "anchor": "unsupported-operations"
        },
        {
          "depth": 3,
          "title": "Compilation Pipeline Considerations",
          "anchor": "compilation-pipeline-considerations"
        },
        {
          "depth": 3,
          "title": "Memory Pointer Limitations",
          "anchor": "memory-pointer-limitations"
        }
      ],
      "stats": {
        "word_count": 3342,
        "token_estimate": 5216,
        "headings": 18,
        "sections_indexed": 18
      },
      "version_hash": "sha256:a19100383ff5c9ce207dc98797cca4d59b0825b8fd83b33847ba1e77deecd1d7",
      "last_updated": "2026-06-16T14:17:44+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-gas-model",
      "title": "Gas Model on the Polkadot Hub",
      "slug": "smart-contracts-for-eth-devs-gas-model",
      "categories": [
        "Smart Contracts",
        "Polkadot Protocol"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/gas-model.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/gas-model/",
      "preview": "Learn how gas estimation, pricing, and weight mapping work in the Polkadot Hub.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Understanding Resources in the Polkadot Hub",
          "anchor": "understanding-resources-in-the-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Gas vs Weight",
          "anchor": "gas-vs-weight"
        },
        {
          "depth": 2,
          "title": "How Gas Estimation Works",
          "anchor": "how-gas-estimation-works"
        },
        {
          "depth": 2,
          "title": "Dynamic Gas Pricing",
          "anchor": "dynamic-gas-pricing"
        },
        {
          "depth": 2,
          "title": "Transaction Execution Flow",
          "anchor": "transaction-execution-flow"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 749,
        "token_estimate": 1043,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:6262b9e98da257cc01770e9318f9f2669495bc232e8c89535e818f9beaed9cdb",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-for-eth-devs-json-rpc-apis",
      "title": "JSON-RPC APIs",
      "slug": "smart-contracts-for-eth-devs-json-rpc-apis",
      "categories": [
        "Reference"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/json-rpc-apis.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/for-eth-devs/json-rpc-apis/",
      "preview": "JSON-RPC APIs guide for Polkadot Hub, covering supported methods, parameters, and examples for interacting with the chain.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Available Methods",
          "anchor": "available-methods"
        },
        {
          "depth": 3,
          "title": "eth_accounts",
          "anchor": "eth_accounts"
        },
        {
          "depth": 3,
          "title": "eth_blockNumber",
          "anchor": "eth_blocknumber"
        },
        {
          "depth": 3,
          "title": "eth_call",
          "anchor": "eth_call"
        },
        {
          "depth": 3,
          "title": "eth_chainId",
          "anchor": "eth_chainid"
        },
        {
          "depth": 3,
          "title": "eth_estimateGas",
          "anchor": "eth_estimategas"
        },
        {
          "depth": 3,
          "title": "eth_gasPrice",
          "anchor": "eth_gasprice"
        },
        {
          "depth": 3,
          "title": "eth_getBalance",
          "anchor": "eth_getbalance"
        },
        {
          "depth": 3,
          "title": "eth_getBlockByHash",
          "anchor": "eth_getblockbyhash"
        },
        {
          "depth": 3,
          "title": "eth_getBlockByNumber",
          "anchor": "eth_getblockbynumber"
        },
        {
          "depth": 3,
          "title": "eth_getBlockTransactionCountByNumber",
          "anchor": "eth_getblocktransactioncountbynumber"
        },
        {
          "depth": 3,
          "title": "eth_getBlockTransactionCountByHash",
          "anchor": "eth_getblocktransactioncountbyhash"
        },
        {
          "depth": 3,
          "title": "eth_getCode",
          "anchor": "eth_getcode"
        },
        {
          "depth": 3,
          "title": "eth_getLogs",
          "anchor": "eth_getlogs"
        },
        {
          "depth": 3,
          "title": "eth_getStorageAt",
          "anchor": "eth_getstorageat"
        },
        {
          "depth": 3,
          "title": "eth_getTransactionCount",
          "anchor": "eth_gettransactioncount"
        },
        {
          "depth": 3,
          "title": "eth_getTransactionByHash",
          "anchor": "eth_gettransactionbyhash"
        },
        {
          "depth": 3,
          "title": "eth_getTransactionByBlockNumberAndIndex",
          "anchor": "eth_gettransactionbyblocknumberandindex"
        },
        {
          "depth": 3,
          "title": "eth_getTransactionByBlockHashAndIndex",
          "anchor": "eth_gettransactionbyblockhashandindex"
        },
        {
          "depth": 3,
          "title": "eth_getTransactionReceipt",
          "anchor": "eth_gettransactionreceipt"
        },
        {
          "depth": 3,
          "title": "eth_maxPriorityFeePerGas",
          "anchor": "eth_maxpriorityfeepergas"
        },
        {
          "depth": 3,
          "title": "eth_sendRawTransaction",
          "anchor": "eth_sendrawtransaction"
        },
        {
          "depth": 3,
          "title": "eth_sendTransaction",
          "anchor": "eth_sendtransaction"
        },
        {
          "depth": 3,
          "title": "eth_syncing",
          "anchor": "eth_syncing"
        },
        {
          "depth": 3,
          "title": "net_listening",
          "anchor": "net_listening"
        },
        {
          "depth": 3,
          "title": "net_peerCount",
          "anchor": "net_peercount"
        },
        {
          "depth": 3,
          "title": "net_version",
          "anchor": "net_version"
        },
        {
          "depth": 3,
          "title": "system_health",
          "anchor": "system_health"
        },
        {
          "depth": 3,
          "title": "web3_clientVersion",
          "anchor": "web3_clientversion"
        },
        {
          "depth": 3,
          "title": "debug_traceBlockByNumber",
          "anchor": "debug_traceblockbynumber"
        },
        {
          "depth": 3,
          "title": "debug_traceTransaction",
          "anchor": "debug_tracetransaction"
        },
        {
          "depth": 3,
          "title": "debug_traceCall",
          "anchor": "debug_tracecall"
        },
        {
          "depth": 2,
          "title": "Response Format",
          "anchor": "response-format"
        },
        {
          "depth": 2,
          "title": "Error Handling",
          "anchor": "error-handling"
        }
      ],
      "stats": {
        "word_count": 4012,
        "token_estimate": 9712,
        "headings": 35,
        "sections_indexed": 35
      },
      "version_hash": "sha256:f07175cbe34280c5145ffeabf00bff70df102d7435c9d0c07700f8eb19cd69bc",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-get-started",
      "title": "Get Started with Smart Contracts",
      "slug": "smart-contracts-get-started",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/get-started.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/get-started/",
      "preview": "Practical examples for building and deploying smart contracts on Polkadot Hub, from connecting and tooling to deployment, integrations, and precompiles.",
      "outline": [
        {
          "depth": 2,
          "title": "Quick Starts",
          "anchor": "quick-starts"
        },
        {
          "depth": 2,
          "title": "Build and Test Locally",
          "anchor": "build-and-test-locally"
        },
        {
          "depth": 2,
          "title": "Ethereum Tool Differences on Polkadot EVM",
          "anchor": "ethereum-tool-differences-on-polkadot-evm"
        },
        {
          "depth": 2,
          "title": "Ethereum Developer Resources",
          "anchor": "ethereum-developer-resources"
        },
        {
          "depth": 2,
          "title": "Cookbook: Hands-on Tutorials",
          "anchor": "cookbook-hands-on-tutorials"
        },
        {
          "depth": 2,
          "title": "Libraries",
          "anchor": "libraries"
        },
        {
          "depth": 2,
          "title": "Integrations",
          "anchor": "integrations"
        },
        {
          "depth": 2,
          "title": "Precompiles",
          "anchor": "precompiles"
        }
      ],
      "stats": {
        "word_count": 515,
        "token_estimate": 1168,
        "headings": 8,
        "sections_indexed": 8
      },
      "version_hash": "sha256:6073c66c449fe1d6b8271e429308b0ed5ad5412e8de3dfc0a91818a1b5258eb9",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-integrations-wallets",
      "title": "Wallets for Polkadot Hub",
      "slug": "smart-contracts-integrations-wallets",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/integrations/wallets.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/integrations/wallets/",
      "preview": "Comprehensive guide to connecting and managing wallets for Polkadot Hub, covering step-by-step instructions for interacting with the ecosystem.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Connect Your Wallet",
          "anchor": "connect-your-wallet"
        },
        {
          "depth": 3,
          "title": "MetaMask",
          "anchor": "metamask"
        },
        {
          "depth": 3,
          "title": "Talisman",
          "anchor": "talisman"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 605,
        "token_estimate": 901,
        "headings": 5,
        "sections_indexed": 5
      },
      "version_hash": "sha256:4b9fdefc4693dc024f1ddba4f7afe8469a5ceffdc202a0903ce78794f714a20d",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-libraries-ethers-js",
      "title": "Deploy Contracts to Polkadot Hub with Ethers.js",
      "slug": "smart-contracts-libraries-ethers-js",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/libraries/ethers-js.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/libraries/ethers-js/",
      "preview": "Learn how to interact with Polkadot Hub using Ethers.js, from compiling and deploying Solidity contracts to interacting with deployed smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Project Structure",
          "anchor": "project-structure"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Install Dependencies",
          "anchor": "install-dependencies"
        },
        {
          "depth": 2,
          "title": "Set Up the Ethers.js Provider",
          "anchor": "set-up-the-ethersjs-provider"
        },
        {
          "depth": 2,
          "title": "Compile Contracts",
          "anchor": "compile-contracts"
        },
        {
          "depth": 3,
          "title": "Sample Storage Smart Contract",
          "anchor": "sample-storage-smart-contract"
        },
        {
          "depth": 3,
          "title": "Compile the Smart Contract",
          "anchor": "compile-the-smart-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Compiled Contract",
          "anchor": "deploy-the-compiled-contract"
        },
        {
          "depth": 2,
          "title": "Interact with the Contract",
          "anchor": "interact-with-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2249,
        "token_estimate": 4387,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:5da58c6e15b7214c7374a98891a44eb92f49e8310b52d361facdba45546ba084",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-libraries-viem",
      "title": "viem for Polkadot Hub Smart Contracts",
      "slug": "smart-contracts-libraries-viem",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/libraries/viem.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/libraries/viem/",
      "preview": "This guide covers deploying and interacting with contracts on Polkadot Hub using viem, a TypeScript library for Ethereum-compatible chains.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Project Structure",
          "anchor": "project-structure"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Install Dependencies",
          "anchor": "install-dependencies"
        },
        {
          "depth": 2,
          "title": "Initialize Project",
          "anchor": "initialize-project"
        },
        {
          "depth": 2,
          "title": "Set Up the Chain Configuration",
          "anchor": "set-up-the-chain-configuration"
        },
        {
          "depth": 2,
          "title": "Set Up the viem Client",
          "anchor": "set-up-the-viem-client"
        },
        {
          "depth": 2,
          "title": "Set Up a Wallet",
          "anchor": "set-up-a-wallet"
        },
        {
          "depth": 2,
          "title": "Sample Smart Contract",
          "anchor": "sample-smart-contract"
        },
        {
          "depth": 2,
          "title": "Compile the Contract",
          "anchor": "compile-the-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Contract",
          "anchor": "deploy-the-contract"
        },
        {
          "depth": 2,
          "title": "Interact with the Contract",
          "anchor": "interact-with-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1871,
        "token_estimate": 3840,
        "headings": 14,
        "sections_indexed": 14
      },
      "version_hash": "sha256:9d31281c813c1248c160e0a15352297e0899745c341c0de7a258b959a73ca210",
      "last_updated": "2026-06-17T08:07:57+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-libraries-wagmi",
      "title": "Wagmi for Polkadot Hub Smart Contracts",
      "slug": "smart-contracts-libraries-wagmi",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/libraries/wagmi.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/libraries/wagmi/",
      "preview": "Learn how to use Wagmi React Hooks to fetch and interact with smart contracts on Polkadot Hub for seamless dApp integration.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Install Dependencies",
          "anchor": "install-dependencies"
        },
        {
          "depth": 2,
          "title": "Configure Wagmi for Polkadot Hub",
          "anchor": "configure-wagmi-for-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Set Up the Wagmi Provider",
          "anchor": "set-up-the-wagmi-provider"
        },
        {
          "depth": 2,
          "title": "Connect a Wallet",
          "anchor": "connect-a-wallet"
        },
        {
          "depth": 2,
          "title": "Fetch Blockchain Data",
          "anchor": "fetch-blockchain-data"
        },
        {
          "depth": 2,
          "title": "Interact with Deployed Contract",
          "anchor": "interact-with-deployed-contract"
        },
        {
          "depth": 2,
          "title": "Integrate Components",
          "anchor": "integrate-components"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1407,
        "token_estimate": 3015,
        "headings": 10,
        "sections_indexed": 10
      },
      "version_hash": "sha256:b051b38eb6063e722c9820b86afc6376d2286d58323ab83f54578f53acb508c0",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-libraries-web3-js",
      "title": "Deploy Contracts to Polkadot Hub with Web3.js",
      "slug": "smart-contracts-libraries-web3-js",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/libraries/web3-js.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/libraries/web3-js/",
      "preview": "Learn how to interact with Polkadot Hub using Web3.js, from compiling and deploying Solidity contracts to interacting with deployed smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Prerequisites",
          "anchor": "prerequisites"
        },
        {
          "depth": 2,
          "title": "Project Structure",
          "anchor": "project-structure"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Install Dependencies",
          "anchor": "install-dependencies"
        },
        {
          "depth": 2,
          "title": "Set Up the Web3 Provider",
          "anchor": "set-up-the-web3-provider"
        },
        {
          "depth": 2,
          "title": "Compile Contracts",
          "anchor": "compile-contracts"
        },
        {
          "depth": 3,
          "title": "Sample Storage Smart Contract",
          "anchor": "sample-storage-smart-contract"
        },
        {
          "depth": 3,
          "title": "Compile the Smart Contract",
          "anchor": "compile-the-smart-contract"
        },
        {
          "depth": 2,
          "title": "Deploy the Compiled Contract",
          "anchor": "deploy-the-compiled-contract"
        },
        {
          "depth": 2,
          "title": "Interact with the Contract",
          "anchor": "interact-with-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 2075,
        "token_estimate": 4232,
        "headings": 12,
        "sections_indexed": 12
      },
      "version_hash": "sha256:409c8b3ca50ff5de65a7ef013a366a65e8f5b1355bd4530560a30152b3731569",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-libraries-web3-py",
      "title": "Web3.py",
      "slug": "smart-contracts-libraries-web3-py",
      "categories": [
        "Smart Contracts",
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/libraries/web3-py.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/libraries/web3-py/",
      "preview": "Learn how to interact with Polkadot Hub using the Web3 python library, deploying Solidity contracts, and interacting with deployed smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Set Up the Project",
          "anchor": "set-up-the-project"
        },
        {
          "depth": 2,
          "title": "Set Up the Web3 Provider",
          "anchor": "set-up-the-web3-provider"
        },
        {
          "depth": 2,
          "title": "Compile Contracts",
          "anchor": "compile-contracts"
        },
        {
          "depth": 3,
          "title": "Sample Storage Smart Contract",
          "anchor": "sample-storage-smart-contract"
        },
        {
          "depth": 3,
          "title": "Compile the Smart Contract",
          "anchor": "compile-the-smart-contract"
        },
        {
          "depth": 2,
          "title": "Contract Deployment",
          "anchor": "contract-deployment"
        },
        {
          "depth": 2,
          "title": "Interact with the Contract",
          "anchor": "interact-with-the-contract"
        },
        {
          "depth": 2,
          "title": "Where to Go Next",
          "anchor": "where-to-go-next"
        }
      ],
      "stats": {
        "word_count": 1651,
        "token_estimate": 2955,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:85f696989c40346391a8a6f8fd7a53b82137cd5d4491afe43fe5a4423488f390",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-overview",
      "title": "Smart Contracts Overview",
      "slug": "smart-contracts-overview",
      "categories": [
        "Basics",
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/overview.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/overview/",
      "preview": "Learn about smart contract development on Polkadot Hub with native PVM support, dual-VM execution, and seamless cross-chain capabilities.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Why Build on Polkadot Hub",
          "anchor": "why-build-on-polkadot-hub"
        },
        {
          "depth": 3,
          "title": "Ethereum Compatibility",
          "anchor": "ethereum-compatibility"
        },
        {
          "depth": 3,
          "title": "Performance Options",
          "anchor": "performance-options"
        },
        {
          "depth": 3,
          "title": "Cross-VM  & Cross-Chain Capabilities",
          "anchor": "cross-vm-cross-chain-capabilities"
        },
        {
          "depth": 2,
          "title": "Other Smart Contract Environments",
          "anchor": "other-smart-contract-environments"
        },
        {
          "depth": 2,
          "title": "Next Steps",
          "anchor": "next-steps"
        }
      ],
      "stats": {
        "word_count": 572,
        "token_estimate": 883,
        "headings": 7,
        "sections_indexed": 7
      },
      "version_hash": "sha256:dd1216cd7869f321a2335bc514c0392634aabd33921ee68c63237f61bc539bc2",
      "last_updated": "2026-02-13T21:12:03+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-precompiles-erc20",
      "title": "Interact with the ERC20 Precompile",
      "slug": "smart-contracts-precompiles-erc20",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/precompiles/erc20.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/precompiles/erc20/",
      "preview": "Learn how to use the ERC20 precompile to interact with assets from the assets pallet using standard ERC20 token interfaces in your smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Supported Asset Types",
          "anchor": "supported-asset-types"
        },
        {
          "depth": 3,
          "title": "Trust-Backed Assets",
          "anchor": "trust-backed-assets"
        },
        {
          "depth": 3,
          "title": "Foreign Assets",
          "anchor": "foreign-assets"
        },
        {
          "depth": 3,
          "title": "Pool Assets",
          "anchor": "pool-assets"
        },
        {
          "depth": 2,
          "title": "Precompile Interface",
          "anchor": "precompile-interface"
        },
        {
          "depth": 2,
          "title": "Query Functions",
          "anchor": "query-functions"
        },
        {
          "depth": 3,
          "title": "Get Total Supply",
          "anchor": "get-total-supply"
        },
        {
          "depth": 3,
          "title": "Get Balance",
          "anchor": "get-balance"
        },
        {
          "depth": 3,
          "title": "Check Allowance",
          "anchor": "check-allowance"
        },
        {
          "depth": 2,
          "title": "Token Operations",
          "anchor": "token-operations"
        },
        {
          "depth": 3,
          "title": "Transfer Tokens",
          "anchor": "transfer-tokens"
        },
        {
          "depth": 3,
          "title": "Approve Spending",
          "anchor": "approve-spending"
        },
        {
          "depth": 3,
          "title": "Transfer From",
          "anchor": "transfer-from"
        },
        {
          "depth": 2,
          "title": "Common Trust-Backed Asset IDs",
          "anchor": "common-trust-backed-asset-ids"
        },
        {
          "depth": 2,
          "title": "Interact with the ERC20 Precompile",
          "anchor": "interact-with-the-erc20-precompile"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        },
        {
          "depth": 2,
          "title": "Reference",
          "anchor": "reference"
        }
      ],
      "stats": {
        "word_count": 1747,
        "token_estimate": 3350,
        "headings": 18,
        "sections_indexed": 18
      },
      "version_hash": "sha256:28314c8ccfa3f18ccdd73732b8ddc36fd6f42f537822d664229dae7b5d6dea7f",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-precompiles-eth-native",
      "title": "Ethereum-Native Precompiles",
      "slug": "smart-contracts-precompiles-eth-native",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/precompiles/eth-native.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/precompiles/eth-native/",
      "preview": "General overview of Ethereum-native precompiles in Polkadot Hub’s Revive pallet, including usage basics and details on standard precompiles for smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "How to Use Precompiles",
          "anchor": "how-to-use-precompiles"
        },
        {
          "depth": 2,
          "title": "Standard Precompiles in Polkadot Hub",
          "anchor": "standard-precompiles-in-polkadot-hub"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 517,
        "token_estimate": 1143,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:4306d396e4404ba356eff455eb914743e2f62312741d1d432377626759d73f50",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-precompiles",
      "title": "Advanced Functionalities via Precompiles",
      "slug": "smart-contracts-precompiles",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/precompiles.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/precompiles/",
      "preview": "Explores how Polkadot integrates precompiles to run essential functions natively, improving the speed and efficiency of smart contracts on the Hub.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "What are Precompiles?",
          "anchor": "what-are-precompiles"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        }
      ],
      "stats": {
        "word_count": 303,
        "token_estimate": 410,
        "headings": 3,
        "sections_indexed": 3
      },
      "version_hash": "sha256:09da868dba733e465844d0977a6686687ab7829f7264401148819c0e5f3a3cd7",
      "last_updated": "2026-03-16T21:10:48+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-precompiles-storage",
      "title": "Interact with the Storage Precompile",
      "slug": "smart-contracts-precompiles-storage",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/precompiles/storage.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/precompiles/storage/",
      "preview": "Learn how to use the Storage precompile for low-level contract storage access, including reads, writes, partial reads, key inspection, and storage management.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Precompile Interface",
          "anchor": "precompile-interface"
        },
        {
          "depth": 2,
          "title": "Reading Storage",
          "anchor": "reading-storage"
        },
        {
          "depth": 3,
          "title": "Read Full Value",
          "anchor": "read-full-value"
        },
        {
          "depth": 3,
          "title": "Read Partial Value",
          "anchor": "read-partial-value"
        },
        {
          "depth": 3,
          "title": "Read Value Prefix",
          "anchor": "read-value-prefix"
        },
        {
          "depth": 2,
          "title": "Writing Storage",
          "anchor": "writing-storage"
        },
        {
          "depth": 3,
          "title": "Write Value",
          "anchor": "write-value"
        },
        {
          "depth": 3,
          "title": "Remove Value",
          "anchor": "remove-value"
        },
        {
          "depth": 2,
          "title": "Storage Inspection",
          "anchor": "storage-inspection"
        },
        {
          "depth": 3,
          "title": "Check Key Existence",
          "anchor": "check-key-existence"
        },
        {
          "depth": 3,
          "title": "Get Value Length",
          "anchor": "get-value-length"
        },
        {
          "depth": 2,
          "title": "Interact with the Storage Precompile",
          "anchor": "interact-with-the-storage-precompile"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        },
        {
          "depth": 2,
          "title": "Reference",
          "anchor": "reference"
        }
      ],
      "stats": {
        "word_count": 1330,
        "token_estimate": 2433,
        "headings": 15,
        "sections_indexed": 15
      },
      "version_hash": "sha256:bf7dffcfb25471221bcdb59a4fe27dcaa3c0cddeb46756cd4badf78def86e661",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-precompiles-system",
      "title": "Interact with the System Precompile",
      "slug": "smart-contracts-precompiles-system",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/precompiles/system.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/precompiles/system/",
      "preview": "Learn how to use the System precompile to access core runtime functionality, cryptographic operations, and system utilities from your smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Precompile Interface",
          "anchor": "precompile-interface"
        },
        {
          "depth": 2,
          "title": "Cryptographic Operations",
          "anchor": "cryptographic-operations"
        },
        {
          "depth": 3,
          "title": "Compute BLAKE2-256 Hash",
          "anchor": "compute-blake2-256-hash"
        },
        {
          "depth": 3,
          "title": "Compute BLAKE2-128 Hash",
          "anchor": "compute-blake2-128-hash"
        },
        {
          "depth": 3,
          "title": "Verify SR25519 Signature",
          "anchor": "verify-sr25519-signature"
        },
        {
          "depth": 3,
          "title": "Convert ECDSA Public Key to Ethereum Address",
          "anchor": "convert-ecdsa-public-key-to-ethereum-address"
        },
        {
          "depth": 2,
          "title": "Account Management",
          "anchor": "account-management"
        },
        {
          "depth": 3,
          "title": "Convert Address to Account ID",
          "anchor": "convert-address-to-account-id"
        },
        {
          "depth": 2,
          "title": "Runtime Queries",
          "anchor": "runtime-queries"
        },
        {
          "depth": 3,
          "title": "Check if Caller is Origin",
          "anchor": "check-if-caller-is-origin"
        },
        {
          "depth": 3,
          "title": "Check if Caller is Root",
          "anchor": "check-if-caller-is-root"
        },
        {
          "depth": 3,
          "title": "Get Minimum Balance",
          "anchor": "get-minimum-balance"
        },
        {
          "depth": 3,
          "title": "Get Own Code Hash",
          "anchor": "get-own-code-hash"
        },
        {
          "depth": 3,
          "title": "Get Weight Left",
          "anchor": "get-weight-left"
        },
        {
          "depth": 2,
          "title": "Contract Lifecycle",
          "anchor": "contract-lifecycle"
        },
        {
          "depth": 3,
          "title": "Terminate Contract",
          "anchor": "terminate-contract"
        },
        {
          "depth": 2,
          "title": "Interact with the System Precompile",
          "anchor": "interact-with-the-system-precompile"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        },
        {
          "depth": 2,
          "title": "Reference",
          "anchor": "reference"
        }
      ],
      "stats": {
        "word_count": 1596,
        "token_estimate": 2826,
        "headings": 20,
        "sections_indexed": 20
      },
      "version_hash": "sha256:8a233ec701d4d5300eda311c691f1ae50bc689d9b594ffb4ec004fe475d1baaf",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "smart-contracts-precompiles-xcm",
      "title": "Interact with the XCM Precompile",
      "slug": "smart-contracts-precompiles-xcm",
      "categories": [
        "Smart Contracts"
      ],
      "raw_md_url": "https://docs.polkadot.com/smart-contracts/precompiles/xcm.md",
      "html_url": "https://docs.polkadot.com/smart-contracts/precompiles/xcm/",
      "preview": "Learn how to use the XCM precompile to send cross-chain messages, execute XCM instructions, and estimate costs from your smart contracts.",
      "outline": [
        {
          "depth": 2,
          "title": "Introduction",
          "anchor": "introduction"
        },
        {
          "depth": 2,
          "title": "Precompile Interface",
          "anchor": "precompile-interface"
        },
        {
          "depth": 2,
          "title": "Interact with the XCM Precompile",
          "anchor": "interact-with-the-xcm-precompile"
        },
        {
          "depth": 3,
          "title": "Weigh a Message",
          "anchor": "weigh-a-message"
        },
        {
          "depth": 3,
          "title": "Execute a Message",
          "anchor": "execute-a-message"
        },
        {
          "depth": 3,
          "title": "Send a Message",
          "anchor": "send-a-message"
        },
        {
          "depth": 2,
          "title": "Cross Contract Calls",
          "anchor": "cross-contract-calls"
        },
        {
          "depth": 2,
          "title": "Conclusion",
          "anchor": "conclusion"
        },
        {
          "depth": 2,
          "title": "Next Steps",
          "anchor": "next-steps"
        }
      ],
      "stats": {
        "word_count": 1397,
        "token_estimate": 2223,
        "headings": 9,
        "sections_indexed": 9
      },
      "version_hash": "sha256:2255f3f5ec45ad0c34b139d78a954ffadd5caed7669d24b03e9ef8d5fd6792c1",
      "last_updated": "2026-06-04T16:08:37+00:00",
      "token_estimator": "heuristic-v1"
    },
    {
      "id": "tools",
      "title": "Polkadot Utilities",
      "slug": "tools",
      "categories": [
        "Tooling"
      ],
      "raw_md_url": "https://docs.polkadot.com/tools.md",
      "html_url": "https://docs.polkadot.com/tools/",
      "preview": "Interactive encoding, hashing, and address utility tools for Polkadot development. Convert strings, balances, and numbers to hex, hash inputs with Blake2 and XXHash, and derive or re-encode Polkadot addresses.",
      "outline": [
        {
          "depth": 2,
          "title": "Encoding & Decoding",
          "anchor": "encoding-decoding"
        },
        {
          "depth": 2,
          "title": "Hashing",
          "anchor": "hashing"
        },
        {
          "depth": 2,
          "title": "Address Utilities",
          "anchor": "address-utilities"
        },
        {
          "depth": 2,
          "title": "Asset ID to ERC20 Address",
          "anchor": "asset-id-to-erc20-address"
        }
      ],
      "stats": {
        "word_count": 303,
        "token_estimate": 472,
        "headings": 4,
        "sections_indexed": 4
      },
      "version_hash": "sha256:ec640f825e02b2dd82cbbc391abe8980f80aede8dbb6394fc37d88d43bf88282",
      "last_updated": "2026-04-02T14:35:50+00:00",
      "token_estimator": "heuristic-v1"
    }
  ],
  "build_timestamp": "2026-06-25T12:38:13.291384+00:00"
}