Configure Pino-compatible logging for a Solana Pipes SDK pipeline.
solanaPortalStream() accepts a Pino-compatible logger, so you can route pipeline logs to any Pino transport — GCP Cloud Logging, Sentry, or a local pretty-printer. Configure it once on the source; every transformer and target then receives the same instance as ctx.logger.
Only the transport changes per destination — the rest of the pipe above stays the same. Build the transport, then pass pino(transport) as the source logger.
The ctx.logger in transformers and targets is the same logger instance passed to the source. Configure logging once at the source, then use ctx.logger throughout your pipeline.
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 120+ 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 120+ 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":"6ae37faf26581b3df46dceff","collectionId":"3b2fb784-b013-4475-b2f7-5cdc3ae4eb47","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae37faf26581b3df46dceff"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae37faf26581b3df46dceff","clientVersion":"0.0.4044","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/pipes-sdk/solana/guides/advanced-topics/logging","slug":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging","pageMetadata":{"title":"Logging","description":"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging"},"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: \"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.\"\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`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/en/sdk/pipes-sdk/solana/reference/basic-components/source`,children:`solanaPortalStream()`}),` accepts a Pino-compatible `,_jsx(_components.code,{children:`logger`}),`, so you can route pipeline logs to any Pino transport — GCP Cloud Logging, Sentry, or a local pretty-printer. Configure it once on the source; every transformer and target then receives the same instance as `,_jsx(_components.code,{children:`ctx.logger`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`basic-custom-logger`,children:`Basic custom logger`}),`\n`,_jsxs(_components.p,{children:[`Build a Pino transport, pass `,_jsx(_components.code,{children:`pino(transport)`}),` as the source’s `,_jsx(_components.code,{children:`logger`}),`, and the whole pipeline logs through it:`]}),`\n`,_jsx(CodeBlock,{filename:``,expandable:`true`,numberOfLines:`35`,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:`35`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`createTarget`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@subsquid/pipes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`solanaPortalStream`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`solanaQuery`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@subsquid/pipes/solana\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pino`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pino\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` transport`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pino`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`transport`}),_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:` target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pino-pretty\"`}),_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:` options:`}),_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:` colorize:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` translateTime:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"HH:MM:ss\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` source`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` solanaPortalStream`}),_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:` id:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"custom-logging\"`}),_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:` portal:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://portal.sqd.dev/datasets/solana-mainnet\"`}),_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:` outputs:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` solanaQuery`}),_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\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`addFields`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`block:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`number:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`timestamp:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`includeAllBlocks`}),_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\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`build`}),_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:` logger:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` pino`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transport`}),_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`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` source`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`pipeTo`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createTarget`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` write`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({ `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`logger`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`read`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`of`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` read`}),_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:` logger`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`info`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`count:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Processed batch\"`}),_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`,_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`,_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`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`void`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`cloud-transports`,children:`Cloud transports`}),`\n`,_jsxs(_components.p,{children:[`Only the `,_jsx(_components.code,{children:`transport`}),` changes per destination — the rest of the pipe above stays the same. Build the transport, then pass `,_jsx(_components.code,{children:`pino(transport)`}),` as the source `,_jsx(_components.code,{children:`logger`}),`.`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`GCP Cloud Logging`,id:`gcp-cloud-logging`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,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:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` transport`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pino`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`transport`}),_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:` target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@google-cloud/logging-pino\"`}),_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:` options:`}),_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:` projectId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"your-project-id\"`}),_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:` logName:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pipes-indexer\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})})}),_jsxs(Tab,{title:`Sentry`,id:`sentry`,children:[_jsxs(_components.p,{children:[`Route only errors to Sentry, and wrap the write loop so failures surface as `,_jsx(_components.code,{children:`logger.error`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,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:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` transport`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pino`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`transport`}),_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:` target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pino-sentry-transport\"`}),_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:` options:`}),_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:` sentry:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dsn:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`SENTRY_DSN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`environment:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"production\"`}),_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:` level:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// only forward errors to Sentry`})]}),`\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`]})})})]}),_jsxs(Tab,{title:`Multiple transports`,id:`multiple-transports`,children:[_jsx(_components.p,{children:`Fan out to several destinations at once, each with its own level:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,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:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` transport`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pino`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`transport`}),_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:` targets:`}),_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\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pino-pretty\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`colorize:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`level:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"info\"`}),_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\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@google-cloud/logging-pino\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`projectId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"your-project-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`level:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"info\"`}),_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\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pino-sentry-transport\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sentry:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dsn:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`SENTRY_DSN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } }, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`level:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"error\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`ctx.logger`}),` in transformers and targets is the same logger instance passed to the source. Configure logging once at the source, then use `,_jsx(_components.code,{children:`ctx.logger`}),` throughout your pipeline.`]})})]})}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":"Logging","description":"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Basic custom logger","slug":"basic-custom-logger","depth":2,"children":[]},{"title":"Cloud transports","slug":"cloud-transports","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/sqd-2119b3c3/b07d1838ac35ff9a/safari-toolbar.js"],"subdomain":"sqd-2119b3c3","siteName":"SQD Documentation","title":"Logging - SQD Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6a71b12c84ea1ad2a62a5199","deploymentId":"6808b07179034f1572602b7f","questionText":"How do I log pipeline data?","status":"active","generatedBy":"contextual","path":"en/sdk/pipes-sdk/solana/guides/advanced-topics/logging","createdAt":"2026-08-04T09:30:20.444Z","updatedAt":"2026-08-04T09:30:20.444Z","__v":0},{"_id":"6a71b12c84ea1ad2a62a5197","deploymentId":"6808b07179034f1572602b7f","questionText":"How do I set up custom logging?","status":"active","generatedBy":"contextual","path":"en/sdk/pipes-sdk/solana/guides/advanced-topics/logging","createdAt":"2026-08-04T09:30:20.444Z","updatedAt":"2026-08-04T09:30:20.444Z","__v":0},{"_id":"6a71b12c84ea1ad2a62a5198","deploymentId":"6808b07179034f1572602b7f","questionText":"What Pino transports are supported?","status":"active","generatedBy":"contextual","path":"en/sdk/pipes-sdk/solana/guides/advanced-topics/logging","createdAt":"2026-08-04T09:30:20.444Z","updatedAt":"2026-08-04T09:30:20.444Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging","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-07-31T18:10:05.811Z","originalFileLocation":"en/sdk/pipes-sdk/solana/guides/advanced-topics/logging.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=\"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.\">\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=\"Logging - SQD Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.\">\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/pipes-sdk/solana/guides/advanced-topics/logging\">\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=Advanced+topics\u0026amp;title=Logging\u0026amp;description=Configure+Pino-compatible+logging+for+a+Solana+Pipes+SDK+pipeline.\u0026amp;theme=fdcf458c8520acc4daeceafb\u0026amp;signature=2c3efd2ebdba80aa12471905517f32e8ef17174390cf7ec32ad5316228ce63c3\">\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=\"Logging - SQD Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sqd-2119b3c3.mintlify.app/_mintlify/api/og/v2?division=Advanced+topics\u0026amp;title=Logging\u0026amp;description=Configure+Pino-compatible+logging+for+a+Solana+Pipes+SDK+pipeline.\u0026amp;theme=fdcf458c8520acc4daeceafb\u0026amp;signature=2c3efd2ebdba80aa12471905517f32e8ef17174390cf7ec32ad5316228ce63c3\">\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/pipes-sdk/solana/guides/advanced-topics/logging\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging.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/pipes-sdk/solana/guides/advanced-topics/logging#webpage\",\"url\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging\",\"name\":\"Logging\",\"description\":\"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.\",\"dateModified\":\"2026-07-31T18:10:05.811Z\",\"isPartOf\":{\"@id\":\"https://docs.sqd.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Pipes SDK\",\"item\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/quickstart\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guides\",\"item\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/basic-development/anatomy\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Advanced topics\",\"item\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/stateful-transforms\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Logging\",\"item\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging#article\",\"headline\":\"Logging\",\"name\":\"Logging\",\"description\":\"Configure Pino-compatible logging for a Solana Pipes SDK pipeline.\",\"url\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sqd.dev/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging#webpage\"},\"dateModified\":\"2026-07-31T18:10:05.811Z\",\"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","groups":[{"group":"Pipes SDK","icon":"text-align-start","tag":"1.0.0-beta.8","pages":[{"title":"Quickstart","href":"/en/sdk/pipes-sdk/solana/quickstart"},{"title":"Why Pipes SDK?","href":"/en/sdk/pipes-sdk/solana/why-pipes-sdk"},{"title":"Migrate to 1.0","sidebarTitle":"Migrating to 1.0","href":"/en/sdk/pipes-sdk/solana/migration"},{"group":"Guides","pages":[{"group":"Basic development","pages":[{"title":"Pipe anatomy","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/anatomy"},{"title":"Developing pipes","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/flow"},{"title":"Handling program instructions","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/handling-instructions"},{"title":"Running bare bones","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/running-bare-bones"},{"title":"Pipes UI","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/pipes-ui"},{"title":"Testing pipes","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/testing"},{"title":"Dev runner","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/dev-runner"},{"group":"Configuring targets","pages":[{"title":"Postgres via Drizzle","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/targets/postgres-drizzle"},{"title":"ClickHouse","href":"/en/sdk/pipes-sdk/solana/guides/basic-development/targets/clickhouse"}]}]},{"group":"Advanced topics","pages":[{"title":"Stateful transforms","description":"Compare six ways to maintain state across Solana Pipes SDK batches.","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/stateful-transforms"},{"title":"Logging","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/logging"},{"title":"Metrics","description":"Track custom Prometheus metrics in Solana pipes","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/metrics"},{"title":"Profiling","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/profiling"},{"title":"OpenTelemetry tracing","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/tracing"},{"title":"Data freshness monitoring","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/latency-monitoring"},{"title":"Railway deployment","href":"/en/sdk/pipes-sdk/solana/guides/advanced-topics/railway-deployment"}]},{"group":"Architecture deep dives","pages":[{"title":"Cursor management","href":"/en/sdk/pipes-sdk/solana/guides/architecture-deep-dives/cursor-management"},{"title":"Fork handling","href":"/en/sdk/pipes-sdk/solana/guides/architecture-deep-dives/fork-handling"}]}]},{"group":"Reference","pages":[{"group":"Basic components","pages":[{"title":"Portal stream","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/source"},{"title":"Query builder","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/query-builder"},{"title":"Transformer","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/transformer"},{"group":"Target","pages":[{"title":"createTarget","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/target/create-target"},{"title":"drizzleTarget","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/target/postgres-drizzle"},{"title":"clickhouseTarget","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/target/clickhouse"},{"title":"bigqueryTarget","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/target/bigquery"},{"title":"parquetTarget","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/target/parquet"},{"title":"pubsubTarget","href":"/en/sdk/pipes-sdk/solana/reference/basic-components/target/pubsub"}]}]},{"group":"Utility components","pages":[{"title":"solanaInstructionDecoder","href":"/en/sdk/pipes-sdk/solana/reference/utility-components/instruction-decoder"},{"title":"portalSqliteCache","href":"/en/sdk/pipes-sdk/solana/reference/utility-components/sqlite-cache"},{"title":"metricsServer","href":"/en/sdk/pipes-sdk/solana/reference/utility-components/metrics-server"},{"title":"solanaRpcLatencyWatcher","href":"/en/sdk/pipes-sdk/solana/reference/utility-components/rpc-latency-watcher"}]},{"title":"Error reference","href":"/en/sdk/pipes-sdk/reference/errors"}]}]},{"group":"Squid SDK","pages":[{"title":"Quickstart","mode":"wide","href":"/en/sdk/squid-sdk/solana/quickstart"},{"title":"Design","sidebarTitle":"Design","href":"/en/sdk/squid-sdk/solana/design"},{"title":"How it works","sidebarTitle":"How it works","href":"/en/sdk/squid-sdk/solana/how-it-works"},{"title":"FAQ","href":"/en/sdk/squid-sdk/solana/faq"},{"group":"Guides","pages":[{"title":"Make an indexer","href":"/en/sdk/squid-sdk/solana/guides/make-an-indexer"},{"title":"Writing to Postgres","href":"/en/sdk/squid-sdk/solana/guides/writing-to-postgres"},{"title":"Serving GraphQL","href":"/en/sdk/squid-sdk/solana/guides/serving-graphql"},{"title":"Other data destinations","href":"/en/sdk/squid-sdk/solana/guides/other-data-destinations"},{"title":"Best practices","href":"/en/sdk/squid-sdk/solana/guides/best-practices"},{"group":"Migration","pages":[{"title":"Migrate a squid to Portal","sidebarTitle":"Migrate to Portal","mode":"wide","href":"/en/sdk/squid-sdk/solana/guides/migration/gateway-to-portal"},{"title":"How to use your dedicated Portal with a key","sidebarTitle":"Dedicated Portal key","href":"/en/sdk/squid-sdk/solana/guides/migration/portal-api-key"},{"title":"Solana block height to slot converter","sidebarTitle":"Height → slot converter","href":"/en/sdk/squid-sdk/solana/guides/migration/height-to-slot"},{"title":"Migrate from The Graph","href":"/en/sdk/squid-sdk/solana/guides/migration/migrate-from-thegraph"},{"title":"hasura-configuration tool v2","href":"/en/sdk/squid-sdk/solana/guides/migration/migrate-to-hasura-v2"}]},{"group":"Advanced","pages":[{"title":"Batch Processing","href":"/en/sdk/squid-sdk/solana/guides/advanced/batch-processing"},{"title":"Unfinalized blocks and reorgs","href":"/en/sdk/squid-sdk/solana/guides/advanced/unfinalized-blocks"},{"title":"Squid SDK tips and troubleshooting","sidebarTitle":"Tips and troubleshooting","href":"/en/sdk/squid-sdk/solana/guides/advanced/tips-and-troubleshooting"},{"title":"Development Environment Setup","href":"/en/sdk/squid-sdk/solana/guides/advanced/development-environment-setup"},{"title":"CLI Cheatsheet","href":"/en/sdk/squid-sdk/solana/guides/advanced/cli-cheatsheet"},{"title":"Multichain Indexing","href":"/en/sdk/squid-sdk/solana/guides/advanced/multichain-indexing"},{"title":"External APIs and IPFS","href":"/en/sdk/squid-sdk/solana/guides/advanced/external-apis-ipfs"}]}]},{"group":"Examples \u0026 tutorials","pages":[{"title":"Build an Indexer from Scratch","href":"/en/sdk/squid-sdk/solana/examples-tutorials/build-indexer-from-scratch"},{"title":"Indexing Orca Whirlpool","href":"/en/sdk/squid-sdk/solana/examples-tutorials/indexing-orca"},{"title":"Solana Examples","sidebarTitle":"Examples","href":"/en/sdk/squid-sdk/solana/examples-tutorials/examples-widget"}]},{"group":"Reference","pages":[{"title":"Packages overview","sidebarTitle":"Packages overview","href":"/en/sdk/squid-sdk/solana/reference/packages-overview"},{"title":"Project Structure","href":"/en/sdk/squid-sdk/solana/reference/project-structure"},{"title":"Portal batch processor","sidebarTitle":"Portal batch processor","href":"/en/sdk/squid-sdk/solana/reference/batch-processor"},{"group":"Solana stream","pages":[{"title":"General settings","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/general"},{"title":"Instructions","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/instructions"},{"title":"Transactions","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/transactions"},{"title":"Log messages","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/logs"},{"title":"Balances","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/balances"},{"title":"Token balances","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/token-balances"},{"title":"Rewards","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/rewards"},{"title":"Field selection","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/field-selection"},{"title":"Block data for Solana","sidebarTitle":"Block data","href":"/en/sdk/squid-sdk/solana/reference/solana-stream/context-interfaces"}]},{"group":"Data stores","pages":[{"title":"Store interface","href":"/en/sdk/squid-sdk/solana/reference/data-stores/store-interface"},{"title":"TypeORM Store","href":"/en/sdk/squid-sdk/solana/reference/data-stores/typeorm-store"},{"title":"BigQuery Store","href":"/en/sdk/squid-sdk/solana/reference/data-stores/bigquery-store"},{"group":"File store","pages":[{"title":"file-store-* packages","href":"/en/sdk/squid-sdk/solana/reference/data-stores/file-store"},{"title":"CSV support","href":"/en/sdk/squid-sdk/solana/reference/data-stores/file-store/csv"},{"title":"JSON support","href":"/en/sdk/squid-sdk/solana/reference/data-stores/file-store/json"},{"title":"Parquet support","href":"/en/sdk/squid-sdk/solana/reference/data-stores/file-store/parquet"},{"title":"S3 support","href":"/en/sdk/squid-sdk/solana/reference/data-stores/file-store/s3-dest"}]}]},{"group":"Schema files","pages":[{"title":"Schema file and codegen","href":"/en/sdk/squid-sdk/solana/reference/schema-files/schema-files-codegen"},{"title":"Entities","href":"/en/sdk/squid-sdk/solana/reference/schema-files/entities"},{"title":"Entity relations","href":"/en/sdk/squid-sdk/solana/reference/schema-files/entity-relations"},{"title":"Indexes and constraints","href":"/en/sdk/squid-sdk/solana/reference/schema-files/indexes-constraints"},{"title":"Interfaces","href":"/en/sdk/squid-sdk/solana/reference/schema-files/interfaces"},{"title":"Unions and typed JSON","href":"/en/sdk/squid-sdk/solana/reference/schema-files/unions-typed-json"}]},{"title":"TypeORM model generation","href":"/en/sdk/squid-sdk/solana/reference/typeorm-codegen"},{"title":"TypeORM migration generation","href":"/en/sdk/squid-sdk/solana/reference/typeorm-migration"},{"title":"Solana typegen","sidebarTitle":"Typegen","href":"/en/sdk/squid-sdk/solana/reference/solana-typegen"},{"group":"OpenReader","pages":[{"title":"OpenReader Overview","href":"/en/sdk/squid-sdk/solana/reference/openreader/overview"},{"group":"API reference","pages":[{"title":"Core API Introduction","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/intro"},{"title":"Entity Queries","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/queries"},{"title":"AND/OR Filters","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/and-or-filters"},{"title":"Sorting","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/sorting"},{"title":"Pagination","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/paginate-query-results"},{"title":"Nested Field Queries","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/nested-field-queries"},{"title":"Cross-relation Queries","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/cross-relation-field-queries"},{"title":"JSON Queries","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/json-queries"},{"title":"Union Type Resolution","href":"/en/sdk/squid-sdk/solana/reference/openreader/api/resolve-union-types-interfaces"}]},{"group":"Server configuration","pages":[{"title":"Custom Resolvers","href":"/en/sdk/squid-sdk/solana/reference/openreader/configuration/custom-resolvers"},{"title":"Authorization","href":"/en/sdk/squid-sdk/solana/reference/openreader/configuration/authorization"},{"title":"Caching","href":"/en/sdk/squid-sdk/solana/reference/openreader/configuration/caching"},{"title":"Subscriptions","href":"/en/sdk/squid-sdk/solana/reference/openreader/configuration/subscriptions"},{"title":"DoS Protection","href":"/en/sdk/squid-sdk/solana/reference/openreader/configuration/dos-protection"}]}]},{"title":"Hasura configuration tool","href":"/en/sdk/squid-sdk/solana/reference/hasura-configuration"},{"title":"Creating a squid project","sidebarTitle":"Create a squid","href":"/en/sdk/squid-sdk/solana/reference/create-squid"},{"title":"Squid SDK Logger","sidebarTitle":"Logger","href":"/en/sdk/squid-sdk/solana/reference/logger"}]}]}]},{"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","pages":[{"title":"Substrate","href":"/en/sdk/squid-sdk/substrate/quickstart"}]}]},{"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":"Logging - SQD Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}