PageSourceSearch

https://dashboard.quicknode.com/_next/static/chunks/e2f6a89d50d9b09c.js

js quicknode.com collected 2026-10-01 08:48:30 UTC 49,222 bytes, 6 lines download raw bytes

1
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5c376a28-dffa-57db-b5b3-ae0d9e786177")}catch(e){}}();
3(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,922079,e=>{e.v({codeSurface:"DeveloperTools-module__dCZp7q__codeSurface",copyHint:"DeveloperTools-module__dCZp7q__copyHint",copyHintBlock:"DeveloperTools-module__dCZp7q__copyHintBlock",copyHintLabel:"DeveloperTools-module__dCZp7q__copyHintLabel",gridSweep:"DeveloperTools-module__dCZp7q__gridSweep"})},997520,423559,847355,244254,e=>{"use strict";e.s([],997520);var n=e.i(867872),a=e.i(691846),t=e.i(376164),o=e.i(579103),l=e.i(477794),i=e.i(417740),r=e.i(698788),c=e.i(340726),s=e.i(655027);e.i(663450);var d=e.i(850191),u=e.i(320914),m=e.i(938211),p=e.i(277766),b=e.i(171703);e.i(162433);var k=e.i(422958),h=e.i(922079);e.i(989289);var g=e.i(774851);let w=e=>{let{block:a,copied:o,error:l}=e;return(0,n.jsxs)("span",{"aria-hidden":!0,className:"".concat(h.default.copyHint," ").concat(a?h.default.copyHintBlock:""),children:[(0,n.jsx)("span",{className:h.default.copyHintLabel,children:"Click to copy"}),(0,n.jsx)(t.Icon,{name:o?"check":l?"warning":"copy",size:16})]})},y=e=>(0,p.useCopyToClipboard)({onCopy:()=>{(0,k.toast)({variant:"success",title:"Copied to clipboard!"}),e()}}),v=e=>{let{children:a,copyText:t,onCopy:o}=e,{copied:l,error:i,copy:r}=y(o);return(0,n.jsxs)("button",{type:"button","aria-label":"Copy code",className:"".concat(h.default.codeSurface," border-(--border) bg-(--background) flex h-8 w-full max-w-full items-center gap-2 border py-0 pl-3 pr-2 text-left align-middle"),onClick:()=>void r(t),children:[(0,n.jsx)("span",{className:"text-(--foreground) z-1 relative min-w-0 flex-1 truncate font-mono text-sm",children:a}),(0,n.jsx)(w,{copied:l,error:i}),(0,n.jsx)("span",{role:"status","aria-live":"polite",className:"sr-only",children:l?"Copied":i?"Copy failed":""})]})},f=e=>{let{code:a,copyText:t,language:o,onCopy:l}=e,{copied:i,error:r,copy:c}=y(l);return(0,n.jsxs)("div",{role:"button",tabIndex:0,"aria-label":"Copy code",className:h.default.codeSurface,onClick:()=>void c(t),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(t))},children:[(0,n.jsx)(u.Code,{code:a,language:o,showLineNumbers:!1,wrap:!0,className:"[&_pre]:pr-14 sm:[&_pre]:pr-32"}),(0,n.jsx)(w,{block:!0,copied:i,error:r}),(0,n.jsx)("span",{role:"status","aria-live":"polite",className:"sr-only",children:i?"Copied":r?"Copy failed":""})]})},_=e=>{let{tool:a,surface:o,task:l}=e,i=(0,d.useAnalytics)();return(0,n.jsx)(g.default,{variant:"secondary",href:a.docsHref,target:"_blank",rel:"noreferrer",rightAccessory:(0,n.jsx)(t.Icon,{name:"external",size:16}),onPress:()=>i.track("Clicked Developer Tools Docs",{tool:a.id,task:l,href:a.docsHref,surface:o}),children:(0,n.jsxs)("span",{children:[(0,n.jsx)(m.ScrambleText,{playOnMount:!0,disableHover:!0,children:a.label},a.id)," ","docs"]})})},q=e=>{var a,t,o;let{tool:l,surface:r,task:s,activeVariantId:u,onSelectVariant:m}=e,p=(0,d.useAnalytics)(),k=null!=(a=l.variants.find(e=>{let{id:n}=e;return n===u}))?a:l.variants[0],h={task:s,tool:l.id,variant:null==k?void 0:k.id,surface:r},g=(e,n)=>()=>{p.track("Clicked Copy Code Snippet",{...h,kind:e.kind,label:e.label,position:n+1})},w=new Map;return null==k||k.rows.forEach((e,n)=>{"text"===e.kind&&w.set(n,w.size+1)}),(0,n.jsxs)("div",{className:"flex flex-col gap-4 font-sans normal-case",children:[l.variants.length>1?(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)(c.Text,{as:"span",color:"faint",size:"sm",className:"shrink-0",children:null!=(t=l.variantLabel)?t:"Option"}),(0,n.jsx)(i.Select,{"aria-label":"".concat(l.label," ").concat(null!=(o=l.variantLabel)?o:"option"),items:l.variants.map(e=>{let{id:n,label:a}=e;return{value:n,label:a}}),value:null==k?void 0:k.id,onValueChange:m})]}):null,null==k?void 0:k.rows.map((e,a)=>{var t,o,l,i,r;let s="".concat(k.id,"-").concat(a),d=(e=>"text"!==e.kind&&e.label?"// ".concat(e.label):null)(e),u="code"===e.kind&&!e.code.includes("\n"),m="command"===e.kind&&e.command.includes("\n");return(0,n.jsxs)("div",{className:"border-(--border) flex flex-col gap-1 border-b pb-4 last:border-b-0 last:pb-0",children:[d?(0,n.jsx)(c.Text,{as:"span",color:"faint",size:"sm",className:"font-mono",children:d}):null,"text"===e.kind?(0,n.jsxs)(c.Text,{as:"span",size:"sm",children:[(0,n.jsx)(c.Text,{as:"span",color:"faint",size:"sm",className:"mr-2 font-mono",children:null!=(t=e.label)?t:"".concat(w.get(a),".")}),e.text,e.link?(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsx)(b.default,{href:e.link.href,className:"underline decoration-dotted underline-offset-4 hover:opacity-75",onClick:()=>{var n,a;return p.track("Clicked Developer Tools Link",{...h,href:null==(n=e.link)?void 0:n.href,label:null==(a=e.link)?void 0:a.label})},children:e.link.label})]}):null]}
3):null,"command"!==e.kind||m?null:(0,n.jsx)(v,{copyText:null!=(o=e.copyCommand)?o:e.command,onCopy:g(e,a),children:(e=>{let a=e.search(/\s/),t=-1===a?e:e.slice(0,a),o=-1===a?"":e.slice(a);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"text-(--accent)",children:t}),o]})})(e.command)}),"command"===e.kind&&m?(0,n.jsx)(f,{code:e.command,copyText:null!=(l=e.copyCommand)?l:e.command,language:"bash",onCopy:g(e,a)}):null,"code"===e.kind&&u?(0,n.jsx)(v,{copyText:null!=(i=e.copyCode)?i:e.code,onCopy:g(e,a),children:e.code}):null,"code"!==e.kind||u?null:(0,n.jsx)(f,{code:e.code,copyText:null!=(r=e.copyCode)?r:e.code,language:e.language,onCopy:g(e,a)})]},s)})]})};e.s(["createEndpointTools",()=>z,"endpointArticle",()=>Z,"endpointUsageTools",()=>F,"homeDeveloperTasks",()=>G],423559);let S="https://www.quicknode.com/docs/cli",C="https://www.quicknode.com/docs/build-with-ai/quicknode-mcp",x="https://www.quicknode.com/docs/sdk",j=(e,n)=>{let a=" ".repeat(n);return e.split("\n").map(e=>e?"".concat(a).concat(e):e).join("\n")},N=(e,n)=>{let a=e.length?"import {\n  QuicknodeSdk,\n".concat(e.map(e=>"  ".concat(e,",")).join("\n"),'\n} from "@quicknode/sdk";'):'import { QuicknodeSdk } from "@quicknode/sdk";';return"".concat(a,'\n\nconst qn = new QuicknodeSdk({ apiKey: "YOUR_API_KEY" });\n\n').concat(n)},T=(e,n)=>{let a=e.length?"from quicknode_sdk import (\n    QuicknodeSdk,\n    SdkFullConfig,\n".concat(e.map(e=>"    ".concat(e,",")).join("\n"),"\n)"):"from quicknode_sdk import QuicknodeSdk, SdkFullConfig";return"import asyncio\n".concat(a,'\n\nasync def main():\n    qn = QuicknodeSdk(SdkFullConfig(api_key="YOUR_API_KEY"))\n\n').concat(j(n,4),"\n\nasyncio.run(main())")},O=(e,n)=>{let a=e.length?"use quicknode_sdk::{\n    QuicknodeSdk,\n    SdkFullConfig,\n".concat(e.map(e=>"    ".concat(e,",")).join("\n"),"\n};"):"use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};";return"".concat(a,'\n\n#[tokio::main]\nasync fn main() -> Result<(), Box<dyn std::error::Error>> {\n    let config = SdkFullConfig::builder().api_key("YOUR_API_KEY").build();\n    let qn = QuicknodeSdk::new(&config)?;\n\n').concat(j(n,4),"\n\n    Ok(())\n}")},I=e=>'require "quicknode_sdk"\n\nqn = QuicknodeSdk::SDK.from_config(api_key: "YOUR_API_KEY")\n\n'.concat(e),A={kind:"code",label:"Configure the provider",language:"hcl",code:'terraform {\n  required_providers {\n    quicknode = {\n      source  = "quicknode/quicknode"\n      version = "~> 0.4.0"\n    }\n  }\n}\n\n# Reads the API key from QUICKNODE_API_KEY. Set api_key here to override it.\nprovider "quicknode" {}'},P={kind:"code",label:"Apply",language:"bash",code:"export QUICKNODE_API_KEY=YOUR_API_KEY\nterraform init\nterraform apply"},R=(e,n)=>{let a=(null!=e?e:"").toLowerCase().replace(/[^a-z0-9_]+/g,"_").slice(0,40).replace(/^_+|_+$/g,"");return a?/^[0-9]/.test(a)?"_".concat(a):a:n},L=e=>{let{name:n,chain:a,network:t,label:o,multichain:l=!1,status:i="active"}=e,r=[["chain",JSON.stringify(a)],["network",JSON.stringify(t)],...o?[["label",JSON.stringify(o)]]:[],["status",JSON.stringify(i)],["multichain",String(l)]],c=Math.max(...r.map(e=>{let[n]=e;return n.length})),s=r.map(e=>{let[n,a]=e;return"  ".concat(n.padEnd(c)," = ").concat(a)}).join("\n");return'resource "quicknode_endpoint" '.concat(JSON.stringify(n)," {\n").concat(s,"\n}")},E=e=>({id:"terraform",label:"Terraform",icon:"terraform",docsHref:"https://registry.terraform.io/providers/quicknode/quicknode/latest/docs",variants:[{id:"hcl",label:"HCL",rows:e}]}),D=(e,n)=>"qn rpc call ".concat(e," \\\n  --endpoint-url \\\n  ").concat("'".concat(n.replaceAll("'","'\\''"),"'")),H=(e,n)=>N([],"const endpointUrl = ".concat(JSON.stringify(n),";\n\nconst block = await qn.rpc.call(\n  ").concat(JSON.stringify(e),",\n  [],\n  undefined,\n  endpointUrl,\n);")),U=(e,n)=>T([],"endpoint_url = ".concat(JSON.stringify(n),"\n\nblock = await qn.rpc.call(\n    ").concat(JSON.stringify(e),",\n    endpoint_url=endpoint_url,\n)")),K=(e,n)=>O([],"let endpoint_url = ".concat(JSON.stringify(n),";\n\nlet block = qn\n    .rpc\n    .call(\n        ").concat(JSON.stringify(e),",\n        None,\n        None,\n        Some(endpoint_url.into()),\n    )\n    .await?;")),M=(e,n)=>I("endpoint_url = ".concat(JSON.stringify(n),"\n\nblock = qn.rpc.call(\n  method: ").concat(JSON.stringify(e),",\n  endpoint_url: endpoint_url,\n)")),J=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return[{id:"macos",label:"macOS",rows:[{kind:"command",label:"macOS (Homebrew)",command:"brew install quicknode/tap/qn"},{kind:"command",label:"Log in",command:"qn auth login"},...e]},{id:"windows",label:"Windows",rows:[{kind:"code",label:"Windows (Scoop)",language:"powershell",code:"scoop bucket add quicknode https://github.com/quicknode/scoop-bucket\nscoop install quicknode/qn"},{kind:"command",label:"Log in",command:"qn auth login"},...e]},{id:"debian-ubuntu",label:"Debian/Ubuntu",rows:[{kind:"code",label:"Linux (Debian, Ubuntu)",language:"bash",code:"# Check your architecture first\ndpkg --print-architecture\n\n# amd64 (Intel/AMD)\ncurl -LO https://github.com/quicknode/cli
3/releases/latest/download/qn_amd64.deb\nsudo apt install ./qn_amd64.deb\n\n# arm64\ncurl -LO https://github.com/quicknode/cli/releases/latest/download/qn_arm64.deb\nsudo apt install ./qn_arm64.deb"},{kind:"command",label:"Log in",command:"qn auth login"},...e]},{id:"arch-linux",label:"Arch Linux",rows:[{kind:"command",label:"Arch Linux (AUR)",command:"yay -S qn-bin"},{kind:"command",label:"Log in",command:"qn auth login"},...e]},{id:"fedora-epel",label:"Fedora/EPEL",rows:[{kind:"code",label:"Fedora/EPEL (COPR)",language:"bash",code:"sudo dnf copr enable quicknode/qn\nsudo dnf install qn"},{kind:"command",label:"Log in",command:"qn auth login"},...e]},{id:"docker",label:"Docker",rows:[{kind:"command",label:"Pull the container image",command:"docker pull ghcr.io/quicknode/qn:latest"},...e.map(e=>{var n,a;return"command"===e.kind?{...e,command:e.command.replace("qn ","docker run --rm ghcr.io/quicknode/qn:latest "),copyCommand:null==(a=e.copyCommand)?void 0:a.replace("qn ","docker run --rm ghcr.io/quicknode/qn:latest ")}:"code"!==e.kind?e:{...e,code:e.code.replace("qn ","docker run --rm ghcr.io/quicknode/qn:latest "),copyCode:null==(n=e.copyCode)?void 0:n.replace("qn ","docker run --rm ghcr.io/quicknode/qn:latest ")}})]},{id:"cargo",label:"Cargo",rows:[{kind:"command",label:"Rust (Cargo)",command:"cargo install quicknode-cli"},{kind:"command",label:"Log in",command:"qn auth login"},...e]}]},W=[{id:"claude",label:"Claude",rows:[{kind:"code",label:"Add the Quicknode MCP server",language:"bash",code:"claude mcp add --transport http quicknode https://mcp.quicknode.com/mcp"}]},{id:"codex",label:"Codex",rows:[{kind:"code",label:"Add the Quicknode MCP server",language:"bash",code:"codex mcp add quicknode \\\n  --url https://mcp.quicknode.com/mcp \\\n  --bearer-token-env-var YOUR_API_KEY"}]},{id:"cursor",label:"Cursor",rows:[{kind:"code",label:"Add to .curs
3or/mcp.json",language:"json",code:JSON.stringify({mcpServers:{quicknode:{url:"https://mcp.quicknode.com/mcp"}}},null,2)}]},{id:"vscode",label:"VS Code",rows:[{kind:"code",label:"Add to .vscode/mcp.json",language:"json",code:JSON.stringify({mcp:{servers:{quicknode:{type:"http",url:"https://mcp.quicknode.com/mcp"}}}},null,2)}]},{id:"windsurf",label:"Windsurf",rows:[{kind:"code",label:"Add to ~/.codeium/windsurf/mcp_config.json",language:"json",code:JSON.stringify({mcpServers:{quicknode:{serverUrl:"https://mcp.quicknode.com/mcp"}}},null,2)}]},{id:"zed",label:"Zed",rows:[{kind:"code",label:"Add to Zed settings",language:"json",code:JSON.stringify({context_servers:{quicknode:{transport:"http",url:"https://mcp.quicknode.com/mcp"}}},null,2)}]}],Q=(e,n,a)=>{let{copyCode:t,displayCode:o}=a;return e?[{kind:"code",label:"Call this endpoint",language:n,code:o,copyCode:t}]:[]},Y=function(){let{method:e,endpointUrl:n,displayEndpointUrl:a,requestRows:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[{id:"api",label:"API",icon:"API",docsHref:"https://www.quicknode.com/docs",variants:[{id:"json-rpc",label:"JSON-RPC",rows:[{kind:"text",text:"Choose a method and send a request to this endpoint."}]}]},{id:"cli",label:"CLI",icon:"CLI",docsHref:S,variantLabel:"OS",variants:J(t)},{id:"mcp",label:"MCP",icon:"MCP",docsHref:C,variantLabel:"Client",variants:W},{id:"sdk",label:"SDK",icon:"SDK",docsHref:x,variantLabel:"Language",variants:(e=>{let{method:n,endpointUrl:a,displayEndpointUrl:t}=e;return[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},...Q(n,"typescript",{copyCode:H(n,a),displayCode:H(n,t)})]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},...Q(n,"python",{copyCode:U(n,a),displayCode:U(n,t)})]},{id:"rust",label:"Rust",rows:[{kind:"command",label:"Install",command:"cargo add quicknode-sdk"},...Q(n,"rust",{copyCode:K(n,a),displayCode:K(n,t)})]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},...Q(n,"ruby",{copyCode:M(n,a),displayCode:M(n,t)})]}]})({method:e,endpointUrl:n,displayEndpointUrl:a})}]},F=e=>{let{method:n,endpointUrl:a,displayEndpointUrl:t,includeApi:o,endpointId:l,chain:i,network:r,label:c,multichain:s,status:d}=e;return[...Y({method:n,endpointUrl:a,displayEndpointUrl:t,requestRows:[{kind:"command",label:"Call this endpoint",command:D(n,t),copyCommand:D(n,a)}]}).filter(e=>"mcp"!==e.id&&(o||"api"!==e.id)),E((e=>{let{endpointId:n,chain:a,network:t,label:o,multichain:l,status:i}=e,r=R(o,"endpoint");return[A,{kind:"code",label:"Manage this endpoint",language:"hcl",code:L({name:r,chain:a,network:t,label:o,multichain:l,status:i})},{kind:"command",label:"Import it",command:"terraform import quicknode_endpoint.".concat(r," ").concat(n)},{kind:"command",label:"Check for drift",command:"terraform plan"}]})({endpointId:l,chain:i,network:r,label:c,multichain:s,status:d}))]},z=e=>{let{chain:n,network:a,displayName:t}=e,o=n&&a?"qn endpoint create \\\n  --chain ".concat(n," \\\n  --network ").concat(a):"qn endpoint create",l=null!=n?n:"solana",i=null!=a?a:"solana-mainnet",r=null!=t?t:"".concat("eth"===l?"Ethereum":"".concat(l.charAt(0).toUpperCase()).concat(l.slice(1))," ").concat(i.toLowerCase().includes("mainnet")?"Mainnet":i),c="Create a Quicknode endpoint for ".concat(r,".");return[...Y().map(e=>"api"===e.id?{...e,docsHref:"https://www.quicknode.com/docs/admin-api",variantLabel:"Language",variants:((e,n)=>{let a=JSON.stringify({chain:e,network:n},null,2);return[{id:"curl",label:"cURL",rows:[{kind:"code",label:"Create an endpoint",language:"bash",code:"curl -X POST 'https://api.quicknode.com/v0/endpoints' \\\n  -H 'accept: application/json' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '".concat(a,"'")}]},{id:"javascript",label:"JavaScript",rows:[{kind:"code",label:"Create an endpoint",language:"javascript",code:'const response = await fetch("https://api.quicknode.com/v0/endpoints", {\n  method: "POST",\n  headers: {\n    accept: "application/json",\n    "x-api-key": "YOUR_API_KEY",\n    "Content-Type": "application/json",\n  },\n  body: JSON.stringify('.concat(a,"),\n});\n\nconsole.log(await response.json());")}]},{id:"python",label:"Python",rows:[{kind:"code",label:"Create an endpoint",language:"python",code:'import requests\n\nresponse = requests.post(\n    "https://api.quicknode.com/v0/endpoints",\n    headers={\n        "accept": "application/json",\n        "x-api-key": "YOUR_API_KEY",\n        "Content-Type": "application/json",\n    },\n    json={"chain": '.concat(JSON.stringify(e),', "network": ').concat(JSON.stringify(n),"},\n)\n\nprint(response.json())")}]},{id:"ruby",label:"Ruby",rows:[{kind:"code",label:"Create an endpoint",language:"ruby",code:'require "uri"\nrequire "json"\nrequire "net/http"\
3n\nurl = URI("https://api.quicknode.com/v0/endpoints")\nrequest = Net::HTTP::Post.new(url)\nrequest["accept"] = "application/json"\nrequest["x-api-key"] = "YOUR_API_KEY"\nrequest["Content-Type"] = "application/json"\nrequest.body = JSON.dump(\n  { chain: '.concat(JSON.stringify(e),", network: ").concat(JSON.stringify(n)," }\n)\n\nresponse = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body")}]}]})(l,i)}:"cli"===e.id?{...e,variants:J([{kind:"command",label:"Create an endpoint",command:o}])}:"mcp"===e.id?{...e,variants:W.map(e=>({...e,rows:[...e.rows,{kind:"code",label:"Try this prompt",language:"text",code:c}]}))}:{...e,variants:((e,n)=>[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},{kind:"code",label:"Create an endpoint",language:"typescript",code:N([],"const resp = await qn.admin.createEndpoint({\n  chain: ".concat(JSON.stringify(e),",\n  network: ").concat(JSON.stringify(n),",\n});"))}]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},{kind:"code",label:"Create an endpoint",language:"python",code:T([],"resp = await qn.admin.create_endpoint(\n    chain=".concat(JSON.stringify(e),",\n    network=").concat(JSON.stringify(n),",\n)"))}]},{id:"rust",label:"Rust",rows:[{kind:"code",label:"Install",language:"bash",code:"cargo add quicknode-sdk\ncargo add tokio --features full"},{kind:"code",label:"Create an endpoint",language:"rust",code:O(["admin::CreateEndpointRequest"],"let params = CreateEndpointRequest::builder()\n    .chain(".concat(JSON.stringify(e),".to_string())\n    .network(").concat(JSON.stringify(n),".to_string())\n    .build();\nlet resp = qn.admin.create_endpoint(&params).await?;"))}]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},{kind:"code",label:"Create an endpoint",language:"ruby",code:I("resp = qn.admin.create_endpoint(\n  chain: ".concat(JSON.stringify(e),",\n  network: ").concat(JSON.stringify(n),"\n)"))}]}])(l,i)}),E((e=>{let{chain:n,network:a,label:t}=e,o=R(a,"endpoint");return[A,{kind:"code",label:"Create an endpoint",language:"hcl",code:"".concat(L({name:o,chain:n,network:a,label:t}),"\n\n").concat((e=>'data "quicknode_endpoint_urls" "'.concat(e,'" {\n  endpoint_id = quicknode_endpoint.').concat(e,'.id\n}\n\noutput "').concat(e,'_rpc_url" {\n  value     = data.quicknode_endpoint_urls.').concat(e,".http_url_with_token\n  sensitive = true\n}"))(o))},P]})({chain:l,network:i,label:t}))]},V="0x0000000000000000000000000000000000000000",B=["SELECT toDateTime(block_time) AS time, action_type, user","FROM hyperliquid_system_actions","WHERE block_time >= now() - INTERVAL 1 DAY","ORDER BY block_time DESC","LIMIT 100"],X={value:"SOL:solana-mainnet",label:"Solana Mainnet",commandChain:"sol",routeChain:"SOL",network:"solana-mainnet",chainOrder:Number.MAX_SAFE_INTEGER,networkOrder:0},Z=e=>/^[aeiou]/i.test(e)?"an":"a",G=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:X;return[{id:"call-blockchain",label:"Send an RPC call",heading:"Start calling the blockchain immediately. No endpoint needed.",description:"Make an RPC call through Quicknode Tooling Access.",defaultTool:"cli",tools:[{id:"cli",label:"CLI",icon:"CLI",docsHref:S,variantLabel:"OS",variants:J([{kind:"command",label:"Call Solana Mainnet",command:"qn rpc call getSlot --network solana-mainnet"}])},{id:"sdk",label:"SDK",icon:"SDK",docsHref:x,variantLabel:"Language",variants:[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},{kind:"code",label:"Enable Tooling Access",language:"typescript",code:N([],"const status = await qn.admin.toolingAccessStatus();\nif (!status.enabled) {\n  await qn.admin.enableToolingAccess(); // Idempotent; admin role required.\n}")},{kind:"code",label:"Call Solana Mainnet",language:"typescript",code:N([],'const slot = await qn.rpc.call("getSlot", [], "solana-mainnet");')},{kind:"code",label:"More RPC calls",language:"typescript",code:N([],'const blockNumber = await qn.rpc.call("eth_blockNumber");\nconst balance = await qn.rpc.call("eth_getBalance", ["0xabc...", "latest"]);')},{kind:"code",label:"Use a custom endpoint",language:"typescript",code:N([],'const block = await qn.rpc.call(\n  "eth_blockNumber",\n  [],\n  undefined,\n  "https://my-endpoint.example/rpc",\n);')},{kind:"code",label:"Handle JSON-RPC errors",language:"typescript",code:N(["RpcError"],'try {\n  await qn.rpc.call("eth_getBalance", ["bad"]);\n} catch (error) {\n  if (error instanceof RpcError) console.error(error.code, error.message);\n}')}]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},{kind:"code",label:"Enable Tooling Access",language:"python",code:T([],"status = await qn.admin.tooling_access_status()\nif not status.enabled:\n    await qn.admin.enable_tooling_access()")},{kind:"code",label:"Call Solana Mainnet",language:"python",code:T([],'slot = await qn.rpc.call("getSlot", network="solana-mainnet")')},{kind:"code",label:"More RPC calls",language:"python",code:T([],'block_number = await qn.rpc.call("eth_blockNumber")\nbalance = await qn.rpc.call("eth_getBalance", ["0xabc...", "latest"])')},{kind:"code",label:"Use a custom endpoint",language:"python",code:T([],'block = await qn.rpc.call(\n    "eth_blockNumber",\n    endpoint_url="https://my-endpoint.example/rpc",\n)')},{kind:"code",label:"Handle JSON-RPC errors",language:"python",code:T(["RpcError"],'try:\n    await qn.rpc.call("eth_getBalance", ["bad"])\nexcept RpcError as error:\n    print(error.code, error.message)')}]},{id:"rust",label:"Rust",rows:[{kind:"code",label:"Install",language:"bash",code:"cargo add quicknode-sdk\ncargo add tokio --features full\ncargo add serde_json"},{kind:"code",label:"Enable Tooling Access",language:"rust",code:O([],"let status = qn.admin.tooling_access_status().await?;\nif !status.enabled {\n    qn.admin.enable_tooling_access().await?;\n}")},{kind:"code",label:"Call Solana Mainnet",language:"rust",code:O([],'let slot = qn\n    .rpc\n    .call("getSlot", None, Some("solana-mainnet".into()), None)\n    .await?;')},{kind:"code",label:"More RPC calls",language:"rust",code:O([],'let block_number = qn.rpc.call("eth_blockNumber", None, None, None).await?;\nlet balance = qn\n    .rpc\n    .call(\n        "eth_getBalance",\n        Some(serde_json::json!(["0xabc...", "latest"])),\n        None,\n        None,\n    )\n    .await?;')},{kind:"code",label:"Use a custom endpoint",language:"rust",code:O([],'let block = qn\n    .rpc\n    .call(\n        "eth_blockNumber",\n        None,\n        None,\n        Some("https://my-endpoint.example/rpc".into()),\n    )\n    .await?;')},{kind:"code",label:"Handle JSON-RPC errors",language:"rust",code:O(["SdkError"],'match qn\n    .rpc\n    .call(\n        "eth_getBalance",\n        Some(serde_json::json!(["bad"])),\n        None,\n        None,\n    )\n    .await\n{\n    Err(SdkError::Rpc { code, message }) => eprintln!("{code}: {message}"),\n    result => println!("{result:?}"),\n}')}]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},{kind:"code",label:"Enable Tooling Access",language:"ruby",code:I('status = qn.admin.tooling_access_status\nqn.admin.enable_tooling_access unless status["enabled"]')},{kind:"code",label:"Call Solana Mainnet",language:"ruby",code:I('slot = qn.rpc.call(method: "getSlot", network: "solana-mainnet")')},{kind:"code",label:"More RPC calls",language:"ruby",code:I('block_number = qn.rpc.call(method: "eth_blockNumber")\nbalance = qn.rpc.call(method: "eth_getBalance", params: ["0xabc...", "latest"])')},{kind:"code",label:"Use a custom endpoint",language:"ruby",code:I('block = qn.rpc.call(\n  method: "eth_blockNumber",\n  endpoint_url: "https://my-endpoint.example/rpc"\n)')},{kind:"code",label:"Handle JSON-RPC errors",language:"ruby",code:I('begin\n  qn.rpc.call(method: "eth_getBalance", params: ["bad"])\nrescue QuicknodeSdk::RpcError => error\n  warn "#{error.code}: #{error.message}"\nend')}
3]}]},{id:"mcp",label:"MCP",icon:"MCP",docsHref:C,variantLabel:"Client",variants:W.map(e=>({...e,rows:[...e.rows,{kind:"code",label:"Try this prompt",language:"text",code:"Using Quicknode, get the latest slot on Solana Mainnet and return the slot number."}]}))}]},{id:"create-endpoint",label:"Create an endpoint",heading:"Create ".concat(Z(e.label)," ").concat(e.label," endpoint."),description:"Provision an endpoint with the tool that fits your workflow.",dashboardHref:"/endpoints/new/".concat(encodeURIComponent(e.routeChain),"/").concat(encodeURIComponent(e.network)),defaultTool:"cli",tools:z({chain:e.commandChain,network:e.network,displayName:e.label})},{id:"create-stream",label:"Stream & backfill data",heading:"Create a stream for real-time blockchain data.",description:"Send selected on-chain data to a webhook destination.",dashboardHref:"/streams/new",defaultTool:"cli",tools:[{id:"api",label:"API",icon:"API",docsHref:"https://www.quicknode.com/docs/streams/rest-api/create-stream",variants:[{id:"curl",label:"cURL",rows:[{kind:"code",label:"Create a stream",language:"bash",code:'curl -X POST \'https://api.quicknode.com/streams/rest/v1/streams\' \\\n  -H \'x-api-key: YOUR_API_KEY\' \\\n  -H \'Content-Type: application/json\' \\\n  -d \'{\n    "name": "My Stream",\n    "network": "ethereum-mainnet",\n    "dataset": "block",\n    "region": "usa_east",\n    "start_range": 24691804,\n    "end_range": -1,\n    "destination": "webhook",\n    "destination_attributes": {\n      "url": "https://webhook.site",\n      "compression": "none"\n    }\n  }\''}]}]},{id:"cli",label:"CLI",icon:"CLI",docsHref:S,variantLabel:"OS",variants:J([{kind:"command",label:"Create a stream",command:'qn stream create \\\n  --name "My Stream" \\\n  --network ethereum-mainnet \\\n  --dataset block \\\n  --start 24691804 \\\n  --end=-1 \\\n  --region usa_east \\\n  --webhook https://webhook.site \\\n  --status active'}])},{id:"sdk",label:"SDK",icon:"SDK",docsHref:x,variantLabel:"Language",variants:[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},{kind:"code",label:"Create a stream",language:"typescript",code:N(["StreamDataset","StreamRegion","StreamStatus"],'const stream = await qn.streams.createStream({\n  name: "My Stream",\n  network: "ethereum-mainnet",\n  dataset: StreamDataset.Block,\n  region: StreamRegion.UsaEast,\n  startRange: 24691804,\n  endRange: -1,\n  destinationAttributes: {\n    destination: "webhook",\n    attributes: {\n      url: "https://webhook.site",\n      compression: "none",\n      maxRetry: 3,\n      retryIntervalSec: 1,\n      postTimeoutSec: 10,\n    },\n  },\n  plan: "growth_plan",\n  thresholdFetchBuffer: 1000,\n  status: StreamStatus.Active,\n});')}]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},{kind:"code",label:"Create a stream",language:"python",code:T(["StreamWebhookDestination","WebhookAttributes"],'stream = await qn.streams.create_stream(\n    name="My Stream",\n    network="ethereum-mainnet",\n    dataset="block",\n    region="usa_east",\n    start_range=24691804,\n    end_range=-1,\n    destination_attributes=StreamWebhookDestination(\n        WebhookAttributes(\n            url="https://webhook.site",\n            max_retry=3,\n            retry_interval_sec=1,\n            post_timeout_sec=10,\n            compression="none",\n        )\n    ),\n    plan="growth_plan",\n    threshold_fetch_buffer=1000,\n    status="active",\n)')}]},{id:"rust",label:"Rust",rows:[{kind:"code",label:"Install",language:"bash",code:"cargo add quicknode-sdk\ncargo add tokio --features full"},{kind:"code",label:"Create a stream",language:"rust",code:O(["streams::{CreateStreamParams, DestinationAttributes, StreamDataset}","streams::{StreamRegion, StreamStatus, WebhookAttributes}"],'let params = CreateStreamParams::builder()\n    .name("My Stream".to_string())\n    .network("ethereum-mainnet".to_string())\n    .dataset(StreamDataset::Block)\n    .region(StreamRegion::UsaEast)\n    .start_range(24691804)\n    .end_range(-1)\n    .destination_attributes(DestinationAttributes::Webhook(WebhookAttributes {\n        url: "https://webhook.site".to_string(),\n        compression: "none".to_string(),\n        max_retry: 3,\n        retry_interval_sec: 1,\n        post_timeout_sec: 10,\n        security_token: None,\n    }))\n    .plan("growth_plan".to_string())\n    .threshold_fetch_buffer(1000)\n    .status(StreamStatus::Active)\n    .build();\nlet stream = qn.streams.create_stream(&params).await?;')}]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},{kind:"code",label:"Create a stream",language:"ruby",code:I('destination = QuicknodeSdk::DestinationAttributes.webhook(\n  url: "https://webhook.site",\n  compression: "none",\n  max_retry: 3,\n  retry_interval_sec: 1,\n  post_timeout_sec: 10\n)\n\nstream = qn.streams.create_stream(\n  name: "My Stream",\n  network: "ethereum-mainnet",\n  dataset: "block",\n  region: "usa_east",\n  start_range: 24691804,\n  end_range: -1,\n  destination_attributes: destination,\n  plan: "growth_plan",\n  threshold_fetch_buffer: 1000,\n  status: "active"\n)')}]}]},E([A,{kind:"code",label:"Create a stream",language:"hcl",code:'resource "quicknode_stream" "my_stream" {\n  name        = "My Stream"\n  network     = "ethereum-mainnet"\n  dataset     = "block"\n  region      = "usa_east"\n  start_range = 24691804\n  status      = "active"\n\n  destination = {\n    webhook = {\n      url = "https://webhook.site"\n    }\n  }\n}'},P])]},{id:"query-blockchain-data",label:"Query data with SQL",heading:"Query indexed blockchain data with SQL.",description:"Fetch recent Hyperliquid system actions with SQL Explorer.",dashboardHref:"/sql",defaultTool:"sdk",tools:[{id:"api",label:"API",icon:"API",docsHref:"https://www.quicknode.com/docs/sql-ex
3plorer/using-rest-api",variants:[{id:"curl",label:"cURL",rows:[{kind:"code",label:"Query blockchain data",language:"bash",code:"curl -X POST 'https://api.quicknode.com/sql/rest/v1/query' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"query\":\"".concat(B[0]," '\\\n'").concat(B[1]," '\\\n'").concat(B[2]," '\\\n'").concat(B[3]," '\\\n'").concat(B[4],'","clusterId":"hyperliquid-core-mainnet"}\'')}]}]},{id:"cli",label:"CLI",icon:"CLI",docsHref:S,variantLabel:"OS",variants:J([{kind:"code",label:"Query blockchain data",language:"bash",code:"qn sql query \\\n  '".concat(B.join("\n"),"' \\\n  --cluster-id hyperliquid-core-mainnet")}])},{id:"sdk",label:"SDK",icon:"SDK",docsHref:x,variantLabel:"Language",variants:[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},{kind:"code",label:"Query blockchain data",language:"typescript",code:N([],'const query = [\n  "'.concat(B[0],'",\n  "').concat(B[1],'",\n  "').concat(B[2],'",\n  "').concat(B[3],'",\n  "').concat(B[4],'",\n].join(" ");\n\nconst response = await qn.sql.query(query, "hyperliquid-core-mainnet");'))}]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},{kind:"code",label:"Query blockchain data",language:"python",code:T([],'query = (\n    "'.concat(B[0],' "\n    "').concat(B[1],' "\n    "').concat(B[2],' "\n    "').concat(B[3],' "\n    "').concat(B[4],'"\n)\n\nresponse = await qn.sql.query(\n    query=query,\n    cluster_id="hyperliquid-core-mainnet",\n)'))}]},{id:"rust",label:"Rust",rows:[{kind:"code",label:"Install",language:"bash",code:"cargo add quicknode-sdk\ncargo add tokio --features full"},{kind:"code",label:"Query blockchain data",language:"rust",code:O(["sql::QueryParams"],'let query = concat!(\n    "'.concat(B[0],' ",\n    "').concat(B[1],' ",\n    "').concat(B[2],' ",\n    "').concat(B[3],' ",\n    "').concat(B[4],'",\n);\n\nlet response = qn\n    .sql\n    .query(&QueryParams {\n        query: query.to_string(),\n        cluster_id: "hyperliquid-core-mainnet".to_string(),\n    })\n    .await?;'))}]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},{kind:"code",label:"Query blockchain data",language:"ruby",code:I('query = [\n  "'.concat(B[0],'",\n  "').concat(B[1],'",\n  "').concat(B[2],'",\n  "').concat(B[3],'",\n  "').concat(B[4],'"\n].join(" ")\n\nresponse = qn.sql.query(\n  query: query,\n  cluster_id: "hyperliquid-core-mainnet"\n)'))}]}]}]},{id:"create-webhook",label:"Set up a webhook",heading:"Create a webhook for wallet activity.",description:"Monitor an Ethereum wallet and send matching events to your webhook.",dashboardHref:"/webhooks/new",defaultTool:"sdk",tools:[{id:"api",label:"API",icon:"API",docsHref:"https://www.quicknode.com/docs/webhooks/rest-api/getting-started",variants:[{id:"curl",label:"cURL",rows:[{kind:"code",label:"Create a webhook",language:"bash",code:'curl -X POST \\\n  \'https://api.quicknode.com/webhooks/rest/v1/webhooks/template/evmWalletFilter\' \\\n  -H \'x-api-key: YOUR_API_KEY\' \\\n  -H \'Content-Type: application/json\' \\\n  -d \'{\n    "name": "Wallet activity",\n    "network": "ethereum-mainnet",\n    "destination_attributes": {\n      "url": "https://example.com/webhook",\n      "compression": "none"\n    },\n    "templateArgs": {\n      "wallets": ["'.concat(V,"\"]\n    }\n  }'")}]}]},{id:"cli",label:"CLI",icon:"CLI",docsHref:S,variantLabel:"OS",variants:J([{kind:"command",label:"Create a webhook",command:'qn webhook create \\\n  --name "Wallet activity" \\\n  --network ethereum-mainnet \\\n  --url https://example.com/webhook \\\n  --template evm-wallet \\\n  --wallet '.concat(V)}])},{id:"sdk",label:"SDK",icon:"SDK",docsHref:x,variantLabel:"Language",variants:[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},{kind:"code",label:"Create a webhook",language:"typescript",code:N(["TemplateArgs"],'const webhook = await qn.webhooks.createWebhookFromTemplate({\n  name: "Wallet activity",\n  network: "ethereum-mainnet",\n  destinationAttributes: {\n    url: "https://example.com/webhook",\n    compression: "none",\n  },\n  templateArgs: TemplateArgs.evmWalletFilter({\n    wallets: ["'.concat(V,'"],\n  }),\n});'))}]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},{kind:"code",label:"Create a webhook",language:"python",code:T(["EvmWalletFilterArgs","EvmWalletFilterTemplate","WebhookDestinationAttributes"],'webhook = await qn.webhooks.create_webhook_from_template(\n    name="Wallet activity",\n    network="ethereum-mainnet",\n    destination_attributes=WebhookDestinationAttributes(\n        url="https://example.com/webhook",\n        compression="none",\n    ),\n    template_args=EvmWalletFilterArgs(\n        EvmWalletFilterTemplate(wallets=["'.concat(V,'"])\n    ),\n)'))}]},{id:"rust",label:"Rust",rows:[{kind:"code",label:"Install",language:"bash",code:"cargo add quicknode-sdk\ncargo add tokio --features full"},{kind:"code",label:"Create a webhook",language:"rust",code:O(["webhooks::{CreateWebhookFromTemplateParams, EvmWalletFilterTemplate}","webhooks::{TemplateArgs, WebhookDestinationAttributes}"],'let params = CreateWebhookFromTemplateParams {\n    name: "Wallet activity".to_string(),\n    network: "ethereum-mainnet".to_string(),\n    notification_email: None,\n    destination_attributes: WebhookDestinationAttributes {\n        url: "https://example.com/webhook".to_string(),\n        security_token: None,\n        compression: "none".to_string(),\n    },\n    template_args: TemplateArgs::EvmWalletFilter(EvmWalletFilterTemplate {\n        wallets: vec!["'.concat(V,'".to_string()],\n    }),\n};\nlet webhook = qn.webhooks.create_webhook_from_template(&params).await?;'))}]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},{kind:"code",label:"Create a webhook",language:"ruby",code:I('require "json"\n\ndestination = JSON.generate({\n  url: "https://example.com/webhook",\n  compression: "none"\n})\ntemplate = JSON.generate({\n  templateId: "evmWalletFilter",\n  templateArgs: { wallets: ["'.concat(V,'"] }\n})\n\nwebhook = qn.webhooks.create_webhook_from_template(\n  name: "Wallet activity",\n  network: "ethereum-mainnet",\n  destination_attributes_json: de
3stination,\n  template_args_json: template\n)'))}]}]}]},{id:"create-kv-list",label:"Save a reusable list",heading:"Create a list for reusable blockchain data.",description:"Store wallet addresses in Quicknode Key-Value Store.",dashboardHref:"/kvstore/lists/new",defaultTool:"sdk",tools:[{id:"api",label:"API",icon:"API",docsHref:"https://www.quicknode.com/docs/key-value-store/rest-api/lists/upsert-list",variants:[{id:"curl",label:"cURL",rows:[{kind:"code",label:"Create a Key-Value store list",language:"bash",code:"curl -X POST 'https://api.quicknode.com/kv/rest/v1/lists' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"key\": \"watchlist\",\n    \"items\": [\"".concat(V,"\"]\n  }'")}]}]},{id:"cli",label:"CLI",icon:"CLI",docsHref:S,variantLabel:"OS",variants:J([{kind:"command",label:"Create a Key-Value store list",command:"qn kv list create watchlist \\\n  ".concat(V)}])},{id:"sdk",label:"SDK",icon:"SDK",docsHref:x,variantLabel:"Language",variants:[{id:"typescript",label:"TypeScript",rows:[{kind:"command",label:"Install",command:"npm install @quicknode/sdk"},{kind:"code",label:"Create a Key-Value store list",language:"typescript",code:N([],'await qn.kvstore.createList({\n  key: "watchlist",\n  items: ["'.concat(V,'"],\n});'))}]},{id:"python",label:"Python",rows:[{kind:"command",label:"Install",command:"uv add quicknode-sdk"},{kind:"code",label:"Create a Key-Value store list",language:"python",code:T([],'await qn.kvstore.create_list(\n    key="watchlist",\n    items=["'.concat(V,'"],\n)'))}]},{id:"rust",label:"Rust",rows:[{kind:"code",label:"Install",language:"bash",code:"cargo add quicknode-sdk\ncargo add tokio --features full"},{kind:"code",label:"Create a Key-Value store list",language:"rust",code:O(["kvstore::CreateListParams"],'qn.kvstore\n    .create_list(&CreateListParams {\n        key: "watchlist".to_string(),\n        items: vec!["'.concat(V,'".to_string()],\n    })\n    .await?;'))}]},{id:"ruby",label:"Ruby",rows:[{kind:"command",label:"Install",command:"gem install quicknode_sdk"},{kind:"code",label:"Create a Key-Value store list",language:"ruby",code:I('qn.kvstore.create_list(\n  key: "watchlist",\n  items: ["'.concat(V,'"]\n)'))}]}]},E([A,{kind:"code",label:"Create a Key-Value store list",language:"hcl",code:'resource "quicknode_kv_list" "watchlist" {\n  key   = "watchlist"\n  items = ["'.concat(V,'"]\n}')},P])]}]};e.i(219783);var $=e.i(242740);let ee=e=>{var u,m,p,b,k;let{tasks:h,surface:w,defaultTask:y="call-blockchain",createEndpointNetworkSelect:v}=e,f=(0,d.useAnalytics)(),S=(0,s.useRef)(!1),C=(0,s.useRef)(null),x=null!=(u=h.find(e=>{let{id:n}=e;return n===y}))?u:h[0],[j,N]=(0,s.useState)(null==x?void 0:x.id),[T,O]=(0,s.useState)(()=>Object.fromEntries(h.map(e=>[e.id,e.defaultTool]))),[I,A]=(0,s.useState)(()=>Object.fromEntries(h.flatMap(e=>e.tools.map(n=>{var a,t;return["".concat(e.id,":").concat(n.id),null!=(t=null==(a=n.variants[0])?void 0:a.id)?t:""]}
3)))),[P,R]=(0,s.useState)(!1),L=null!=(m=h.find(e=>{let{id:n}=e;return n===j}))?m:h[0],E=L?T[L.id]:void 0,D=null!=(p=null==L?void 0:L.tools.find(e=>{let{id:n}=e;return n===E}))?p:null==L?void 0:L.tools[0];if((0,s.useEffect)(()=>{S.current||(S.current=!0,f.track("Viewed Developer Tools",{surface:w,layout:"launcher",defaultTask:y,tasks:h.map(e=>{let{id:n}=e;return n})}))},[f,y,w,h]),(0,s.useEffect)(()=>{C.current&&(C.current.scrollTop=0)},[null==L?void 0:L.id,null==D?void 0:D.id]),!L||!D)return null;let H=e=>{e!==L.id&&(f.track("Selected Developer Task",{task:e,previousTask:L.id,surface:w}),N(e))},U="".concat(L.id,":").concat(D.id),K=null==v?void 0:v.options.find(e=>{let{value:n}=e;return n===v.value}),M=Z(null!=(b=null==K?void 0:K.label)?b:"");return(0,n.jsxs)("section",{"data-test":"developer-tools-panel",children:[(0,n.jsx)("div",{className:"mb-4",children:(0,n.jsx)(a.Badge,{role:"heading","aria-level":2,children:"Developer tools"})}),(0,n.jsx)(l.Panel,{size:"none",children:(0,n.jsxs)(l.Panel.Section,{size:"none",className:"grid min-w-0 lg:grid-cols-[240px_minmax(0,1fr)]",children:[(0,n.jsx)("div",{className:"border-(--border) hidden border-r lg:block",children:(0,n.jsx)(o.List,{"aria-label":"Developer task",className:"flex h-full flex-col",children:h.map(e=>(0,n.jsx)(o.List.Item,{label:e.label,active:e.id===L.id,"aria-pressed":e.id===L.id,onClick:()=>H(e.id)},e.id))})}),(0,n.jsxs)(l.Panel,{size:"none",className:"border-0! min-w-0",children:[(0,n.jsx)(l.Panel.Section,{size:"none",className:"p-5 lg:hidden",children:(0,n.jsx)(i.Select,{"aria-label":"Developer task",value:L.id,items:h.map(e=>({value:e.id,label:e.label})),onValueChange:e=>{let n=h.find(n=>{let{id:a}=n;return a===e});n&&H(n.id)},fullWidth:!0})}),(0,n.jsx)(l.Panel.Section,{size:"none",className:"p-5 lg:p-6",children:(0,n.jsxs)("div",{className:"flex flex-col gap-4 sm:items-start lg:flex-row lg:justify-between",children:[(0,n.jsxs)("div",{className:"min-w-0",children:["create-endpoint"===L.id&&v?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.Text,{role:"heading","aria-level":3,weight:"semibold",className:"sr-only",children:L.heading}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,n.jsxs)(c.Text,{as:"span",weight:"semibold","aria-hidden":!0,children:["Create ",M]}),(0,n.jsx)(i.Select,{"aria-label":"Create endpoint network",value:v.value,items:v.options.map(e=>({value:e.value,label:e.label,leftAccessory:P||e.value===v.value?(0,n.jsx)($.default,{chain:e.routeChain,size:"xs"}):void 0})),onValueChange:e=>{if(!v||e===v.value)return;let n=v.options.find(n=>n.value===e);n&&(f.track("Selected Developer Tools Network",{task:"create-endpoint",surface:w,chain:n.commandChain,network:n.network,previousChain:null==K?void 0:K.commandChain,previousNetwork:null==K?void 0:K.network}),v.onValueChange(e))},onOpenChange:R,className:"min-w-48 max-w-full"}),(0,n.jsx)(c.Text,{as:"span",weight:"semibold","aria-hidden":!0,children:"endpoint."})]})]}):(0,n.jsx)(c.Text,{role:"heading","aria-level":3,weight:"semibold",children:L.heading}),(0,n.jsx)(c.Text,{color:"faint",size:"sm",className:"mt-1",children:L.description})]}),L.dashboardHref?(0,n.jsx)(g.default,{"data-test":"developer-tools-dashboard-link",href:L.dashboardHref,variant:"secondary",className:"shrink-0",children:"query-blockchain-data"===L.id?"Open in Dashboard":"Create in dashboard"}):null]})}),(0,n.jsx)(l.Panel.Section,{size:"none",children:(0,n.jsx)(r.TabController,{"aria-label":"".concat(L.label," tool"),border:"none",className:"flex w-full shrink-0 overflow-x-auto",tabs:L.tools.map(e=>({content:e.label,leftAccessory:(0,n.jsx)(t.Icon,{name:e.icon,size:16})})),active:L.tools.findIndex(e=>e.id===D.id),onChange:e=>{let n=L.tools[e];n&&(e=>{e!==D.id&&(f.track("Selected Developer Tool",{task:L.id,tool:e,previousTool:D.id,surface:w}),O(n=>({...n,[L.id]:e})))})(n.id)}})}),(0,n.jsx)(l.Panel.Section,{size:"none",className:"p-5 lg:p-6",children:(0,n.jsx)("div",{ref:C,className:"max-h-[360px] min-w-0 overflow-y-auto",children:(0,n.jsx)("div",{className:"max-w-5xl",children:(0,n.jsx)(q,{tool:D,task:L.id,surface:w,activeVariantId:null!=(k=I[U])?k:"",onSelectVariant:e=>A(n=>({...n,[U]:e}))},U)})})}),(0,n.jsx)(l.Panel.Section,{size:"none",className:"p-4 lg:px-6",children:(0,n.jsx)("div",{className:"flex max-w-5xl justify-end",children:(0,n.jsx)(_,{tool:D,task:L.id,surface:w})})})]})]})})]})};e.s(["DeveloperToolsPanel",()=>et],847355);var en=e.i(811505),ea=e.i(495207);let et=e=>{var o;let{title:l,heading:i,description:u,defaultTool:m="api",surface:p,layout:b="full",tools:k,toolContent:h}
3=e,g=(0,d.useAnalytics)(),[w,y]=(0,s.useState)(m),[v,f]=(0,s.useState)(()=>Object.fromEntries(k.map(e=>{var n,a;return[e.id,null!=(a=null==(n=e.variants[0])?void 0:n.id)?a:""]}))),S=null!=(o=k.find(e=>e.id===w))?o:k[0],C="compact"===b,x=(0,s.useRef)(!1),j=k.map(e=>e.id).join(",");return((0,s.useEffect)(()=>{x.current||(x.current=!0,g.track("Viewed Developer Tools",{surface:p,layout:b,defaultTool:m,tools:j.split(",")}))},[g,p,b,m,j]),S)?(0,n.jsxs)("section",{"data-test":"developer-tools-panel",className:"border-(--border) bg-(--background-elevated) relative overflow-hidden border p-6 md:p-8",children:[(0,n.jsx)(en.Texture,{"aria-hidden":!0,patterns:[{shape:{type:"dot",size:2},size:16,color:"var(--grid)"}],className:"pointer-events-none absolute inset-0"}),(0,n.jsxs)("div",{className:C?"relative flex flex-col items-start gap-6":"relative grid gap-8 lg:grid-cols-5",children:[C?(0,n.jsx)(a.Badge,{fill:"accent",children:"Developer tools"}):(0,n.jsxs)("div",{className:"flex flex-col items-start lg:col-span-2",children:[(0,n.jsx)(a.Badge,{fill:"accent",children:"Developer tools"}),i?(0,n.jsx)(c.Text,{weight:"semibold",className:"mt-6",children:i}):null,u?(0,n.jsx)(c.Text,{color:"faint",className:"mt-2",children:u}):null,(0,n.jsx)("div",{className:"mt-8 lg:mt-auto",children:(0,n.jsx)(_,{tool:S,surface:p})})]}),(0,n.jsx)("div",{className:C?"w-full":"lg:col-span-3",children:(0,n.jsx)(ea.Window,{title:l,contrast:"low",inFocus:!0,children:(0,n.jsxs)("div",{className:"flex flex-col",children:[(0,n.jsx)(r.TabController,{"aria-label":"Developer tools",border:"none",className:"border-(--border) flex w-full shrink-0 overflow-x-auto border-b",tabs:k.map(e=>({content:e.label,leftAccessory:(0,n.jsx)(t.Icon,{name:e.icon,size:16})})),active:k.findIndex(e=>e.id===S.id),onChange:e=>{let n=k[e];n&&(e=>{e!==S.id&&(g.track("Selected Developer Tool",{tool:e,previousTool:S.id,surface:p}),y(e))})(n.id)}}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"grid min-w-0 md:h-[430px] md:overflow-y-auto",children:k.map(e=>{var a,t;let o=e.id===S.id;return(0,n.jsx)("div",{className:"col-start-1 row-start-1 min-w-0 p-4 ".concat(o?"":"invisible"),"aria-hidden":!o,children:null!=(t=null==h?void 0:h[e.id])?t:(0,n.jsx)(q,{tool:e,surface:p,activeVariantId:null!=(a=v[e.id])?a:"",onSelectVariant:n=>((e,n)=>{g.track("Selected Developer Tool Variant",{tool:e,variant:n,previousVariant:v[e],surface:p}),f(a=>({...a,[e]:n}))})(e.id,n)})},e.id)})}),C?(0,n.jsx)("div",{className:"px-4 pb-4",children:(0,n.jsx)(_,{tool:S,surface:p})}):null]})]})})})]})]}):null};e.s(["HomeDeveloperToolsLauncher",()=>ed],244254),e.i(774436);var eo=e.i(764856);e.i(801174);var el=e.i(254785),ei=e.i(178099);let er={value:"SOL:solana-mainnet",label:"Solana Mainnet",commandChain:"sol",routeChain:"SOL",network:"solana-mainnet",chainOrder:Number.MAX_SAFE_INTEGER,networkOrder:0},ec=function(e){var n,a,t;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Set(o.map(e=>e.toUpperCase())),i=e.filter(e=>l.has(e.routeChain.toUpperCase())).sort((e,n)=>e.chainOrder-n.chainOrder||e.networkOrder-n.networkOrder);if(i[0])return i[0];let r=e.filter(e=>"SOL"===e.routeChain.toUpperCase());return null!=(t=null!=(a=null!=(n=r.find(e=>e.label.toLowerCase().includes("mainnet")))?n:r[0])?a:e[0])?t:er},es=[],ed=e=>{var a;let{surface:t,defaultTask:o,preferredChainCodes:l=es}=e,{data:i}=(0,eo.useChains)(),[r,c]=(0,s.useState)(),d=(0,s.useMemo)(()=>{let e,n;return e=(0,ei.sortChains)(null!=i?i:[],e=>e.name).map(e=>({...e,networks:(0,ei.sortNetworks)(e.networks,e=>e.name,e=>(0,el.prettyChainNetwork)(e.name))})),n=el.prettyChainNetwork,e.flatMap(e=>e.networks.map((a,t)=>{let o,l;return{value:(o=e.chain,l=a.name,"".concat(encodeURIComponent(o),":").concat(encodeURIComponent(l))),label:n(a.name),commandChain:e.coin.toLowerCase(),routeChain:e.chain,network:a.name,chainOrder:e.order,networkOrder:t}}))},[i]),u=(0,s.useMemo)(()=>ec(d,l),[d,l]),m=null!=(a=d.find(e=>e.value===r))?a:u,p=(0,s.useMemo)(()=>G(m),[m]);return(0,n.jsx)(ee,{surface:t,defaultTask:o,tasks:p,createEndpointNetworkSelect:{value:m.value,options:d.length>0?d:[m],onValueChange:c}})}}]);
4
5//# sourceMappingURL=35ca7da8aa7baffc.js.map
6//# debugId=5c376a28-dffa-57db-b5b3-ae0d9e786177

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.