General settings for Squid SDK SubstrateBatchProcessor.
The method documentation is also available inline and can be accessed via suggestions in most IDEs.
The following setters configure the global settings of SubstrateBatchProcessor. They return the modified instance and can be chained.Calling setRpcEndpoint() is a hard requirement on Substrate, as chain RPC is used to retrieve chain metadata. Adding a SQD Network gateway with setGateway() is optional but highly recommended, as it greatly reduces RPC usage.To reduce it further, you can explicitly disable RPC ingestion by calling setRpcDataIngestionSettings({ disabled: true }): in this scenario the RPC will only be used for metadata retrieval and to perform any direct RPC queries you might be doing in your squid code. This will, however, introduce a delay of a few thousands of blocks between the chain head and the highest block available to your squid.
SQD Network v2 gateways require an API key. Set SQD_API_KEY in the process environment or pass apiKey in GatewaySettings.
any direct RPC queries you make in your squid code
A node RPC endpoint can be specified as a string URL or as an object:
type ChainRpc = string | { url: string // http, https, ws and wss are supported capacity?: number // num of concurrent connections, default 10 maxBatchCallSize?: number // default 100 rateLimit?: number // requests per second, default is no limit requestTimeout?: number // in milliseconds, default 30_000 headers?: Record<string, string> // http headers}
Setting maxBatchCallSize to 1 disables batching completely.
We recommend using private endpoints for better performance and stability of your squids. For SQD Cloud deployments you can use the RPC addon. If you use an external private RPC, keep the endpoint URL in a Cloud secret.
type RpcDataIngestionSettings = { disabled?: boolean headPollInterval?: number newHeadTimeout?: number}
Here,
disabled: Explicitly disables data ingestion from an RPC endpoint. RPC remains required on Substrate because SubstrateBatchProcessor uses it for metadata. The processor continues to follow the gateway dataset head; it does not terminate just because it catches up.
headPollInterval: Poll interval for new blocks in milliseconds. Poll mechanism is used to get new blocks via HTTP connections. Default: 5000.
newHeadTimeout: When ingesting from a websocket, this setting specifies the timeout in milliseconds after which the connection will be reset and subscription re-initiated if no new blocks were received. Default: no timeout.
Limits the range of blocks to be processed. When the upper bound is specified, processor will terminate with exit code 0 once it reaches it.Note that block ranges can also be specified separately for each data request. This method sets global bounds for all block ranges in the configuration.
Overrides finalized-head tracking with a fixed distance from the chain head. The default uses chain_getFinalizedHead. Setting 0 treats all blocks as final.
By default, processor will fetch only blocks which contain requested items. This method modifies such behavior to fetch all chain blocks. Optionally a range of blocks can be specified for which the setting should be effective.
Sets a types bundle.Types bundle is only required for historical blocks which have metadata version below 14 and only if we don’t have built-in support for the chain in question. Most chains listed in the polkadot.js app are supported.SQD project has its own types bundle format, however, most of polkadotjs types bundles will work as well.Types bundles can be specified in 2 different ways:
Sets the port for the built-in Prometheus metrics server. Use setPrometheusServer() for new code. PROCESSOR_PROMETHEUS_PORT takes precedence over PROMETHEUS_PORT; if neither is set, the processor selects an ephemeral port.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"SQD Documentation","description":"Developer docs for SQD. Stream onchain data from 110+ networks through the Portal HTTP API. Build indexers with the Squid or Pipes TypeScript SDKs and deploy on SQD Cloud. API reference, guides, and tutorials.","colors":{"primary":"#4f46e5","light":"#a5b4fc","dark":"#4338ca"},"logo":"https://docs.sqd.dev/images/favicon-512x512.png","favicon":"https://mintcdn.com/sqd-2119b3c3/guSbZXCH4rZ4VplP/images/favicon-512x512.png?fit=max\u0026auto=format\u0026n=guSbZXCH4rZ4VplP\u0026q=85\u0026s=68404b12d41ec308307bc81da4f5244e","api":{"playground":{"display":"interactive"},"examples":{"prefill":true}},"appearance":{"default":"system","strict":false},"background":{"color":{"light":"#ffffff","dark":"#08090a"}},"navbar":{"links":[{"href":"https://github.com/subsquid/squid-sdk","label":"Squid SDK","type":"github"},{"href":"https://github.com/subsquid-labs/pipes-sdk","label":"Pipes SDK","type":"github"},{"icon":"cloud","href":"https://cloud.sqd.dev","label":"Cloud"},{"icon":"waypoints","href":"https://network.sqd.dev","label":"Network"}],"primary":{"type":"button","label":"Get help","href":"https://t.me/hydradevs"}},"footer":{"socials":{"github":"https://github.com/subsquid","x":"https://twitter.com/hellosqd","telegram":"https://t.me/hydradevs","linkedin":"https://www.linkedin.com/company/subsquid","youtube":"https://www.youtube.com/@subsquid"},"links":[{"header":"Quickstarts","items":[{"label":"Pipes SDK","href":"/en/sdk/pipes-sdk/evm/quickstart"},{"label":"Squid SDK","href":"/en/sdk/squid-sdk/evm/quickstart"},{"label":"Portal API","href":"/en/portal/evm/quickstart"}]},{"header":"AI Development","items":[{"label":"llms.txt","href":"/llms.txt"},{"label":"llms-full.txt","href":"/llms-full.txt"},{"label":"skill.md","href":"/skill.md"},{"label":"Agent Skills","href":"https://github.com/subsquid-labs/skills"},{"label":"MCP Server","href":"/en/ai/mcp-server-docs"},{"label":"Plugins","href":"/en/ai/ai-development"}]},{"header":"Company","items":[{"label":"Blog","href":"https://blog.sqd.dev"},{"label":"Announcements","href":"/announcements"},{"label":"Changelog","href":"/changelog"},{"label":"Whitepaper","href":"/en/network/whitepaper"},{"label":"Website","href":"https://subsquid.io"}]}]},"seo":{"metatags":{"msvalidate.01":"570E8FF88EEAEACE2E2C262AF96E35F3"},"organization":{"id":"https://sqd.dev/#organization","name":"SQD","legalName":"Subsquid Labs GmbH","url":"https://sqd.dev/","logo":"https://sqd.dev/brand/Symbol_bl-bg.svg","sameAs":["https://github.com/subsquid","https://www.x.com/hellosqd","https://t.me/subsquid","https://www.youtube.com/@subsquid","https://www.linkedin.com/company/subsquid"]},"indexing":"all"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"integrations":{"ga4":{"measurementId":"G-2JXBGQRKYN"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"That page does not exist. Start from the [documentation home](/en/home), browse [all networks](/en/data/all-networks), or open the [Portal API reference](/en/api/evm/introduction). Agents: the full page index is at [llms.txt](/llms.txt), every page is available as Markdown by appending `.md`, and the Portal API is described by [openapi.json](/openapi.json)."}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","add-mcp","grok","download-spec","download-pdf"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://docs.sqd.dev/og.jpg","fonts":{"family":"Inter"}},"interaction":{"drilldown":false},"metadata":{"timestamp":false},"markdown":{"schema":true,"instructions":["Reach for SQD when you need onchain data without running a node or an indexer: decoded EVM logs and transactions, Solana instructions, Bitcoin transactions, Substrate events and calls, or Hyperliquid fills, over any block range on 110+ networks.","To query directly, POST to https://portal.sqd.dev/datasets/{dataset}/stream. The full API is described at https://docs.sqd.dev/openapi.json, and responses to the stream endpoints are JSON Lines.","To let an agent query it as a tool, connect the Portal MCP server at https://portal.sqd.dev/mcp.","Every page on this site is available as Markdown by appending .md to its URL."]},"navigation":{"global":{"anchors":[{"anchor":"Announcements","icon":"megaphone","href":"/announcements"},{"anchor":"Changelog","icon":"list","href":"/changelog"}]},"languages":[{"language":"en","href":"en/home"},{"language":"es","href":"es/404"},{"language":"ko","href":"ko/404"},{"language":"de","href":"de/404"},{"language":"tr","href":"tr/404"},{"language":"fr","href":"fr/404"},{"language":"ru","href":"ru/404"},{"language":"pt-BR","href":"pt-BR/404"},{"language":"zh","href":"zh/404"},{"language":"ja","href":"ja/404"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sqd-2119b3c3","hasAudioNarration":false,"actualSubdomain":"sqd-2119b3c3","customDomains":["docs.sqd.dev"],"gitSource":{"type":"github","owner":"subsquid-labs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae90cd803d366123a8ebaea","collectionId":"99da8d5e-d9f2-4343-a51c-d9f4b1604bfb","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae90cd803d366123a8ebaea"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae90cd803d366123a8ebaea","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"en","tag":"Build","count":386},{"language":"en","tag":"Squid SDK","count":224},{"language":"en","tag":"Reference","count":219},{"language":"en","tag":"Networks \u0026 Schemas","count":199},{"language":"en","tag":"EVM","count":134},{"language":"en","tag":"EVM Data","count":108},{"language":"en","tag":"Guides","count":108},{"language":"en","tag":"Solana","count":105},{"language":"en","tag":"Supported Networks","count":93},{"language":"en","tag":"Pipes SDK","count":83}],"searchSettings":{"maxResults":10,"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"type":"email","email":"[email protected]"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--hl-bg:#f0f1f5;--hl-cmd:#111827;--hl-line-num:#9ca3af;--hl-key:#2563eb;--hl-flag:#0284c7;--hl-str:#b45309;--hl-num:#16a34a;--hl-bool:#c026d3;--hl-comment:#6b7280}:root[class~=dark]{--hl-bg:#131316;--hl-cmd:#e6edf3;--hl-line-num:#484f58;--hl-key:rgb(143,164,255);--hl-flag:rgb(85,205,255);--hl-str:rgb(255,196,124);--hl-num:rgb(137,209,150);--hl-bool:rgb(247,156,224);--hl-comment:rgb(115,115,130)}[data-mode=wide] table{margin-left:auto;margin-right:auto}.network-name-cell button{text-align:left}.mobile-nav-tabs-item[href=\"/en/data/all-networks\"],.nav-tabs-item[href=\"/en/data/all-networks\"]{display:none!important}:root[class~=dark]{--gray-950:14 15 17;--gray-900:19 19 22;--gray-800:28 28 32;--gray-700:46 46 51}#sidebar-content .sidebar-group-header,.breadcrumb-list,.breadcrumb-list .breadcrumb-item,.sqd-microlabel{font-family:var(--font-mono-sqd);font-size:.6875rem;font-weight:550;letter-spacing:.08em;text-transform:uppercase}#sidebar-content .sidebar-group-header{color:#8b8d9e}:root[class~=dark] #sidebar-content .sidebar-group-header,:root[class~=dark] .sqd-microlabel-muted{color:#8a8a93}.sqd-microlabel-muted{color:#8b8d9e}.sqd-pg-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;color:rgba(17,17,21,.62)}:root[class~=dark] .sqd-pg-label,:root[class~=dark] .sqd-pg-net{color:rgba(247,248,248,.62)}.sqd-pg-net{font-size:13px;letter-spacing:-.003em;border-radius:.25rem;background:0 0;color:rgba(17,17,21,.62);transition:color .15s,background-color .15s}.sqd-pg-net:hover{color:rgba(17,17,21,.85)}.sqd-pg-net[aria-pressed=true]{background:#e5e7eb;color:#111115;font-weight:510}:root[class~=dark] .sqd-pg-net:hover{color:rgba(247,248,248,.85)}:root[class~=dark] .sqd-pg-net[aria-pressed=true]{background:#1c1c20;color:#f7f8f8}.sqd-pg-panel{border:1px solid rgba(229,231,235,.8);border-radius:.375rem}:root[class~=dark] .sqd-pg-panel{border-color:rgba(36,36,40,.7)}.sqd-pg-bar{background:rgba(229,231,235,.25);border-bottom:1px solid rgba(229,231,235,.8)}:root[class~=dark] .sqd-pg-bar{background:rgba(28,28,32,.25);border-bottom-color:rgba(36,36,40,.7)}.sqd-pg-bar-b{background:rgba(229,231,235,.25);border-top:1px solid rgba(229,231,235,.8)}:root[class~=dark] .sqd-pg-bar-b{background:rgba(28,28,32,.25);border-top-color:rgba(36,36,40,.7)}.sqd-pg-tab{font-size:13px;font-weight:510;letter-spacing:-.003em;border-radius:.25rem;color:rgba(17,17,21,.62);transition:color .15s,background-color .15s}.sqd-pg-tab:hover{color:rgba(17,17,21,.85)}.sqd-pg-tab-active{color:#111115;background:rgba(229,231,235,.6)}:root[class~=dark] .sqd-pg-tab{color:rgba(247,248,248,.62)}:root[class~=dark] .sqd-pg-tab:hover{color:rgba(247,248,248,.85)}:root[class~=dark] .sqd-pg-tab-active{color:#f7f8f8;background:rgba(28,28,32,.6)}.sqd-pg-dim{color:rgba(17,17,21,.62)}:root[class~=dark] .sqd-pg-dim{color:rgba(247,248,248,.62)}.sqd-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.sqd-no-scrollbar::-webkit-scrollbar{display:none}.sqd-pg-select{background:#f8f9fb;border:1px solid #d1d5db;border-radius:.5rem;color:#111115}:root[class~=dark] .sqd-pg-select{background:#131316;border-color:#2e2e33;color:#f7f8f8}.sqd-pg-code{font-family:var(--font-mono-sqd);font-size:13px;line-height:1.7;color:rgba(17,17,21,.9)}:root[class~=dark] .sqd-pg-code{color:rgba(247,248,248,.9)}.sqd-pg-line{display:flex}.sqd-pg-line:hover{background:rgba(0,0,0,.03)}:root[class~=dark] .sqd-pg-line:hover{background:rgba(255,255,255,.03)}.sqd-pg-num{width:44px;flex-shrink:0;text-align:right;padding-right:1.25rem;font-size:12px;line-height:1.7;color:rgba(17,17,21,.25);user-select:none;font-variant-numeric:tabular-nums}:root[class~=dark] .sqd-pg-num{color:rgba(247,248,248,.25)}main h1{letter-spacing:-.032em}main h2{letter-spacing:-.022em}.sqd-btn-primary-docs{background-color:#18181b;color:#fff;border:1px solid transparent;border-radius:.375rem;font-weight:510;letter-spacing:-.011em;transition:background-color .16s cubic-bezier(.25,.46,.45,.94),box-shadow .16s cubic-bezier(.25,.46,.45,.94)}.sqd-btn-primary-docs:hover{background-color:#27272a}:root[class~=dark] .sqd-btn-primary-docs{background-color:#f7f8f8;color:#08090a}:root[class~=dark] .sqd-btn-primary-docs:hover{background-color:#fff;box-shadow:rgba(0,0,0,.08) 0 0 1px,rgba(0,0,0,.07) 0 1px 1px,rgba(0,0,0,.04) 0 3px 2px}.sqd-btn-secondary-docs{background-color:transparent;color:#27272a;border:1px solid rgba(0,0,0,.18);border-radius:.375rem;font-weight:510;letter-spacing:-.011em;transition:background-color .16s cubic-bezier(.25,.46,.45,.94),border-color .16s cubic-bezier(.25,.46,.45,.94),color .16s cubic-bezier(.25,.46,.45,.94)}.sqd-btn-secondary-docs:hover{background-color:#f4f4f5;border-color:rgba(0,0,0,.25);color:#09090b}:root[class~=dark] .sqd-btn-secondary-docs{color:#f7f8f8;border-color:#1c1c20}:root[class~=dark] .sqd-btn-secondary-docs:hover{background-color:rgba(255,255,255,.04);border-color:#2e2e33;color:#fff}#navbar span.bg-primary-dark{background-color:#18181b!important;border-radius:.375rem}#navbar a:has(.bg-primary-dark),#navbar a:has(.bg-primary-dark) span,#navbar a:has(.bg-primary-dark) svg{color:#fff!important}:root[class~=dark] #navbar span.bg-primary-dark{background-color:#f7f8f8!important}:root[class~=dark] #navbar a:has(.bg-primary-dark),:root[class~=dark] #navbar a:has(.bg-primary-dark) span,:root[class~=dark] #navbar a:has(.bg-primary-dark) svg{color:#08090a!important}:root[class~=dark] #sidebar-content .dark\\:text-primary-light{color:#a5b4fc!important}:root[class~=dark] #sidebar-content .bg-primary\\/10,:root[class~=dark] #sidebar-content .dark\\:bg-primary-light\\/10{background-color:rgba(165,180,252,.08)!important}:root[class~=dark] #table-of-contents-layout li[data-active]>a{color:#a5b4fc!important;border-left-color:#2e2e33!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #569CD6\"i]{--shiki-dark:rgb(143, 164, 255)!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #C586C0\"i]{--shiki-dark:rgb(247, 156, 224)!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #CE9178\"i]{--shiki-dark:rgb(255, 196, 124)!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #B5CEA8\"i]{--shiki-dark:rgb(137, 209, 150)!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #6A9955\"i]{--shiki-dark:rgb(115, 115, 130)!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #4FC1FF\"i],:root[class~=dark] pre span[style*=\"--shiki-dark: #DCDCAA\"i]{--shiki-dark:rgb(85, 205, 255)!important}:root[class~=dark] pre span[style*=\"--shiki-dark: #9CDCFE\"i],:root[class~=dark] pre span[style*=\"--shiki-dark: #D4D4D4\"i]{--shiki-dark:rgb(232, 232, 236)!important}[role=listbox]:focus-visible,[role=menu]:focus-visible{outline:0!important}#navbar>.bg-background-light{background-color:rgba(250,250,250,.9)!important;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}:root[class~=dark] #navbar>.bg-background-light{background-color:rgba(8,9,10,.85)!important}#sqd-safari-edge{display:none}@media (max-width:1023px){#sqd-safari-edge{display:block;position:fixed;top:0;left:0;right:0;height:8px;background-color:#fff;pointer-events:none;z-index:40}:root[class~=dark] #sqd-safari-edge{background-color:#08090a}}::selection{background:rgba(99,102,241,.2);color:#09090b}:root[class~=dark] ::selection{color:#f4f4f5}html{scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a1a1aa}:root[class~=dark] ::-webkit-scrollbar-track{background:#08090a}:root[class~=dark] ::-webkit-scrollbar-thumb{background:#2a2a2e}:root[class~=dark] ::-webkit-scrollbar-thumb:hover{background:#3f3f46}@layer utilities{#banner{background:#eef2ff!important;border-bottom:1px solid #dfe5ff}#banner,#banner button:hover,#banner button:hover path,#banner button:hover svg,#banner div,#banner p,#banner span{color:#18181b!important}#banner button,#banner path,#banner svg{color:rgba(24,24,27,.55)!important}#banner a{color:#4f46e5!important;font-weight:550}#banner a:hover{text-decoration:underline}#banner button:hover{background:rgba(79,70,229,.08)!important}:root[class~=dark] #banner{background:#16161f!important;border-bottom:1px solid rgba(165,180,252,.18);color:#f7f8f8!important}:root[class~=dark] #banner button:hover,:root[class~=dark] #banner button:hover path,:root[class~=dark] #banner button:hover svg,:root[class~=dark] #banner div,:root[class~=dark] #banner p,:root[class~=dark] #banner span{color:#f7f8f8!important}:root[class~=dark] #banner button,:root[class~=dark] #banner path,:root[class~=dark] #banner svg{color:rgba(247,248,248,.55)!important}:root[class~=dark] #banner a{color:#a5b4fc!important}:root[class~=dark] #banner button:hover{background:rgba(165,180,252,.12)!important}}.card{border-radius:.5rem;background-color:#fff;border-color:#e5e7eb;box-shadow:0 1px 3px rgba(18,42,66,.04);transition:border-color .16s cubic-bezier(.25,.46,.45,.94),box-shadow .16s cubic-bezier(.25,.46,.45,.94),filter .16s cubic-bezier(.25,.46,.45,.94)}.card:hover{box-shadow:0 4px 12px rgba(18,42,66,.08),0 1px 3px rgba(18,42,66,.04)}:root[class~=dark] .card{background-color:#131316;border-color:#1c1c20;box-shadow:none}:root[class~=dark] .card:hover{box-shadow:0 2px 8px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.04);filter:brightness(1.15)}@layer utilities{.card:hover{border-color:#d1d5db!important}:root[class~=dark] .card:hover{border-color:#2e2e33!important}}#content-area table th,.prose table th{font-size:.8125rem;font-weight:550;letter-spacing:-.006em;text-transform:none;color:rgba(24,24,27,.85);background-color:#f8f9fb;border-bottom:1px solid #e5e7eb}:root[class~=dark] #content-area table th,:root[class~=dark] .prose table th{color:rgba(247,248,248,.85);background-color:rgba(255,255,255,.02);border-bottom-color:#242428}#content-area table:not(.not-prose *),.prose table:not(.not-prose *){border-collapse:separate;border-spacing:0;border:1px solid #e5e7eb;border-radius:.5rem;letter-spacing:-.011em}:root[class~=dark] #content-area table:not(.not-prose *),:root[class~=dark] .prose table:not(.not-prose *){border-color:#1c1c20}#content-area table:not(.not-prose *) th,.prose table:not(.not-prose *) th{padding:.6875rem 1rem}#content-area table:not(.not-prose *) td,.prose table:not(.not-prose *) td{padding:.875rem 1rem;border-bottom:1px solid #e9eaee;transition:background-color .15s ease}:root[class~=dark] #content-area table:not(.not-prose *) td,:root[class~=dark] .prose table:not(.not-prose *) td{border-bottom-color:#1c1c20}#content-area table:not(.not-prose *) tbody tr:last-child td,.prose table:not(.not-prose *) tbody tr:last-child td{border-bottom:none}#content-area table:not(.not-prose *) thead tr:first-child th:first-child,.prose table:not(.not-prose *) thead tr:first-child th:first-child{border-top-left-radius:calc(.5rem - 1px)}#content-area table:not(.not-prose *) thead tr:first-child th:last-child,.prose table:not(.not-prose *) thead tr:first-child th:last-child{border-top-right-radius:calc(.5rem - 1px)}#content-area table:not(.not-prose *) tbody tr:last-child td:first-child,.prose table:not(.not-prose *) tbody tr:last-child td:first-child{border-bottom-left-radius:calc(.5rem - 1px)}#content-area table:not(.not-prose *) tbody tr:last-child td:last-child,.prose table:not(.not-prose *) tbody tr:last-child td:last-child{border-bottom-right-radius:calc(.5rem - 1px)}#content-area table:not(.not-prose *) tbody tr:hover td,.prose table:not(.not-prose *) tbody tr:hover td{background-color:rgba(230,233,240,.4)}:root[class~=dark] #content-area table:not(.not-prose *) tbody tr:hover td,:root[class~=dark] .prose table:not(.not-prose *) tbody tr:hover td{background-color:rgba(255,255,255,.03)}#content-area table:not(.not-prose *) tbody td:first-child,.prose table:not(.not-prose *) tbody td:first-child{font-weight:510;color:#18181b}:root[class~=dark] #content-area table:not(.not-prose *) tbody td:first-child,:root[class~=dark] .prose table:not(.not-prose *) tbody td:first-child{color:#f7f8f8}#content-area :not(pre)>code,.prose :not(pre)>code{background-color:#f4f4f5;border:1px solid #e4e4e7;border-radius:.25rem;padding:.125rem .375rem;color:#18181b}:root[class~=dark] #content-area :not(pre)>code,:root[class~=dark] .prose :not(pre)>code{background-color:#1a1a1e;border-color:#242428;color:#f7f8f8}.code-block,.code-block-background{border-radius:.5rem}.code-block{border-color:#e5e7eb}.code-block-background{background-color:#fafbfc!important}:root[class~=dark] .code-block{border-color:#1c1c20}:root[class~=dark] .code-block-background{background-color:#0e0f11!important;box-shadow:none}#content-area .tree{--tree-highlight:rgb(var(--primary));margin:1.25rem 0;padding:.5rem .25rem;border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fafbfc}:root[class~=dark] #content-area .tree{border-color:#1c1c20;background-color:#0e0f11}[role=dialog]{border-radius:.75rem;box-shadow:0 8px 32px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.06)}:root[class~=dark] [role=dialog]{background-color:#131316;box-shadow:0 8px 32px rgba(0,0,0,.5),0 0 0 1px #242428}#footer{background-color:#fff;border-top-color:rgba(0,0,0,.06)}:root[class~=dark] #footer{background-color:transparent;border-top-color:#1c1c20}#footer a.text-sm{color:#52525b;transition:color .16s ease-out}#footer a.text-sm:hover{color:#09090b}:root[class~=dark] #footer a.text-sm,:root[class~=dark] .callout[data-callout-type=info] svg{color:#8a8a93}:root[class~=dark] #footer a.text-sm:hover{color:#f7f8f8}img[src*=\"/images/chains/hyperliquid.svg\"],img[src*=\"/images/chains/polkadot.svg\"],img[src*=\"/images/chains/solana.svg\"],img[src*=\"/images/chains/tron.svg\"]{object-position:-999px -999px;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}img[src*=\"/images/chains/solana.svg\"]{mask-image:url(/images/chains/solana.svg);-webkit-mask-image:url(/images/chains/solana.svg)}img[src*=\"/images/chains/polkadot.svg\"]{mask-image:url(/images/chains/polkadot.svg);-webkit-mask-image:url(/images/chains/polkadot.svg)}img[src*=\"/images/chains/hyperliquid.svg\"]{mask-image:url(/images/chains/hyperliquid.svg);-webkit-mask-image:url(/images/chains/hyperliquid.svg)}img[src*=\"/images/chains/tron.svg\"]{mask-image:url(/images/chains/tron.svg);-webkit-mask-image:url(/images/chains/tron.svg)}.callout{border-radius:.5rem}.callout [data-component-part=callout-content],.callout [data-component-part=callout-content] p{color:#404046}:root[class~=dark] .callout [data-component-part=callout-content],:root[class~=dark] .callout [data-component-part=callout-content] p{color:#a0a0a5}@layer utilities{.callout[data-callout-type=info] a,.callout[data-callout-type=note] a{color:#4f46e5!important}:root[class~=dark] .callout[data-callout-type=info] a,:root[class~=dark] .callout[data-callout-type=note] a{color:#a5b4fc!important}.callout[data-callout-type=warning] a{color:#b45309!important}:root[class~=dark] .callout[data-callout-type=warning] a{color:#fbbf24!important}.callout[data-callout-type=check] a,.callout[data-callout-type=tip] a{color:#16a34a!important}:root[class~=dark] .callout[data-callout-type=check] a,:root[class~=dark] .callout[data-callout-type=tip] a{color:#4ade80!important}.callout[data-callout-type=danger] a,.callout[data-callout-type=error] a{color:#dc2626!important}:root[class~=dark] .callout[data-callout-type=danger] a,:root[class~=dark] .callout[data-callout-type=error] a{color:#f87171!important}}.callout[data-callout-type=info]{background-color:#f8f9fb;border-color:#e5e7eb}.callout[data-callout-type=info] svg{color:#8a8f98}:root[class~=dark] .callout[data-callout-type=info]{background-color:rgba(255,255,255,.03);border-color:#242428}.callout[data-callout-type=note]{background-color:rgba(79,70,229,.04);border-color:rgba(79,70,229,.16)}.callout[data-callout-type=note] svg{color:#4f46e5}:root[class~=dark] .callout[data-callout-type=note]{background-color:rgba(165,180,252,.06);border-color:rgba(165,180,252,.16)}:root[class~=dark] .callout[data-callout-type=note] svg{color:#a5b4fc}.callout[data-callout-type=warning]{background-color:rgba(217,119,6,.05);border-color:rgba(217,119,6,.22)}.callout[data-callout-type=warning] svg{color:#b45309}:root[class~=dark] .callout[data-callout-type=warning]{background-color:rgba(251,191,36,.06);border-color:rgba(251,191,36,.16)}:root[class~=dark] .callout[data-callout-type=warning] svg{color:#fbbf24}.callout[data-callout-type=check],.callout[data-callout-type=tip]{background-color:rgba(22,163,74,.05);border-color:rgba(22,163,74,.2)}.callout[data-callout-type=check] svg,.callout[data-callout-type=tip] svg{color:#16a34a}:root[class~=dark] .callout[data-callout-type=check],:root[class~=dark] .callout[data-callout-type=tip]{background-color:rgba(74,222,128,.06);border-color:rgba(74,222,128,.15)}:root[class~=dark] .callout[data-callout-type=check] svg,:root[class~=dark] .callout[data-callout-type=tip] svg{color:#4ade80}.callout[data-callout-type=danger],.callout[data-callout-type=error]{background-color:rgba(220,38,38,.05);border-color:rgba(220,38,38,.22)}.callout[data-callout-type=danger] svg,.callout[data-callout-type=error] svg{color:#dc2626}:root[class~=dark] .callout[data-callout-type=danger],:root[class~=dark] .callout[data-callout-type=error]{background-color:rgba(248,113,113,.06);border-color:rgba(248,113,113,.18)}:root[class~=dark] .callout[data-callout-type=danger] svg,:root[class~=dark] .callout[data-callout-type=error] svg{color:#f87171}.sqd-nt-frame{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(18,42,66,.04);overflow:hidden}:root[class~=dark] .sqd-nt-frame{background:0 0;border-color:#1c1c20;box-shadow:none}.sqd-nt-toolbar{background:#f8f9fb;border-bottom:1px solid #e5e7eb}.sqd-nt-frame .sqd-nt-scroll{overflow-x:auto;overscroll-behavior-x:contain}:root[class~=dark] .sqd-nt-toolbar{background:rgba(255,255,255,.02);border-bottom-color:#242428}.sqd-nt-frame .sqd-nt-table{padding:0}.sqd-nt-frame .sqd-nt-table div[class*=page-padding]{padding-left:0;padding-right:0}.sqd-nt-frame .sqd-nt-table table{margin:0}.sqd-nt-frame .sqd-nt-table td{min-width:0;overflow:hidden}.sqd-nt-frame .sqd-nt-table td[class*=text-center],.sqd-nt-frame .sqd-nt-table th[class*=text-center]{text-align:center}.sqd-nt-table tbody tr{border-bottom:1px solid #e9eaee;transition:background-color .15s ease}.sqd-nt-table tbody tr:last-child{border-bottom:none}:root[class~=dark] .sqd-nt-table tbody tr{border-bottom-color:#1c1c20}.sqd-nt-table tbody tr:hover{background-color:rgba(230,233,240,.4)}:root[class~=dark] .sqd-nt-table tbody tr:hover{background-color:rgba(255,255,255,.03)}.sqd-nt-table th{transition:background-color .15s ease}.sqd-nt-table th:hover{background-color:#eef0f4}:root[class~=dark] .sqd-nt-table th:hover{background-color:rgba(255,255,255,.05)}.sqd-nt-name{color:#18181b;font-weight:510}:root[class~=dark] .sqd-nt-name{color:#f7f8f8}.sqd-nt-name-link{color:inherit;text-decoration:none;transition:color .15s ease}.sqd-nt-name-link:hover{color:#4f46e5;text-decoration:underline;text-underline-offset:3px}:root[class~=dark] .sqd-nt-name-link:hover{color:#a5b4fc}.sqd-nt-logo{display:inline-flex;flex:none;align-items:center;justify-content:center;width:20px;height:20px;border-radius:9999px;overflow:hidden}.sqd-nt-logo img{display:block;width:100%;height:100%;margin:0;object-fit:contain}.sqd-nt-logo--dark,.sqd-nt-logo--white{padding:3px}.sqd-nt-logo--white{background:#fff}.sqd-nt-logo--dark{background:#0f0f11}.sqd-nt-logo--mono{background:#f4f4f5;color:#71717a;font-size:.625rem;font-weight:600}:root[class~=dark] .sqd-nt-logo--mono{background:#1a1a1e;color:#a1a1aa}.sqd-nt-cell{color:#52525b}:root[class~=dark] .sqd-nt-cell{color:#a1a1aa}.sqd-nt-dim{color:#71717a}:root[class~=dark] .sqd-nt-dim{color:rgba(247,248,248,.62)}.sqd-nt-dot{display:inline-block;width:7px;height:7px;border-radius:9999px;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}:root[class~=dark] .sqd-nt-dot{background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.1)}.sqd-nt-no{color:#8b919c;font-weight:500;user-select:none}:root[class~=dark] .sqd-nt-no{color:#6b6b76}.sqd-nt-ok{color:#16a34a}:root[class~=dark] .sqd-nt-ok{color:#4ade80}.sqd-nt-badge{display:inline-flex;align-items:center;font-size:.625rem;font-weight:550;letter-spacing:.05em;text-transform:uppercase;padding:.1875rem .5rem;border-radius:9999px;background:#f4f4f5;color:#52525b;border:1px solid #e4e4e7;line-height:1.4;white-space:nowrap}:root[class~=dark] .sqd-nt-badge{background:#1a1a1e;color:#a1a1aa;border-color:#2e2e33}.sqd-nt-badge--vm{background:#eef2ff;color:#4f46e5;border-color:#e0e7ff}:root[class~=dark] .sqd-nt-badge--vm{background:rgba(99,102,241,.12);color:#a5b4fc;border-color:rgba(99,102,241,.28)}a.sqd-nt-badge--tier{text-decoration:none;transition:border-color .15s ease}.sqd-nt-badge--core{background:rgba(217,119,6,.08);color:#b45309;border-color:rgba(217,119,6,.18)}a.sqd-nt-badge--core:hover{border-color:rgba(217,119,6,.36)}:root[class~=dark] .sqd-nt-badge--core{background:rgba(245,158,11,.12);color:#fbbf24;border-color:rgba(245,158,11,.22)}:root[class~=dark] a.sqd-nt-badge--core:hover{border-color:rgba(245,158,11,.44)}.sqd-nt-badge--partner{background:rgba(8,145,178,.07);color:#0e7490;border-color:rgba(8,145,178,.15)}a.sqd-nt-badge--partner:hover{border-color:rgba(8,145,178,.32)}:root[class~=dark] .sqd-nt-badge--partner{background:rgba(34,211,238,.1);color:#22d3ee;border-color:rgba(34,211,238,.2)}:root[class~=dark] a.sqd-nt-badge--partner:hover{border-color:rgba(34,211,238,.4)}.sqd-nt-badge--frontier{background:rgba(124,58,237,.07);color:#6d28d9;border-color:rgba(124,58,237,.15)}a.sqd-nt-badge--frontier:hover{border-color:rgba(124,58,237,.32)}:root[class~=dark] .sqd-nt-badge--frontier{background:rgba(167,139,250,.12);color:#a78bfa;border-color:rgba(167,139,250,.22)}:root[class~=dark] a.sqd-nt-badge--frontier:hover{border-color:rgba(167,139,250,.44)}.sqd-nt-badge--retiring,a.sqd-nt-badge--retiring{background:rgba(225,29,72,.07);color:#be123c;border-color:rgba(225,29,72,.18);text-decoration:none;transition:background .15s ease,border-color .15s ease}a.sqd-nt-badge--retiring:hover{background:rgba(225,29,72,.13);border-color:rgba(225,29,72,.32)}:root[class~=dark] .sqd-nt-badge--retiring,:root[class~=dark] a.sqd-nt-badge--retiring{background:rgba(251,113,133,.1);color:#fda4af;border-color:rgba(251,113,133,.22)}:root[class~=dark] a.sqd-nt-badge--retiring:hover{background:rgba(251,113,133,.18);border-color:rgba(251,113,133,.38)}.sqd-nt-chip{width:fit-content;white-space:nowrap;font-family:var(--font-mono-sqd, \"JetBrains Mono\", ui-monospace, monospace);font-size:.75rem;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:.25rem;padding:.125rem .375rem;color:#18181b}:root[class~=dark] .sqd-nt-chip{background:#1a1a1e;border-color:#242428;color:#d6d6dc}.sqd-nt-copy{color:#71717a;border-radius:.25rem;padding:.25rem;transition:color .15s ease,background-color .15s ease}.sqd-nt-copy svg{background-color:currentColor!important}.sqd-nt-copy:hover{color:#18181b;background:rgba(0,0,0,.04)}:root[class~=dark] .sqd-nt-copy{color:rgba(247,248,248,.62)}:root[class~=dark] .sqd-nt-copy:hover{color:#f7f8f8;background:rgba(255,255,255,.06)}.sqd-nt-control{background-color:#fff;border:1px solid #d4d4d8;border-radius:.375rem;color:#27272a;font-size:14px;font-weight:510;letter-spacing:-.011em;transition:border-color .16s ease,background-color .16s ease}.sqd-nt-control:hover{border-color:#a1a1aa}.sqd-nt-control:focus-visible{outline:0;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.2)}:root[class~=dark] .sqd-nt-control{background-color:#131316;border-color:#2e2e33;color:#f7f8f8}:root[class~=dark] .sqd-nt-control:hover{border-color:#52525b}.sqd-nt-filter{flex:1 1 16rem;min-width:0;font-weight:400}.sqd-nt-actions{flex:0 1 auto;min-width:0}.sqd-nt-filter::placeholder{color:#a1a1aa}:root[class~=dark] .sqd-nt-filter::placeholder{color:#71717a}.sqd-nt-select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2371717a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .625rem center;background-size:14px 14px}.sqd-nt-toggle-off{color:#71717a}:root[class~=dark] .sqd-nt-toggle-off{color:#a1a1aa}"},{"filePath":"fonts.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwkT9nA2.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwAT9nA2.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwgT9nA2.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwcT9nA2.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwsT9nA2.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwoT9nA2.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwQT9g.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvvYwYL8g.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvmYwYL8g.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvuYwYL8g.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvhYwYL8g.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvtYwYL8g.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvsYwYL8g.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcviYwY.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbX2o-flEEny0FZhsfKu5WU4xD-Cw6nSHrV.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbX2o-flEEny0FZhsfKu5WU4xD-CwenSHrV.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbX2o-flEEny0FZhsfKu5WU4xD-CwCnSHrV.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbX2o-flEEny0FZhsfKu5WU4xD-CwynSHrV.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbX2o-flEEny0FZhsfKu5WU4xD-Cw2nSHrV.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: italic;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbX2o-flEEny0FZhsfKu5WU4xD-CwOnSA.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbV2o-flEEny0FZhsfKu5WU4xD2OwG_TA.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbV2o-flEEny0FZhsfKu5WU4xD_OwG_TA.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbV2o-flEEny0FZhsfKu5WU4xD4OwG_TA.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbV2o-flEEny0FZhsfKu5WU4xD0OwG_TA.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbV2o-flEEny0FZhsfKu5WU4xD1OwG_TA.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 300 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbV2o-flEEny0FZhsfKu5WU4xD7OwE.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--font-inter:\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\",\n \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;--font-mono-sqd:\"JetBrains Mono\", \"Menlo\", \"Monaco\", \"Lucida Console\",\n \"Liberation Mono\", \"DejaVu Sans Mono\", \"Bitstream Vera Sans Mono\",\n \"Courier New\", monospace;--font-geist-mono:var(--font-mono-sqd)}body{letter-spacing:-.011em;font-feature-settings:normal;font-variant-numeric:normal;font-variant-ligatures:normal}.code,.hljs,code,pre{font-family:var(--font-mono-sqd)}.font-inter,body{font-family:var(--font-inter)}.font-mono{font-family:var(--font-mono-sqd)}.italic,em,i{font-style:italic;font-synthesis:none}div,h1,h2,h3,h4,h5,h6,p,span{font-feature-settings:\"ss01\" 0,\"ss02\" 0,\"ss03\" 0;font-variant-alternates:normal}"}],"page":{"pagePath":"en/sdk/squid-sdk/substrate/reference/substrate-processor/general","slug":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/general","pageMetadata":{"title":"Substrate Batch General Settings","sidebarTitle":"General settings","description":"General settings for Squid SDK SubstrateBatchProcessor.","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/general"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"General settings for Squid SDK SubstrateBatchProcessor.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Tip,{children:_jsx(_components.p,{children:`The method documentation is also available inline and can be accessed via suggestions in most IDEs.`})}),`\n`,_jsxs(_components.p,{children:[`The following setters configure the global settings of `,_jsx(_components.code,{children:`SubstrateBatchProcessor`}),`. They return the modified instance and can be chained.`]}),`\n`,_jsxs(_components.p,{children:[`Calling `,_jsx(_components.a,{href:`#set-rpc-endpoint`,children:_jsx(_components.code,{children:`setRpcEndpoint()`})}),` is a hard requirement on Substrate, as chain RPC is used to retrieve chain metadata. Adding a `,_jsx(_components.a,{href:`/en/data/substrate`,children:`SQD Network gateway`}),` with `,_jsx(_components.a,{href:`#set-gateway`,children:_jsx(_components.code,{children:`setGateway()`})}),` is optional but highly recommended, as it greatly reduces RPC usage.`]}),`\n`,_jsxs(_components.p,{children:[`To reduce it further, you can explicitly disable `,_jsx(_components.a,{href:`/en/sdk/squid-sdk/substrate/guides/advanced/unfinalized-blocks`,children:`RPC ingestion`}),` by calling `,_jsx(_components.a,{href:`#set-rpc-data-ingestion-settings`,children:_jsx(_components.code,{children:`setRpcDataIngestionSettings({ disabled: true })`})}),`: in this scenario the RPC will only be used for metadata retrieval and to perform any direct RPC queries you might be doing in your squid code. This will, however, introduce a delay of a few thousands of blocks between the chain head and the highest block available to your squid.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`SQD Network v2 gateways require an API key. Set `,_jsx(_components.code,{children:`SQD_API_KEY`}),` in the process environment or pass `,_jsx(_components.code,{children:`apiKey`}),` in `,_jsx(_components.code,{children:`GatewaySettings`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`set-gateway`,children:_jsx(_components.code,{children:`setGateway(url: string | GatewaySettings)`})}),`\n`,_jsxs(_components.p,{children:[`Adds a `,_jsx(_components.a,{href:`/en/network/overview`,children:`SQD Network`}),` data source. The argument is either a string URL of a SQD Network gateway or`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#C8C8C8`},children:` url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`string`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // gateway URL`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` string`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // defaults to process.env.SQD_API_KEY`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` requestTimeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` number`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // in milliseconds`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/en/data/substrate`,children:`Substrate gateways`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`set-rpc-endpoint`,children:_jsx(_components.code,{children:`setRpcEndpoint(rpc: ChainRpc)`})}),`\n`,_jsx(_components.p,{children:`Adds a RPC data source. If added, it will be used for`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/sdk/squid-sdk/substrate/guides/advanced/unfinalized-blocks`,children:`RPC ingestion`}),` (unless explicitly disabled with `,_jsx(_components.a,{href:`#set-rpc-data-ingestion-settings`,children:_jsx(_components.code,{children:`setRpcDataIngestionSettings()`})}),`)`]}),`\n`,_jsx(_components.li,{children:`any direct RPC queries you make in your squid code`}),`\n`]}),`\n`,_jsx(_components.p,{children:`A node RPC endpoint can be specified as a string URL or as an object:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`type`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ChainRpc`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` url`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // http, https, ws and wss are supported`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` capacity`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // num of concurrent connections, default 10`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` maxBatchCallSize`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // default 100`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` rateLimit`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // requests per second, default is no limit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` requestTimeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // in milliseconds, default 30_000`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Record`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`> `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// http headers`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Setting `,_jsx(_components.code,{children:`maxBatchCallSize`}),` to `,_jsx(_components.code,{children:`1`}),` disables batching completely.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`We recommend using private endpoints for better performance and stability of your squids. For SQD Cloud deployments you can use the `,_jsx(_components.a,{href:`/en/cloud/resources/rpc-proxy`,children:`RPC addon`}),`. If you use an external private RPC, keep the endpoint URL in a `,_jsx(_components.a,{href:`/en/cloud/resources/env-variables#secrets`,children:`Cloud secret`}),`.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`set-data-source`,children:[_jsx(_components.code,{children:`setDataSource(ds: {archive?: string, chain?: ChainRpc})`}),` (deprecated)`]}),`\n`,_jsxs(_components.p,{children:[`Replaced by `,_jsx(_components.a,{href:`#set-gateway`,children:_jsx(_components.code,{children:`setGateway()`})}),` and `,_jsx(_components.a,{href:`#set-rpc-endpoint`,children:_jsx(_components.code,{children:`setRpcEndpoint()`})}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`set-rpc-data-ingestion-settings`,children:_jsx(_components.code,{children:`setRpcDataIngestionSettings(settings: RpcDataIngestionSettings)`})}),`\n`,_jsxs(_components.p,{children:[`Specify the `,_jsx(_components.a,{href:`/en/sdk/squid-sdk/substrate/guides/advanced/unfinalized-blocks`,children:`RPC ingestion`}),` settings.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`type`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` RpcDataIngestionSettings`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` disabled`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` boolean`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headPollInterval`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` newHeadTimeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Here,`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`disabled`}),`: Explicitly disables data ingestion from an RPC endpoint. `,_jsxs(_components.strong,{children:[`RPC remains required on Substrate because `,_jsx(_components.code,{children:`SubstrateBatchProcessor`}),` uses it for metadata.`]}),` The processor continues to follow the gateway dataset head; it does not terminate just because it catches up.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`headPollInterval`}),`: Poll interval for new blocks in milliseconds. Poll mechanism is used to get new blocks via HTTP connections. Default: 5000.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`newHeadTimeout`}),`: When ingesting from a websocket, this setting specifies the timeout in milliseconds after which the connection will be reset and subscription re-initiated if no new blocks were received. Default: no timeout.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`set-block-range`,children:_jsx(_components.code,{children:`setBlockRange({from: number, to?: number})`})}),`\n`,_jsx(_components.p,{children:`Limits the range of blocks to be processed. When the upper bound is specified, processor will terminate with exit code 0 once it reaches it.`}),`\n`,_jsx(_components.p,{children:`Note that block ranges can also be specified separately for each data request. This method sets global bounds for all block ranges in the configuration.`}),`\n`,_jsx(Heading,{level:`3`,id:`set-finality-confirmation`,children:_jsx(_components.code,{children:`setFinalityConfirmation(nBlocks: number)`})}),`\n`,_jsxs(_components.p,{children:[`Overrides finalized-head tracking with a fixed distance from the chain head. The default uses `,_jsx(_components.code,{children:`chain_getFinalizedHead`}),`. Setting `,_jsx(_components.code,{children:`0`}),` treats all blocks as final.`]}),`\n`,_jsx(Heading,{level:`3`,id:`include-all-blocks`,children:_jsx(_components.code,{children:`includeAllBlocks(range?: {from: number, to?: number})`})}),`\n`,_jsx(_components.p,{children:`By default, processor will fetch only blocks which contain requested items. This method modifies such behavior to fetch all chain blocks. Optionally a range of blocks can be specified for which the setting should be effective.`}),`\n`,_jsx(Heading,{level:`3`,id:`set-types-bundle`,children:_jsx(_components.code,{children:`setTypesBundle(bundle: string | OldTypesBundle | OldSpecsBundle | PolkadotjsTypesBundle)`})}),`\n`,_jsxs(_components.p,{children:[`Sets a `,_jsx(_components.a,{href:`https://substrate.stackexchange.com/a/1231/4655`,children:`types bundle`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Types bundle is only required for historical blocks which have metadata version below 14 and only if we don’t have built-in support for the chain in question. Most chains listed in the `,_jsx(_components.a,{href:`https://polkadot.js.org/apps/#/explorer`,children:`polkadot.js app`}),` are supported.`]}),`\n`,_jsx(_components.p,{children:`SQD project has its own types bundle format, however, most of polkadotjs types bundles will work as well.`}),`\n`,_jsx(_components.p,{children:`Types bundles can be specified in 2 different ways:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`as a name of a JSON file:`,`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`processor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setTypesBundle`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'typesBundle.json'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`as an `,_jsxs(_components.a,{href:`https://github.com/subsquid/squid-sdk/blob/master/substrate/substrate-runtime/src/metadata/old/types.ts`,children:[_jsx(_components.code,{children:`OldTypesBundle`}),`/`,_jsx(_components.code,{children:`OldSpecsBundle`})]}),` or `,_jsx(_components.a,{href:`https://github.com/subsquid/squid-sdk/blob/master/substrate/substrate-runtime/src/metadata/old/types.ts`,children:_jsx(_components.code,{children:`PolkadotjsTypesBundle`})}),` object:`,`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// OldTypesBundle object`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`processor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setTypesBundle`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` types:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Foo:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'u8'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`]})})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`There a `,_jsx(_components.a,{href:`/en/sdk/squid-sdk/substrate/guides/substrate/types-bundle-miniguide`,children:`mini-guide`}),` on how to obtain type bundles for Substrate chains without relying on SQD tools.`]}),`\n`,_jsx(Heading,{level:`3`,id:`set-prometheus-server`,children:_jsx(_components.code,{children:`setPrometheusServer(server: PrometheusServer)`})}),`\n`,_jsxs(_components.p,{children:[`Sets a custom Prometheus server from `,_jsx(_components.code,{children:`@subsquid/util-internal-processor-tools`}),`.`]}),`\n`,_jsxs(Heading,{level:`3`,id:`set-prometheus-port`,children:[_jsx(_components.code,{children:`setPrometheusPort(port: string | number)`}),` (deprecated)`]}),`\n`,_jsxs(_components.p,{children:[`Sets the port for the built-in Prometheus metrics server. Use `,_jsx(_components.code,{children:`setPrometheusServer()`}),` for new code. `,_jsx(_components.code,{children:`PROCESSOR_PROMETHEUS_PORT`}),` takes precedence over `,_jsx(_components.code,{children:`PROMETHEUS_PORT`}),`; if neither is set, the processor selects an ephemeral port.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Substrate Batch General Settings","sidebarTitle":"General settings","description":"General settings for Squid SDK SubstrateBatchProcessor.","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/general"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"setGateway(url: string | GatewaySettings)","slug":"set-gateway","depth":3,"children":[]},{"title":"setRpcEndpoint(rpc: ChainRpc)","slug":"set-rpc-endpoint","depth":3,"children":[]},{"title":"setDataSource(ds: {archive?: string, chain?: ChainRpc}) (deprecated)","slug":"set-data-source","depth":3,"children":[]},{"title":"setRpcDataIngestionSettings(settings: RpcDataIngestionSettings)","slug":"set-rpc-data-ingestion-settings","depth":3,"children":[]},{"title":"setBlockRange({from: number, to?: number})","slug":"set-block-range","depth":3,"children":[]},{"title":"setFinalityConfirmation(nBlocks: number)","slug":"set-finality-confirmation","depth":3,"children":[]},{"title":"includeAllBlocks(range?: {from: number, to?: number})","slug":"include-all-blocks","depth":3,"children":[]},{"title":"setTypesBundle(bundle: string | OldTypesBundle | OldSpecsBundle | PolkadotjsTypesBundle)","slug":"set-types-bundle","depth":3,"children":[]},{"title":"setPrometheusServer(server: PrometheusServer)","slug":"set-prometheus-server","depth":3,"children":[]},{"title":"setPrometheusPort(port: string | number) (deprecated)","slug":"set-prometheus-port","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/sqd-2119b3c3/b07d1838ac35ff9a/safari-toolbar.js"],"subdomain":"sqd-2119b3c3","siteName":"SQD Documentation","title":"Substrate Batch General Settings - SQD Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ab6aceb40d515db1fb1656c","deploymentId":"6808b07179034f1572602b7f","questionText":"How do I set up RPC endpoint?","status":"active","generatedBy":"contextual","path":"en/sdk/squid-sdk/substrate/reference/substrate-processor/general","createdAt":"2026-09-25T17:18:35.895Z","updatedAt":"2026-09-25T17:18:35.895Z","__v":0},{"_id":"6ab6aceb40d515db1fb1656e","deploymentId":"6808b07179034f1572602b7f","questionText":"Can I disable RPC ingestion?","status":"active","generatedBy":"contextual","path":"en/sdk/squid-sdk/substrate/reference/substrate-processor/general","createdAt":"2026-09-25T17:18:35.895Z","updatedAt":"2026-09-25T17:18:35.895Z","__v":0},{"_id":"6ab6aceb40d515db1fb1656d","deploymentId":"6808b07179034f1572602b7f","questionText":"What is setGateway used for?","status":"active","generatedBy":"contextual","path":"en/sdk/squid-sdk/substrate/reference/substrate-processor/general","createdAt":"2026-09-25T17:18:35.895Z","updatedAt":"2026-09-25T17:18:35.895Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/general","matchLevel":0},"es":{"href":"/es/404","matchLevel":3},"ko":{"href":"/ko/404","matchLevel":3},"de":{"href":"/de/404","matchLevel":3},"tr":{"href":"/tr/404","matchLevel":3},"fr":{"href":"/fr/404","matchLevel":3},"ru":{"href":"/ru/404","matchLevel":3},"pt-BR":{"href":"/pt-BR/404","matchLevel":3},"zh":{"href":"/zh/404","matchLevel":3},"ja":{"href":"/ja/404","matchLevel":3}}},"lastModified":"2026-09-25T17:18:26.785Z","originalFileLocation":"en/sdk/squid-sdk/substrate/reference/substrate-processor/general.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"General settings for Squid SDK SubstrateBatchProcessor.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SQD Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Substrate Batch General Settings - SQD Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"General settings for Squid SDK SubstrateBatchProcessor.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SQD Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sqd-2119b3c3.mintlify.app/_mintlify/api/og/v2?division=Substrate+processor\u0026amp;title=Substrate+Batch+General+Settings\u0026amp;description=General+settings+for+Squid+SDK+SubstrateBatchProcessor.\u0026amp;theme=fdcf458c8520acc4daeceafb\u0026amp;signature=2ec7241ff9ba4a3e773947453ef6e679698d22fec4fdf7bc9707da4a83fc4a79\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Substrate Batch General Settings - SQD Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"General settings for Squid SDK SubstrateBatchProcessor.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sqd-2119b3c3.mintlify.app/_mintlify/api/og/v2?division=Substrate+processor\u0026amp;title=Substrate+Batch+General+Settings\u0026amp;description=General+settings+for+Squid+SDK+SubstrateBatchProcessor.\u0026amp;theme=fdcf458c8520acc4daeceafb\u0026amp;signature=2ec7241ff9ba4a3e773947453ef6e679698d22fec4fdf7bc9707da4a83fc4a79\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/sqd-2119b3c3/L5OEwqNuR6-cqo9-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SQD Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f46e5\">\u003cmeta data-mint-head name=\"msvalidate.01\" content=\"570E8FF88EEAEACE2E2C262AF96E35F3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/sdk/squid-sdk/substrate/reference/substrate-processor/general.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://sqd.dev/#organization\",\"name\":\"SQD\",\"legalName\":\"Subsquid Labs GmbH\",\"url\":\"https://sqd.dev/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://sqd.dev/brand/Symbol_bl-bg.svg\"},\"sameAs\":[\"https://github.com/subsquid\",\"https://www.x.com/hellosqd\",\"https://t.me/subsquid\",\"https://www.youtube.com/@subsquid\",\"https://www.linkedin.com/company/subsquid\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sqd.dev#website\",\"name\":\"SQD Documentation\",\"url\":\"https://docs.sqd.dev\",\"publisher\":{\"@id\":\"https://sqd.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general#webpage\",\"url\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general\",\"name\":\"Substrate Batch General Settings\",\"description\":\"General settings for Squid SDK SubstrateBatchProcessor.\",\"dateModified\":\"2026-09-25T17:18:26.785Z\",\"isPartOf\":{\"@id\":\"https://docs.sqd.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Squid SDK\",\"item\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/quickstart\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reference\",\"item\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/packages-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Substrate processor\",\"item\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/architecture\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Substrate Batch General Settings\",\"item\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general#article\",\"headline\":\"Substrate Batch General Settings\",\"name\":\"Substrate Batch General Settings\",\"description\":\"General settings for Squid SDK SubstrateBatchProcessor.\",\"url\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sqd.dev/en/sdk/squid-sdk/substrate/reference/substrate-processor/general#webpage\"},\"dateModified\":\"2026-09-25T17:18:26.785Z\",\"publisher\":{\"@id\":\"https://sqd.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sqd.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SQD Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SQD Documentation","nav":{"global":{"anchors":[{"anchor":"Announcements","icon":"megaphone","href":"/announcements"},{"anchor":"Changelog","icon":"list","href":"/changelog"}]},"languages":[{"language":"en","tabs":[{"tab":"Getting Started","icon":"house","pages":[{"title":"Getting Started","href":"/en/home"}]},{"tab":"All Networks","hidden":true,"pages":[{"title":"All Networks","href":"/en/data/all-networks"}]},{"tab":"Build","icon":"code","menu":[{"item":"EVM","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/ethereum-color.svg","description":"Ethereum and EVM compatible chains","pages":[{"title":"EVM","href":"/en/sdk/overview"}]},{"item":"Solana","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/sol.png","description":"Solana and SVM compatible chains","pages":[{"title":"Solana","href":"/en/sdk/pipes-sdk/solana/quickstart"}]},{"item":"Hyperliquid","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/hyperliquid-color.svg","description":"HyperCore trade executions","pages":[{"title":"Hyperliquid","href":"/en/sdk/pipes-sdk/hyperliquid/quickstart"}]},{"item":"Bitcoin","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/btc.png","description":"Bitcoin block and UTXO indexing","pages":[{"title":"Bitcoin","href":"/en/sdk/pipes-sdk/bitcoin/quickstart"}]},{"item":"Tron","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/tron.png","description":"Tron network indexing","pages":[{"title":"Tron","href":"/en/sdk/pipes-sdk/tron/quickstart"}]},{"item":"Substrate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/polkadot-color.svg","description":"Polkadot and other Substrate-based chains","groups":[{"group":"Squid SDK","pages":[{"title":"Quickstart","mode":"wide","href":"/en/sdk/squid-sdk/substrate/quickstart"},{"title":"Design","sidebarTitle":"Design","href":"/en/sdk/squid-sdk/substrate/design"},{"title":"How it works","sidebarTitle":"How it works","href":"/en/sdk/squid-sdk/substrate/how-it-works"},{"title":"FAQ","href":"/en/sdk/squid-sdk/substrate/faq"},{"group":"Guides","pages":[{"title":"Make an indexer","href":"/en/sdk/squid-sdk/substrate/guides/make-an-indexer"},{"title":"Writing to Postgres","href":"/en/sdk/squid-sdk/substrate/guides/writing-to-postgres"},{"title":"Serving GraphQL","href":"/en/sdk/squid-sdk/substrate/guides/serving-graphql"},{"title":"Other data destinations","href":"/en/sdk/squid-sdk/substrate/guides/other-data-destinations"},{"title":"Best practices","href":"/en/sdk/squid-sdk/substrate/guides/best-practices"},{"group":"Substrate guides","pages":[{"title":"Substrate data sourcing","href":"/en/sdk/squid-sdk/substrate/guides/substrate/data-sourcing-miniguide"},{"title":"Frontier EVM support","href":"/en/sdk/squid-sdk/substrate/guides/substrate/frontier-evm"},{"title":"Gear support","href":"/en/sdk/squid-sdk/substrate/guides/substrate/gear"},{"title":"Substrate types bundles","href":"/en/sdk/squid-sdk/substrate/guides/substrate/types-bundle-miniguide"}]},{"group":"Migration","pages":[{"title":"Add an API key for legacy gateways","sidebarTitle":"Gateway API key","href":"/en/sdk/squid-sdk/substrate/guides/migration/gateway-api-key"},{"title":"Migrate from The Graph","href":"/en/sdk/squid-sdk/substrate/guides/migration/migrate-from-thegraph"},{"title":"hasura-configuration tool v2","href":"/en/sdk/squid-sdk/substrate/guides/migration/migrate-to-hasura-v2"}]},{"group":"Advanced","pages":[{"title":"Batch Processing","href":"/en/sdk/squid-sdk/substrate/guides/advanced/batch-processing"},{"title":"RPC ingestion and reorgs","href":"/en/sdk/squid-sdk/substrate/guides/advanced/unfinalized-blocks"},{"title":"Squid SDK tips and troubleshooting","sidebarTitle":"Tips and troubleshooting","href":"/en/sdk/squid-sdk/substrate/guides/advanced/tips-and-troubleshooting"},{"title":"Development Environment Setup","href":"/en/sdk/squid-sdk/substrate/guides/advanced/development-environment-setup"},{"title":"CLI Cheatsheet","href":"/en/sdk/squid-sdk/substrate/guides/advanced/cli-cheatsheet"},{"title":"Multichain Indexing","href":"/en/sdk/squid-sdk/substrate/guides/advanced/multichain-indexing"},{"title":"External APIs and IPFS","href":"/en/sdk/squid-sdk/substrate/guides/advanced/external-apis-ipfs"}]}]},{"group":"Examples \u0026 tutorials","pages":[{"title":"Build an Indexer from Scratch","href":"/en/sdk/squid-sdk/substrate/examples-tutorials/build-indexer-from-scratch"},{"title":"Frontier EVM-indexing squid","href":"/en/sdk/squid-sdk/substrate/examples-tutorials/frontier-evm"},{"title":"Substrate Examples","sidebarTitle":"Examples","href":"/en/sdk/squid-sdk/substrate/examples-tutorials/examples-widget"}]},{"group":"Reference","pages":[{"title":"Packages overview","sidebarTitle":"Packages overview","href":"/en/sdk/squid-sdk/substrate/reference/packages-overview"},{"title":"Project Structure","href":"/en/sdk/squid-sdk/substrate/reference/project-structure"},{"group":"Substrate processor","pages":[{"title":"Substrate Processor Architecture","description":"Architecture and internals of Substrate batch processors","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/architecture"},{"title":"Substrate Batch General Settings","sidebarTitle":"General settings","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/general"},{"title":"Data Requests","description":"Subscribe to Substrate events and calls with addEvent and addCall.","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/data-requests"},{"title":"Substrate Field Selection","sidebarTitle":"Field selection","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/field-selection"},{"title":"Block data for Substrate","sidebarTitle":"Block data","href":"/en/sdk/squid-sdk/substrate/reference/substrate-processor/context-interfaces"}]},{"group":"Data stores","pages":[{"title":"Store interface","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/store-interface"},{"title":"TypeORM Store","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/typeorm-store"},{"title":"BigQuery Store","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/bigquery-store"},{"group":"File store","pages":[{"title":"file-store-* packages","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/file-store"},{"title":"CSV support","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/file-store/csv"},{"title":"JSON support","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/file-store/json"},{"title":"Parquet support","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/file-store/parquet"},{"title":"S3 support","href":"/en/sdk/squid-sdk/substrate/reference/data-stores/file-store/s3-dest"}]}]},{"group":"Schema files","pages":[{"title":"Schema file and codegen","href":"/en/sdk/squid-sdk/substrate/reference/schema-files/schema-files-codegen"},{"title":"Entities","href":"/en/sdk/squid-sdk/substrate/reference/schema-files/entities"},{"title":"Entity relations","href":"/en/sdk/squid-sdk/substrate/reference/schema-files/entity-relations"},{"title":"Indexes and constraints","href":"/en/sdk/squid-sdk/substrate/reference/schema-files/indexes-constraints"},{"title":"Interfaces","href":"/en/sdk/squid-sdk/substrate/reference/schema-files/interfaces"},{"title":"Unions and typed JSON","href":"/en/sdk/squid-sdk/substrate/reference/schema-files/unions-typed-json"}]},{"title":"TypeORM model generation","href":"/en/sdk/squid-sdk/substrate/reference/typeorm-codegen"},{"title":"TypeORM migration generation","href":"/en/sdk/squid-sdk/substrate/reference/typeorm-migration"},{"title":"Substrate typegen","sidebarTitle":"Substrate typegen","href":"/en/sdk/squid-sdk/substrate/reference/substrate-typegen"},{"title":"The Frontier package","href":"/en/sdk/squid-sdk/substrate/reference/frontier"},{"group":"OpenReader","pages":[{"title":"OpenReader Overview","href":"/en/sdk/squid-sdk/substrate/reference/openreader/overview"},{"group":"API reference","pages":[{"title":"Core API Introduction","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/intro"},{"title":"Entity Queries","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/queries"},{"title":"AND/OR Filters","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/and-or-filters"},{"title":"Sorting","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/sorting"},{"title":"Pagination","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/paginate-query-results"},{"title":"Nested Field Queries","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/nested-field-queries"},{"title":"Cross-relation Queries","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/cross-relation-field-queries"},{"title":"JSON Queries","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/json-queries"},{"title":"Union Type Resolution","href":"/en/sdk/squid-sdk/substrate/reference/openreader/api/resolve-union-types-interfaces"}]},{"group":"Server configuration","pages":[{"title":"Custom Resolvers","href":"/en/sdk/squid-sdk/substrate/reference/openreader/configuration/custom-resolvers"},{"title":"Authorization","href":"/en/sdk/squid-sdk/substrate/reference/openreader/configuration/authorization"},{"title":"Caching","href":"/en/sdk/squid-sdk/substrate/reference/openreader/configuration/caching"},{"title":"Subscriptions","href":"/en/sdk/squid-sdk/substrate/reference/openreader/configuration/subscriptions"},{"title":"DoS Protection","href":"/en/sdk/squid-sdk/substrate/reference/openreader/configuration/dos-protection"}]}]},{"title":"Hasura configuration tool","href":"/en/sdk/squid-sdk/substrate/reference/hasura-configuration"},{"title":"Creating a squid project","sidebarTitle":"Create a squid","href":"/en/sdk/squid-sdk/substrate/reference/create-squid"},{"title":"Squid SDK Logger","sidebarTitle":"Logger","href":"/en/sdk/squid-sdk/substrate/reference/logger"}]}]}]}]},{"tab":"Deploy","icon":"cloud","pages":[{"title":"Deploy","href":"/en/cloud/overview"}]},{"tab":"Participate","icon":"network","pages":[{"title":"Participate","href":"/en/network/overview"}]},{"tab":"Networks \u0026 Schemas","icon":"database","menu":[{"item":"EVM Data","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/ethereum-color.svg","description":"Ethereum and EVM-compatible chains","pages":[{"title":"EVM Data","href":"/en/data/evm"}]},{"item":"Solana Data","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/sol.png","description":"Solana and SVM-compatible chains","pages":[{"title":"Solana Data","href":"/en/data/solana"}]},{"item":"Hyperliquid Data","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/hyperliquid-color.svg","description":"HyperCore and HyperEVM data","pages":[{"title":"Hyperliquid Data","href":"/en/api/hyperliquid-fills/metadata"}]},{"item":"Bitcoin Data","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/btc.png","description":"Bitcoin block and transaction data","pages":[{"title":"Bitcoin Data","href":"/en/api/bitcoin/metadata"}]},{"item":"Tron Data","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/tron.png","description":"Tron network data","pages":[{"title":"Tron Data","href":"/en/api/tron/metadata"}]},{"item":"Substrate Data","icon":"https://mintlify.s3.us-west-1.amazonaws.com/sqd-2119b3c3/images/chains/polkadot-color.svg","description":"Polkadot and Substrate-based chains","pages":[{"title":"Substrate Data","href":"/en/data/substrate"}]}],"pages":[{"title":"Networks \u0026 Schemas","href":"/en/data/evm"}]},{"tab":"Learn","icon":"book","pages":[{"title":"Learn","href":"/en/other/glossary/glossary"}]},{"tab":"AI","icon":"grip","pages":[{"title":"AI","href":"/en/ai/ai-development"}]}]},{"language":"es","pages":[{"title":"es","href":"/es/404"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/404"}]},{"language":"de","pages":[{"title":"de","href":"/de/404"}]},{"language":"tr","pages":[{"title":"tr","href":"/tr/404"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/404"}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/404"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/404"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/404"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/404"}]}]},"basePath":"","title":"Substrate Batch General Settings - SQD Documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}