Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.
Signing APIs let you build a transaction in your application and have Circle
sign it. You then broadcast the signed transaction using your own node provider.
Use this flow when Circle doesn’t provide full
blockchain infrastructure for your
blockchain, or when you prefer to manage broadcasting yourself. For an overview,
see How signing APIs work.
# Create the project directory and initialize Node.jsmkdir sign-transactionscd sign-transactionsnpm init -y# Set up module type and a script for EVM signingnpm pkg set type=modulenpm pkg set scripts.sign-evm="node --env-file=.env sign-evm.ts"# Install runtime dependenciesnpm install @circle-fin/developer-controlled-wallets viem# Install dev dependenciesnpm install --save-dev typescript @types/node
CIRCLE_ENTITY_SECRET is your registered entity secret.
Open .env in your editor rather than writing values with shell commands, and
add .env to your .gitignore. This prevents credentials from leaking into
your shell history or version control.
The npm run start command loads variables from .env using Node.js native
env-file support.
Use count to create up to 200 wallets per request.
If you already created a native wallet on Ethereum, Polygon, Avalanche,
Arbitrum, or another EVM-compatible chain, a generic EVM wallet under the same
wallet set maps to the same address. Do not use the generic EVM wallet in
place of the native wallet on those chains, or transactions may become stuck.
import { initiateDeveloperControlledWalletsClient } from "@circle-fin/developer-controlled-wallets";import { arcTestnet } from "viem/chains";// Initialize the wallets clientconst client = initiateDeveloperControlledWalletsClient({ apiKey: process.env.CIRCLE_API_KEY!, entitySecret: process.env.CIRCLE_ENTITY_SECRET!,});async function main() { // Set signing inputs const walletId = "YOUR_WALLET_ID"; const walletAddress = "YOUR_WALLET_ADDRESS"; // Build an EVM transaction object for a signing test const txObject = { chainId: arcTestnet.id, nonce: "0", to: walletAddress, value: "0", gas: "21000", maxFeePerGas: "41500000000", maxPriorityFeePerGas: "1500000000", }; // Sign the transaction const response = await client.signTransaction({ walletId, transaction: JSON.stringify(txObject), }); console.log(response.data);}main().catch((err) => { console.error("Error:", err.message || err); process.exit(1);});
The transaction object must match the Ethereum JSON-RPC transaction shape. Use
your own tooling to prepare it before calling signTransaction(). Include the
correct chainId for your network. For supported EVM-TESTNET chains, see
Chain IDs for Signing Transactions. When building
EIP-1559 transactions, include both maxFeePerGas and maxPriorityFeePerGas.
# Create the project directory and initialize Node.jsmkdir sign-transactionscd sign-transactionsnpm init -y# Set up module type and a script for Solana signingnpm pkg set type=modulenpm pkg set scripts.sign-solana="node --env-file=.env sign-solana.ts"# Install runtime dependenciesnpm install @circle-fin/developer-controlled-wallets @solana/web3.js# Install dev dependenciesnpm install --save-dev typescript @types/node
CIRCLE_ENTITY_SECRET is your registered entity secret.
Open .env in your editor rather than writing values with shell commands, and
add .env to your .gitignore. This prevents credentials from leaking into
your shell history or version control.
The npm run command in this tutorial loads variables from .env using Node.js
native env-file support.
Use count to create up to 200 wallets per request.
Fund the SOL-DEVNET wallet with devnet SOL before broadcasting signed
transactions, or the account will not have the balance needed to pay fees
onchain.
import { initiateDeveloperControlledWalletsClient } from "@circle-fin/developer-controlled-wallets";import { Connection, PublicKey, SystemProgram, Transaction, clusterApiUrl,} from "@solana/web3.js";// Initialize the wallets clientconst client = initiateDeveloperControlledWalletsClient({ apiKey: process.env.CIRCLE_API_KEY!, entitySecret: process.env.CIRCLE_ENTITY_SECRET!,});async function main() { // Set transaction inputs const walletId = "YOUR_SOLANA_WALLET_ID"; const senderAddress = "YOUR_WALLET_ADDRESS"; const recipientAddress = senderAddress; // Connect to the Solana RPC provider const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); // Build the Solana transaction for a signing test const instruction = SystemProgram.transfer({ fromPubkey: new PublicKey(senderAddress), toPubkey: new PublicKey(recipientAddress), lamports: 0, }); const { blockhash } = await connection.getLatestBlockhash(); const transaction = new Transaction().add(instruction); transaction.recentBlockhash = blockhash; transaction.feePayer = new PublicKey(senderAddress); const rawTransaction = transaction.serialize({ requireAllSignatures: false, verifySignatures: false, }); // Sign the raw transaction const response = await client.signTransaction({ walletId, rawTransaction: rawTransaction.toString("base64"), }); // Broadcast the signed transaction const signedTransaction = Buffer.from( response.data?.signedTransaction ?? "", "base64", ); const txid = await connection.sendRawTransaction(signedTransaction); console.log(response.data); console.log("Broadcast transaction ID:", txid);}main().catch((err) => { console.error("Error:", err.message || err); process.exit(1);});
Base64 encode the raw transaction before you send it to signTransaction(). The
signing request can succeed before the account is funded, but the broadcast step
can still fail if the wallet has not received devnet SOL.
# Create the project directory and initialize Node.jsmkdir sign-transactionscd sign-transactionsnpm init -y# Set up module type and a script for NEAR signingnpm pkg set type=modulenpm pkg set scripts.sign-near="node --env-file=.env sign-near.ts"# Install runtime dependenciesnpm install @circle-fin/developer-controlled-wallets near-api-js# Install dev dependenciesnpm install --save-dev typescript @types/node
CIRCLE_ENTITY_SECRET is your registered entity secret.
Open .env in your editor rather than writing values with shell commands, and
add .env to your .gitignore. This prevents credentials from leaking into
your shell history or version control.
The npm run command in this tutorial loads variables from .env using Node.js
native env-file support.
Use count to create up to 200 wallets per request.
Fund the senderAccount NEAR testnet account before broadcasting signed
transactions, or the account will not have enough NEAR to pay network fees.Use these values from the wallet creation response in the next step:
walletId = the wallet id
walletPublicKey = the wallet initialPublicKey
address = the wallet’s implicit account ID onchain
For the signing script, senderAccount is the NEAR testnet account where you
added the wallet initialPublicKey as a full-access key. It is not the Circle
wallet address unless you specifically set up and fund that implicit account
for signing.Before you continue, either create or use an existing NEAR testnet account and
add the wallet initialPublicKey as an access key on that account. Then use
that account ID as senderAccount in the signing step. For setup guidance, see
Create an Account and
NEAR CLI.
Broadcast that signed payload through your own RPC or node provider.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Circle Docs","description":"Developer documentation for Circle's developer tools","colors":{"primary":"#0073C3","light":"#90D2FF","dark":"#0073C3"},"logo":{"light":"https://mintcdn.com/circle-167b8d39/K2XWSLhaeRomzNa1/logo/light.svg?fit=max\u0026auto=format\u0026n=K2XWSLhaeRomzNa1\u0026q=85\u0026s=decfb42837e0eb7c32dd425866902e78","dark":"https://mintcdn.com/circle-167b8d39/K2XWSLhaeRomzNa1/logo/dark.svg?fit=max\u0026auto=format\u0026n=K2XWSLhaeRomzNa1\u0026q=85\u0026s=8b863d97bf31467e8adedf4cb3263012"},"favicon":"https://mintcdn.com/circle-167b8d39/w3bpYw2hUr9sWZTM/favicon.ico?fit=max\u0026auto=format\u0026n=w3bpYw2hUr9sWZTM\u0026q=85\u0026s=bb633116ed9cf1247d65b0c1fa0e5725","background":{"color":{"light":"#FFFFFF","dark":"#111827"}},"navbar":{"links":[{"href":"https://console.circle.com/signin","label":"Sign in to console"},{"href":"https://faucet.circle.com","label":"Faucet"}]},"footer":{"socials":{"x":"https://twitter.com/circle","linkedin":"https://www.linkedin.com/company/circle-internet-financial","instagram":"https://www.instagram.com/teamcircle?hl=en","youtube":"https://www.youtube.com/c/Circlecryptofinance","discord":"https://discord.com/invite/buildoncircle"},"links":[{"header":"Legal","items":[{"label":"Developer Terms","href":"https://console.circle.com/legal/developer-terms"},{"label":"Service Terms","href":"https://console.circle.com/legal/service-terms"},{"label":"Acceptable Use","href":"https://console.circle.com/legal/acceptable-use-policy"}]},{"header":"Privacy","items":[{"label":"Privacy Policy","href":"https://www.circle.com/en/legal/privacy-policy"},{"label":"Cookie Policy","href":"https://www.circle.com/en/legal/cookie-policy"}]},{"header":"Support","items":[{"label":"Help","href":"https://help.circle.com/s/submit-ticket?language=en_US"}]}]},"fonts":{"heading":{"family":"Circularxx","source":"https://cdn.prod.website-files.com/67116d0daddc92483c812e88/6716bb4e120ecb0042f2f4ed_CircularXX-Regular.woff2","format":"woff2"},"body":{"family":"Circularxx","source":"https://cdn.prod.website-files.com/67116d0daddc92483c812e88/6716bb4e120ecb0042f2f4ed_CircularXX-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"segment":{"key":"wz74ASLGjAYPu8mQiIzBBHTLaHbNHM14"}},"contextual":{"options":["copy","chatgpt","claude","view"],"display":"header"},"interaction":{"drilldown":false},"markdown":{"instructions":["Before reading these docs, install the relevant Circle Skill to get pre-loaded context — skills are LLM-optimized and cover architecture decisions, correct flows, and common pitfalls. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills. Available skills: use-usdc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md (balances, transfers, approvals on EVM and Solana); EURC has no skill — see https://developers.circle.com/stablecoins/what-is-eurc.md; bridge-stablecoin https://github.com/circlefin/skills/blob/master/plugins/circle/skills/bridge-stablecoin/SKILL.md (crosschain transfers via CCTP, USDC, EURC, and third-party assets); use-arc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md (Arc chain config, contract deployment, USDC bridging — Arc docs: https://docs.arc.io/llms.txt); use-circle-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md (choose wallet type); use-developer-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md (custodial wallets for payouts and treasury); use-user-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md (embedded wallets with Web2 login); use-modular-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md (smart contract wallets with passkeys and ERC-4337); use-gateway https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md (unified USDC balance, nanopayments); use-smart-contract-platform https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md (deploy, interact, monitor contracts). Pair any skill with the Circle MCP server for live SDK signatures, contract addresses, and chain IDs: {\"mcpServers\":{\"circle\":{\"url\":\"https://api.circle.com/v1/codegen/mcp\"}}}.","Read the product overview first. Each product has an overview explaining when and why to use it. Read it before quickstarts.","Pick the right wallet type. Developer-controlled (you hold keys), user-controlled (end user holds keys via PIN/social login), or modular (smart contract wallets with passkeys). See https://developers.circle.com/wallets.md.","Use CCTP V2 for crosschain transfers. CCTP natively transfers USDC and EURC via burn-and-mint, and supports permissionless wrapping of third-party assets via lock-and-mint. V1 is legacy; always use V2 unless V1 is specified or the chain requires it (Noble, Sui, and Aptos still require V1). Migration guide: https://developers.circle.com/cctp/migration-from-v1-to-v2.md.","Use Bridge Kit for frontend bridging. Wraps CCTP with a simpler SDK for user-facing apps. Use CCTP directly for backend transfers.","Gas Station vs Paymaster. Gas Station sponsors gas for Circle Wallet transactions. Paymaster lets users pay gas in USDC. Different use cases — read both overviews.","Gateway Nanopayments for sub-cent payments. Gasless USDC micropayments down to $0.000001 via x402 and batched settlement. For pay-per-request APIs, AI agent payments, streaming.","Look up USDC addresses per chain. Never hardcode — use https://developers.circle.com/stablecoins/usdc-contract-addresses.md.","Prefer SDKs over raw API calls. Node.js and Python SDKs handle auth, retries, and errors.","API key required. Bearer token in Authorization header. Testnet and mainnet use separate keys and may use different base URLs depending on the product.","Set up webhooks when available. Most operations are async. Webhooks deliver transaction confirmations and state changes.","When calling list endpoints, paginate using pageSize and pageAfter until no nextPageAfter cursor is returned—stopping at the first page silently misses records.","Building an AI agent? Start with the Agent Stack—Circle CLI, agent wallets, and nanopayments built for autonomous use cases: https://developers.circle.com/agent-stack.md."]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"circle-167b8d39","hasAudioNarration":false,"actualSubdomain":"circle-167b8d39","customDomains":["developers.circle.com"],"gitSource":{"type":"github","owner":"crcl-main","repo":"circle-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4f0c12054f82e5056fc19","collectionId":"3a748168-6a54-4917-942b-3921a57caa17","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4f0c12054f82e5056fc19"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4f0c12054f82e5056fc19","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API reference","count":587},{"language":"default","tag":"Wallets","count":159},{"language":"default","tag":"Circle Payments Network","count":156},{"language":"default","tag":"Mint and Custody","count":124},{"language":"default","tag":"StableFX","count":108},{"language":"default","tag":"Digital Asset Accounts","count":104},{"language":"default","tag":"Liquidity services","count":104},{"language":"default","tag":"Crosschain transfers","count":100},{"language":"default","tag":"Payments","count":91},{"language":"default","tag":"Managed Payments","count":75}]},"assistantConfig":{"enableAskAiButton":false,"enableAskAiSearchBar":false},"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":"instinct-self-updating-docs","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":"snippets/SDKCard.css","content":".cb-card{border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.1)}.cb-icon-circle{display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.accent-orange{background-color:#fff7ed;color:#ea580c}.accent-blue{background-color:#eff6ff;color:#2563eb}.accent-green{background-color:#f0fdf4;color:#16a34a}.accent-purple{background-color:#faf5ff;color:#9333ea}.accent-violet{background-color:#f5f3ff;color:#7c3aed}.type-header-xs{font-size:18px;font-weight:600;line-height:1.4;color:#111827}.type-body-base{font-size:14px;line-height:1.5;color:#6b7280}.type-body-xs-bold{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.type-body-sm{font-size:14px;line-height:1.5;color:#374151}.type-body-sm-bold{font-size:14px;font-weight:600;line-height:1.5}.text-icon-neutral,.text-neutral-subtle{color:#6b7280}.cb-button{display:inline-flex;align-items:center;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;border:1px solid #e5e7eb;background:#fff;color:#374151}.cb-button:hover{background:#f9fafb;border-color:#d1d5db}"},{"filePath":"style.css","content":":root{--background-dark:17 24 39!important}html.dark .accordion,html.dark .card{background-color:#111827!important}#navbar .navbar-link a,#navbar [data-component-name=theme-toggle],#navbar a[href*=\"console.circle.com\"],#navbar a[href*=\"faucet.circle.com\"]{background-color:rgba(17,24,39,.03)!important}#navbar .navbar-link a:hover,#navbar [data-component-name=theme-toggle]:hover,#navbar a[href*=\"console.circle.com\"]:hover,#navbar a[href*=\"faucet.circle.com\"]:hover{background-color:rgba(17,24,39,.07)!important}@media (prefers-color-scheme:dark){#navbar .navbar-link a,#navbar [data-component-name=theme-toggle],#navbar a[href*=\"console.circle.com\"],#navbar a[href*=\"faucet.circle.com\"]{background-color:rgba(255,255,255,.05)!important}#navbar .navbar-link a:hover,#navbar [data-component-name=theme-toggle]:hover,#navbar a[href*=\"console.circle.com\"]:hover,#navbar a[href*=\"faucet.circle.com\"]:hover{background-color:rgba(255,255,255,.1)!important}}html.dark #navbar .navbar-link a,html.dark #navbar [data-component-name=theme-toggle],html.dark #navbar a[href*=\"console.circle.com\"],html.dark #navbar a[href*=\"faucet.circle.com\"]{background-color:rgba(255,255,255,.05)!important}html.dark #navbar .navbar-link a:hover,html.dark #navbar [data-component-name=theme-toggle]:hover,html.dark #navbar a[href*=\"console.circle.com\"]:hover,html.dark #navbar a[href*=\"faucet.circle.com\"]:hover{background-color:rgba(255,255,255,.1)!important}html.dark #feedback-form-submit,html.dark #topbar-cta-button,html.dark #topbar-cta-button a,html.dark a[class*=\"bg-[#0073C3]\"],html.dark a[class*=\"bg-[#0073C3]\"] svg,html.dark a[class*=\"bg-[#1AA3FF]\"],html.dark a[class*=\"bg-[#1AA3FF]\"] svg,html.dark a[class*=\"bg-[#5FBFFF]\"],html.dark a[class*=\"bg-[#5FBFFF]\"] svg,html.dark a[class*=\"bg-[#90D2FF]\"],html.dark a[class*=\"bg-[#90D2FF]\"] svg,html.dark chat-assistant-send-button,html.dark code-snippet-feedback-form-submit-button,html.dark contextual-feedback-form-submit-button,html.dark tryit-button{color:#000!important}.mcp-setup-container{display:flex;flex-wrap:wrap;gap:24px;margin:20px 0 28px}.mcp-setup-section{display:flex;flex-direction:column;gap:8px}.mcp-setup-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.dark .mcp-cta-cli:hover .mcp-cli-icon-wrap svg,.dark .mcp-setup-label{color:#94a3b8}.mcp-cta-group{display:flex;flex-wrap:wrap;gap:10px}.mcp-cta{height:40px;border-radius:12px;font-weight:600;font-size:.875rem;padding:0 16px;text-decoration:none!important;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(15,23,42,.15);background-color:#f8fafc;color:#0b0f19;transition:background-color .15s ease,border-color .15s ease;cursor:pointer}.mcp-cta:hover{background-color:#f1f5f9;border-color:rgba(15,23,42,.25)}.mcp-cta img{width:20px;height:20px;object-fit:contain;border-radius:6px;flex-shrink:0}.mcp-cta span{white-space:nowrap}.dark .mcp-cta{border-color:rgba(255,255,255,.2);background-color:rgba(255,255,255,.08);color:#f8fafc}.dark .mcp-cta:hover{background-color:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}.mcp-cta-cli{background-color:#f1f5f9;border-color:#e2e8f0}.mcp-cta-cli:hover{background-color:#e2e8f0;border-color:#cbd5e1}.dark .mcp-cta-cli{background-color:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}.dark .mcp-cta-cli:hover{background-color:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25)}.mcp-cli-label{font-weight:600;color:#0f172a}.dark .mcp-cli-label{color:#f1f5f9}.mcp-cli-cmd{font-size:.75rem;font-family:ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace;color:#64748b;background:0 0!important;padding:0;white-space:nowrap;border:0}.dark .mcp-cli-cmd{color:#94a3b8;background:0 0!important}.mcp-cli-icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:14px;height:14px;position:relative}.mcp-cli-icon-wrap svg{color:#94a3b8;transition:opacity .15s ease}.dark .mcp-cli-icon-wrap svg,.mcp-cta-cli:hover .mcp-cli-icon-wrap svg{color:#64748b}.mcp-icon-check{position:absolute;opacity:0;color:#22c55e!important}.mcp-cta-cli.copied .mcp-icon-copy{opacity:0}.mcp-cta-cli.copied .mcp-icon-check{opacity:1}.dark .mcp-cli-openai-logo{filter:invert(1)}table thead{text-align:left;background-color:#f5f5f8}.dark table thead{text-align:left;background-color:#29233b}table td,table thead th{padding:8px!important}.accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]){background-color:#e1f2ff!important;border-color:#c9e1f5!important}.accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) summary:hover{background-color:#c9e1f5!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]){background-color:#1f1a30!important;border-color:#29233b!important}.accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) summary,.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) summary{transition:background-color .3s ease!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) summary:hover{background-color:#29233b!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) [data-component-part=accordion-title]{color:#fff!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) [data-component-part=accordion-content]{color:#e5e7eb!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) [data-component-part=accordion-content] a{color:#1aa3ff!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) [data-component-part=accordion-content] a:hover{color:#1894e8!important}.dark .accordion:has([data-component-part=accordion-icon] svg[style*=\"circle-info.svg\"]) [data-component-part=accordion-content] code{color:#fbbf24!important;background-color:#374151!important}.TryItOutComponent code,.TryItOutComponent pre{background-color:transparent!important}.TryItOutComponent .code-container{background-color:#fff!important}.dark .TryItOutComponent .code-container{background-color:#29233b!important}.home_code_container .code-block{margin:0!important;height:100%}.home_code_container .code-block .code-block-background{height:100%!important}.home_mint_cards a.card>div{padding:20px!important}.home_mint_cards h2{color:#29233b!important}.home_mint_cards div.prose span{color:#6b6580!important}.dark .home_mint_cards h2{color:#fff!important}.dark .home_mint_cards div.prose span{color:#9ca3af!important}#footer svg[style*=mask-image],.home_mint_cards a.card svg{background-color:#6b6580!important}.home_mint_cards a.card:hover svg{background:linear-gradient(135deg,#5fbfff 0,#b090f5 100%)!important}.home_tryitout{background:linear-gradient(89deg,var(--background-gradient-bg-accent-purple-gradient-bottom-left,\n rgba(241, 235, 255, 0.5)\n ) 0%,var(--background-gradient-bg-accent-purple-gradient-top-right,\n rgba(225, 242, 255, 0.5)\n ) 94.58%)}.dark .home_tryitout{background:linear-gradient(89deg,var(--background-gradient-bg-accent-purple-gradient-bottom-left,\n rgba(44, 44, 44, 0.5)\n ) 0%,var(--background-gradient-bg-accent-purple-gradient-top-right,\n rgba(75, 82, 86, 0.5)\n ) 94.58%)}.quickstart-cards-aligned [data-component-part=card-group]{gap:16px!important}.asset-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin:1.5rem 0;align-items:stretch}.asset-card{border:1px solid #e5e7eb;border-radius:1rem;background:0 0;padding:1rem 1.25rem 1.5rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;justify-content:space-between;gap:.45rem;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;height:100%}.asset-card:hover{border-color:#cfd3dc;box-shadow:0 12px 24px rgba(15,23,42,.08);transform:translateY(-2px)}.dark .asset-card{border-color:rgba(148,163,184,.14);background:0 0;box-shadow:none}.asset-card h3{font-size:1.125rem;font-weight:600;margin:0;color:#0f172a}.dark .asset-card h3{color:#f8fafc}.asset-card p{margin:0;font-weight:300;color:#475569}.dark .asset-card p{color:#b8b8b8}.asset-card-image-wrapper,.asset-card-inline-icon{width:56px;height:56px;border-radius:9999px;margin-bottom:.6rem;flex-shrink:0}.asset-card-image-wrapper{overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.05)}.dark .asset-card-image-wrapper{background:rgba(248,250,252,.08)}.asset-card-image{width:100%;height:100%;object-fit:cover;display:block}.asset-card-inline-icon{padding:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(0,96,255,.18),rgba(0,164,255,.05));color:#0d5be1}.dark .asset-card-inline-icon{background:rgba(255,255,255,.08);color:#82b7ff}.asset-card-inline-icon svg{width:26px;height:26px}.asset-card.secondary{justify-content:flex-start}.quickstart-cards-aligned [data-component-part=card],.quickstart-cards-aligned [data-component-part=card]>div,.quickstart-cards-aligned a.card,.quickstart-cards-aligned a.card>div{display:flex!important;flex-direction:column!important;height:100%!important}.quickstart-cards-aligned [data-component-part=card]>div>.prose,.quickstart-cards-aligned a.card>div>.prose{flex-grow:1!important;display:flex!important;flex-direction:column!important}.quickstart-cards-aligned [data-component-part=card]>div>div:last-child,.quickstart-cards-aligned a.card>div>div:last-child{margin-top:auto!important}@media (max-width:1024px){.quickstart-cards-aligned,div.quickstart-cards-aligned{display:flex!important;flex-direction:column!important;gap:4px!important}.quickstart-cards-aligned [data-component-part=card-group],.quickstart-cards-aligned>div,div.quickstart-cards-aligned [data-component-part=card-group],div.quickstart-cards-aligned>div{display:flex!important;flex-direction:column!important;gap:4px!important;row-gap:4px!important;grid-row-gap:4px!important;width:100%!important}.quickstart-cards-aligned [data-component-part=card],.quickstart-cards-aligned a.card,div.quickstart-cards-aligned a.card{margin-bottom:4px!important;width:100%!important}.quickstart-cards-aligned [data-component-part=card]:last-child,.quickstart-cards-aligned a.card:last-child,div.quickstart-cards-aligned a.card:last-child{margin-bottom:0!important}}footer,footer [data-component-part=footer-section],footer [data-component-part=footer],footer>div{overflow-x:hidden!important;max-width:100%!important;padding-top:1.75rem!important}#your-privacy-choices-button,footer .footer-link,footer [data-component-part=footer-link],footer a{overflow-wrap:normal!important;word-wrap:normal!important;word-break:keep-all!important;hyphens:none!important;font-size:.75rem!important;white-space:normal!important;max-width:100%!important;line-height:1.4!important;min-width:0!important}#footer a,#your-privacy-choices-button{color:#6b6580!important}html.dark #footer a,html.dark #your-privacy-choices-button{color:#8a849c!important}#footer a:hover,#footer a[href*=mintlify]:hover,#footer a[href*=mintlify]:hover span,#footer a[href*=mintlify]:hover svg,#your-privacy-choices-button:hover{color:#4e4763!important}html.dark #footer a:hover,html.dark #footer a[href*=mintlify]:hover,html.dark #footer a[href*=mintlify]:hover span,html.dark #footer a[href*=mintlify]:hover svg,html.dark #your-privacy-choices-button:hover{color:#a7a3b5!important}#your-privacy-choices-button{position:relative;align-self:start}footer .md\\:items-center>div:has(>#your-privacy-choices-button){align-self:flex-start!important}#your-privacy-choices-button::after{content:url(https://6778953.fs1.hubspotusercontent-na1.net/hubfs/6778953/legal/opt-out-30x14.svg);right:-34px;position:absolute}#footer>div{gap:12px;padding-bottom:20px}#footer a[href*=mintlify],#footer a[href*=mintlify] span,#footer a[href*=mintlify] svg{color:#6b6580!important;fill:currentColor!important}html.dark #footer a[href*=mintlify],html.dark #footer a[href*=mintlify] span,html.dark #footer a[href*=mintlify] svg{color:#8a849c!important}#footer .gap-4.min-w-\\[140px\\].max-w-\\[492px\\].flex-wrap.hidden.md\\:flex:has([data-powered-by-relocated]){flex:0 0 auto!important;width:auto!important;max-width:200px!important}#footer [data-powered-by-relocated]{flex:0 0 100%!important;display:flex!important;justify-content:flex-end!important;margin-top:.25rem!important}#footer [data-powered-by-relocated] a[href*=mintlify]{font-size:.75rem!important}#footer [data-powered-by-relocated] a[href*=mintlify] svg{height:.75rem!important;width:auto!important}#footer [data-powered-by-relocated]>:not(:has(a[href*=mintlify])){display:none!important}@media (max-width:767px){#footer .gap-4.min-w-\\[140px\\].max-w-\\[492px\\].flex-wrap.hidden.md\\:flex{display:flex!important;justify-content:flex-end!important}#footer .gap-4.min-w-\\[140px\\].max-w-\\[492px\\].flex-wrap.hidden.md\\:flex>a{display:none!important}}html.dark #footer svg[style*=mask-image]{background-color:#8a849c!important}#footer a:hover svg[style*=mask-image]{background-color:#4e4763!important}html.dark #footer a:hover svg[style*=mask-image]{background-color:#a7a3b5!important}"}],"page":{"pagePath":"wallets/sign-transactions","slug":"/wallets/sign-transactions","pageMetadata":{"title":"Sign transactions","description":"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.","sidebarTitle":"Sign transactions","href":"/wallets/sign-transactions"},"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: \"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Tab,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Signing APIs let you build a transaction in your application and have Circle\nsign it. You then broadcast the signed transaction using your own node provider.\nUse this flow when Circle doesn’t provide full\n`,_jsx(_components.a,{href:`/wallets/blockchain-infrastructure`,children:`blockchain infrastructure`}),` for your\nblockchain, or when you prefer to manage broadcasting yourself. For an overview,\nsee `,_jsx(_components.a,{href:`/wallets/signing-apis`,children:`How signing APIs work`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before you begin, make sure you have:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Obtained an `,_jsx(_components.a,{href:`/api-reference/keys`,children:`API key`}),` from the\n`,_jsx(_components.a,{href:`https://console.circle.com/`,children:`Circle Console`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Generated and registered an entity secret using the\n`,_jsx(_components.a,{href:`https://console.circle.com/wallets/dev/configurator/entity-secret`,children:`Circle Console`}),`\nor the\n`,_jsx(_components.a,{href:`/wallets/dev-controlled/register-entity-secret#create-an-entity-secret-using-the-sdk`,children:`SDK`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Created a\n`,_jsx(_components.a,{href:`/wallets/dev-controlled/create-your-first-wallet`,children:`developer-controlled wallet`}),`.`]}),`\n`,_jsx(_components.li,{children:`Set up access to a node or RPC provider for your blockchain.`}),`\n`,_jsxs(_components.li,{children:[`Installed `,_jsx(_components.a,{href:`https://nodejs.org/`,children:`Node.js v22.18+`})]}),`\n`]}),`\n`,_jsxs(Note,{children:[`Only `,_jsx(_components.code,{children:`EOA`}),` wallets are supported for this signing flow.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`EVM`,id:`evm`,\"data-child-heading-ids\":`[\"step-1-set-up-your-project\",\"1-1-create-the-project-and-install-dependencies\",\"1-2-configure-typescript-optional\",\"1-3-set-environment-variables\",\"step-2-create-a-signing-wallet\",\"step-3-build-and-sign-a-transaction\",\"step-4-review-the-response\"]`,children:[_jsx(Heading,{level:`2`,id:`step-1-set-up-your-project`,children:`Step 1. Set up your project`}),_jsx(Heading,{level:`3`,id:`1-1-create-the-project-and-install-dependencies`,children:`1.1. Create the project and install dependencies`}),_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Create the project directory and initialize Node.js`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sign-transactions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sign-transactions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Set up module type and a script for EVM signing`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pkg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` type=module`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pkg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` scripts.sign-evm=\"node --env-file=.env sign-evm.ts\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install runtime dependencies`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @circle-fin/developer-controlled-wallets`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` viem`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install dev dependencies`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --save-dev`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` typescript`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @types/node`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`1-2-configure-typescript-optional`,children:`1.2. Configure TypeScript (optional)`}),_jsx(Tip,{children:_jsx(_components.p,{children:`This step is optional. It helps prevent missing types in your IDE or editor.`})}),_jsxs(_components.p,{children:[`Create a `,_jsx(_components.code,{children:`tsconfig.json`}),` file:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tsc`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --init`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Then, update the `,_jsx(_components.code,{children:`tsconfig.json`}),` file:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`'EOF'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tsconfig.json`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"compilerOptions\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"target\": \"ESNext\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"module\": \"ESNext\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"moduleResolution\": \"bundler\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"strict\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"types\": [\"node\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`EOF`})}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`1-3-set-environment-variables`,children:`1.3. Set environment variables`}),_jsxs(_components.p,{children:[`Create a `,_jsx(_components.code,{children:`.env`}),` file in the project directory:`]}),_jsx(CodeBlock,{filename:`.env`,numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CIRCLE_API_KEY=YOUR_API_KEY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CIRCLE_ENTITY_SECRET=YOUR_ENTITY_SECRET`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CIRCLE_API_KEY`}),` is your Circle Developer API key.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CIRCLE_ENTITY_SECRET`}),` is your registered entity secret.`]}),`\n`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.code,{children:`.env`}),` in your editor rather than writing values with shell commands, and\nadd `,_jsx(_components.code,{children:`.env`}),` to your `,_jsx(_components.code,{children:`.gitignore`}),`. This prevents credentials from leaking into\nyour shell history or version control.`]})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`npm run start`}),` command loads variables from `,_jsx(_components.code,{children:`.env`}),` using Node.js native\nenv-file support.`]}),_jsx(Heading,{level:`2`,id:`step-2-create-a-signing-wallet`,children:`Step 2. Create a signing wallet`}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createWallets`}),_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:` accountType:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EOA\"`}),_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:` blockchains:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"EVM-TESTNET\"`}),_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:` count:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_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:` walletSetId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WALLET_SET_ID\"`}),_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(Note,{children:[`Use `,_jsx(_components.code,{children:`count`}),` to create up to 200 wallets per request.`]}),_jsxs(_components.p,{children:[`If you already created a native wallet on Ethereum, Polygon, Avalanche,\nArbitrum, or another EVM-compatible chain, a generic `,_jsx(_components.code,{children:`EVM`}),` wallet under the same\nwallet set maps to the same address. Do not use the generic `,_jsx(_components.code,{children:`EVM`}),` wallet in\nplace of the native wallet on those chains, or transactions may become stuck.`]}),_jsx(Heading,{level:`2`,id:`step-3-build-and-sign-a-transaction`,children:`Step 3. Build and sign a transaction`}),_jsx(CodeBlock,{filename:`sign-evm.ts`,numberOfLines:`38`,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:`38`,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:`initiateDeveloperControlledWalletsClient`}),_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:` \"@circle-fin/developer-controlled-wallets\"`}),_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:`arcTestnet`}),_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:` \"viem/chains\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Initialize the wallets client`})}),`\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:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` initiateDeveloperControlledWalletsClient`}),_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:` apiKey:`}),_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:`CIRCLE_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entitySecret:`}),_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:`CIRCLE_ENTITY_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:`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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Set signing inputs`})}),`\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:` walletId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WALLET_ID\"`}),_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:` walletAddress`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WALLET_ADDRESS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Build an EVM transaction object for a signing test`})}),`\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:` txObject`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chainId:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` arcTestnet`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`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:` nonce:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"0\"`}),_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:` to:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletAddress`}),_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:` value:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"0\"`}),_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:` gas:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"21000\"`}),_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:` maxFeePerGas:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"41500000000\"`}),_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:` maxPriorityFeePerGas:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"1500000000\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Sign the transaction`})}),`\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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signTransaction`}),_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:` walletId`}),_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:` transaction:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stringify`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`txObject`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_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:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`exit`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_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(_components.p,{children:[`The transaction object must match the Ethereum JSON-RPC transaction shape. Use\nyour own tooling to prepare it before calling `,_jsx(_components.code,{children:`signTransaction()`}),`. Include the\ncorrect `,_jsx(_components.code,{children:`chainId`}),` for your network. For supported `,_jsx(_components.code,{children:`EVM-TESTNET`}),` chains, see\n`,_jsx(_components.a,{href:`/wallets/sign-tx-chain-id`,children:`Chain IDs for Signing Transactions`}),`. When building\nEIP-1559 transactions, include both `,_jsx(_components.code,{children:`maxFeePerGas`}),` and `,_jsx(_components.code,{children:`maxPriorityFeePerGas`}),`.`]}),_jsx(Heading,{level:`2`,id:`step-4-review-the-response`,children:`Step 4. Review the response`}),_jsx(_components.p,{children:`The signing response includes:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signature`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signedTransaction`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`txHash`})}),`\n`]}),_jsxs(_components.p,{children:[`You can use `,_jsx(_components.code,{children:`signedTransaction`}),` with your own broadcast flow or chain tooling.`]})]}),_jsxs(Tab,{title:`Solana`,id:`solana`,\"data-child-heading-ids\":`[\"step-1-set-up-your-project-2\",\"1-1-create-the-project-and-install-dependencies-2\",\"1-2-configure-typescript-optional-2\",\"1-3-set-environment-variables-2\",\"step-2-create-a-signing-wallet-2\",\"step-3-build-and-sign-a-transaction-2\",\"step-4-review-the-response-2\"]`,children:[_jsx(Heading,{level:`2`,id:`step-1-set-up-your-project-2`,children:`Step 1. Set up your project`}),_jsx(Heading,{level:`3`,id:`1-1-create-the-project-and-install-dependencies-2`,children:`1.1. Create the project and install dependencies`}),_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Create the project directory and initialize Node.js`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sign-transactions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sign-transactions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Set up module type and a script for Solana signing`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pkg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` type=module`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pkg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` scripts.sign-solana=\"node --env-file=.env sign-solana.ts\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install runtime dependencies`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @circle-fin/developer-controlled-wallets`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @solana/web3.js`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install dev dependencies`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --save-dev`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` typescript`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @types/node`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`1-2-configure-typescript-optional-2`,children:`1.2. Configure TypeScript (optional)`}),_jsx(Tip,{children:_jsx(_components.p,{children:`This step is optional. It helps prevent missing types in your IDE or editor.`})}),_jsxs(_components.p,{children:[`Create a `,_jsx(_components.code,{children:`tsconfig.json`}),` file:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tsc`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --init`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Then, update the `,_jsx(_components.code,{children:`tsconfig.json`}),` file:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`'EOF'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tsconfig.json`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"compilerOptions\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"target\": \"ESNext\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"module\": \"ESNext\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"moduleResolution\": \"bundler\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"strict\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"types\": [\"node\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`EOF`})}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`1-3-set-environment-variables-2`,children:`1.3. Set environment variables`}),_jsxs(_components.p,{children:[`Create a `,_jsx(_components.code,{children:`.env`}),` file in the project directory:`]}),_jsx(CodeBlock,{filename:`.env`,numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CIRCLE_API_KEY=YOUR_API_KEY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CIRCLE_ENTITY_SECRET=YOUR_ENTITY_SECRET`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CIRCLE_API_KEY`}),` is your Circle Developer API key.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CIRCLE_ENTITY_SECRET`}),` is your registered entity secret.`]}),`\n`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.code,{children:`.env`}),` in your editor rather than writing values with shell commands, and\nadd `,_jsx(_components.code,{children:`.env`}),` to your `,_jsx(_components.code,{children:`.gitignore`}),`. This prevents credentials from leaking into\nyour shell history or version control.`]})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`npm run`}),` command in this tutorial loads variables from `,_jsx(_components.code,{children:`.env`}),` using Node.js\nnative env-file support.`]}),_jsx(Heading,{level:`2`,id:`step-2-create-a-signing-wallet-2`,children:`Step 2. Create a signing wallet`}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createWallets`}),_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:` accountType:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EOA\"`}),_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:` blockchains:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SOL-DEVNET\"`}),_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:` count:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_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:` walletSetId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WALLET_SET_ID\"`}),_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(Note,{children:[`Use `,_jsx(_components.code,{children:`count`}),` to create up to 200 wallets per request.`]}),_jsxs(_components.p,{children:[`Fund the `,_jsx(_components.code,{children:`SOL-DEVNET`}),` wallet with devnet `,_jsx(_components.code,{children:`SOL`}),` before broadcasting signed\ntransactions, or the account will not have the balance needed to pay fees\nonchain.`]}),_jsx(Heading,{level:`2`,id:`step-3-build-and-sign-a-transaction-2`,children:`Step 3. Build and sign a transaction`}),_jsx(CodeBlock,{filename:`sign-solana.ts`,numberOfLines:`63`,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:`63`,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:`initiateDeveloperControlledWalletsClient`}),_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:` \"@circle-fin/developer-controlled-wallets\"`}),_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:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Connection`}),_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:` PublicKey`}),_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:` SystemProgram`}),_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:` Transaction`}),_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:` clusterApiUrl`}),_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:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@solana/web3.js\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Initialize the wallets client`})}),`\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:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` initiateDeveloperControlledWalletsClient`}),_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:` apiKey:`}),_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:`CIRCLE_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entitySecret:`}),_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:`CIRCLE_ENTITY_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:`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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Set transaction inputs`})}),`\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:` walletId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_SOLANA_WALLET_ID\"`}),_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:` senderAddress`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WALLET_ADDRESS\"`}),_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:` recipientAddress`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` senderAddress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Connect to the Solana RPC provider`})}),`\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:` connection`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Connection`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`clusterApiUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"devnet\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"confirmed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Build the Solana transaction for a signing test`})}),`\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:` instruction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` SystemProgram`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`transfer`}),_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:` fromPubkey:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` PublicKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`senderAddress`}),_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:` toPubkey:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` PublicKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`recipientAddress`}),_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:` lamports:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`blockhash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` connection`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getLatestBlockhash`}),_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:` transaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`add`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`instruction`}),_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:` transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`recentBlockhash`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` blockhash`}),_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:` transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`feePayer`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` PublicKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`senderAddress`}),_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:` rawTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`serialize`}),_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:` requireAllSignatures:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_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:` verifySignatures:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Sign the raw transaction`})}),`\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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signTransaction`}),_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:` walletId`}),_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:` rawTransaction:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rawTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toString`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"base64\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Broadcast the signed transaction`})}),`\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:` signedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_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:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ??`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"base64\"`}),_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:` txid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` connection`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendRawTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signedTransaction`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_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:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Broadcast transaction ID:\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`txid`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_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:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`exit`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_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(_components.p,{children:[`Base64 encode the raw transaction before you send it to `,_jsx(_components.code,{children:`signTransaction()`}),`. The\nsigning request can succeed before the account is funded, but the broadcast step\ncan still fail if the wallet has not received devnet `,_jsx(_components.code,{children:`SOL`}),`.`]}),_jsx(Heading,{level:`2`,id:`step-4-review-the-response-2`,children:`Step 4. Review the response`}),_jsx(_components.p,{children:`The signing response includes:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signature`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signedTransaction`})}),`\n`]}),_jsx(_components.p,{children:`If you broadcast the signed payload in the same script, you should also see the\nbroadcast transaction ID.`})]}),_jsxs(Tab,{title:`NEAR`,id:`near`,\"data-child-heading-ids\":`[\"step-1-set-up-your-project-3\",\"1-1-create-the-project-and-install-dependencies-3\",\"1-2-configure-typescript-optional-3\",\"1-3-set-environment-variables-3\",\"step-2-create-a-signing-wallet-3\",\"step-3-build-and-sign-a-transaction-3\",\"step-4-review-the-response-3\"]`,children:[_jsx(Heading,{level:`2`,id:`step-1-set-up-your-project-3`,children:`Step 1. Set up your project`}),_jsx(Heading,{level:`3`,id:`1-1-create-the-project-and-install-dependencies-3`,children:`1.1. Create the project and install dependencies`}),_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Create the project directory and initialize Node.js`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sign-transactions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sign-transactions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Set up module type and a script for NEAR signing`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pkg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` type=module`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pkg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` scripts.sign-near=\"node --env-file=.env sign-near.ts\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install runtime dependencies`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @circle-fin/developer-controlled-wallets`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` near-api-js`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install dev dependencies`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --save-dev`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` typescript`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @types/node`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`1-2-configure-typescript-optional-3`,children:`1.2. Configure TypeScript (optional)`}),_jsx(Tip,{children:_jsx(_components.p,{children:`This step is optional. It helps prevent missing types in your IDE or editor.`})}),_jsxs(_components.p,{children:[`Create a `,_jsx(_components.code,{children:`tsconfig.json`}),` file:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tsc`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --init`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Then, update the `,_jsx(_components.code,{children:`tsconfig.json`}),` file:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`'EOF'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tsconfig.json`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"compilerOptions\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"target\": \"ESNext\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"module\": \"ESNext\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"moduleResolution\": \"bundler\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"strict\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"types\": [\"node\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`EOF`})}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`1-3-set-environment-variables-3`,children:`1.3. Set environment variables`}),_jsxs(_components.p,{children:[`Create a `,_jsx(_components.code,{children:`.env`}),` file in the project directory:`]}),_jsx(CodeBlock,{filename:`.env`,numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CIRCLE_API_KEY=YOUR_API_KEY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CIRCLE_ENTITY_SECRET=YOUR_ENTITY_SECRET`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CIRCLE_API_KEY`}),` is your Circle Developer API key.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CIRCLE_ENTITY_SECRET`}),` is your registered entity secret.`]}),`\n`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.code,{children:`.env`}),` in your editor rather than writing values with shell commands, and\nadd `,_jsx(_components.code,{children:`.env`}),` to your `,_jsx(_components.code,{children:`.gitignore`}),`. This prevents credentials from leaking into\nyour shell history or version control.`]})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`npm run`}),` command in this tutorial loads variables from `,_jsx(_components.code,{children:`.env`}),` using Node.js\nnative env-file support.`]}),_jsx(Heading,{level:`2`,id:`step-2-create-a-signing-wallet-3`,children:`Step 2. Create a signing wallet`}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createWallets`}),_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:` accountType:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EOA\"`}),_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:` blockchains:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"NEAR-TESTNET\"`}),_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:` count:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_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:` walletSetId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WALLET_SET_ID\"`}),_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(Note,{children:[`Use `,_jsx(_components.code,{children:`count`}),` to create up to 200 wallets per request.`]}),_jsxs(_components.p,{children:[`Fund the `,_jsx(_components.code,{children:`senderAccount`}),` NEAR testnet account before broadcasting signed\ntransactions, or the account will not have enough `,_jsx(_components.code,{children:`NEAR`}),` to pay network fees.`]}),_jsx(_components.p,{children:`Use these values from the wallet creation response in the next step:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`walletId`}),` = the wallet `,_jsx(_components.code,{children:`id`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`walletPublicKey`}),` = the wallet `,_jsx(_components.code,{children:`initialPublicKey`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`address`}),` = the wallet’s implicit account ID onchain`]}),`\n`]}),_jsxs(_components.p,{children:[`For the signing script, `,_jsx(_components.code,{children:`senderAccount`}),` is the NEAR testnet account where you\nadded the wallet `,_jsx(_components.code,{children:`initialPublicKey`}),` as a full-access key. It is not the Circle\nwallet `,_jsx(_components.code,{children:`address`}),` unless you specifically set up and fund that implicit account\nfor signing.`]}),_jsxs(_components.p,{children:[`Before you continue, either create or use an existing NEAR testnet account and\nadd the wallet `,_jsx(_components.code,{children:`initialPublicKey`}),` as an access key on that account. Then use\nthat account ID as `,_jsx(_components.code,{children:`senderAccount`}),` in the signing step. For setup guidance, see\n`,_jsx(_components.a,{href:`https://docs.near.org/getting-started/create-account`,children:`Create an Account`}),` and\n`,_jsx(_components.a,{href:`https://docs.near.org/tools/cli`,children:`NEAR CLI`}),`.`]}),_jsx(Heading,{level:`2`,id:`step-3-build-and-sign-a-transaction-3`,children:`Step 3. Build and sign a transaction`}),_jsx(CodeBlock,{filename:`sign-near.ts`,numberOfLines:`57`,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:`57`,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:`initiateDeveloperControlledWalletsClient`}),_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:` \"@circle-fin/developer-controlled-wallets\"`}),_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:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Account`}),_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:` JsonRpcProvider`}),_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:` nearToYocto`}),_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:` actions`}),_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:` encodeTransaction`}),_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:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"near-api-js\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Initialize the wallets client`})}),`\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:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` initiateDeveloperControlledWalletsClient`}),_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:` apiKey:`}),_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:`CIRCLE_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entitySecret:`}),_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:`CIRCLE_ENTITY_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:` NEAR_CONFIG`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` networkId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"testnet\"`}),_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:` nodeUrl:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://rpc.testnet.near.org\"`}),_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:`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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Set transaction inputs`})}),`\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:` walletId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_NEAR_WALLET_ID\"`}),_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:` walletPublicKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_NEAR_INITIAL_PUBLIC_KEY\"`}),_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:` senderAccount`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_NEAR_TESTNET_ACCOUNT\"`}),_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:` recipientAccount`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` senderAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Connect to the NEAR RPC provider`})}),`\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:` provider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` JsonRpcProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`url:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` NEAR_CONFIG`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`nodeUrl`}),_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:` sender`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`senderAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`provider`}),_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:` transactionActions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`actions`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`transfer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`nearToYocto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))];`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Build and serialize the NEAR transaction for a signing test`})}),`\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:` transaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createTransaction`}),_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:` receiverId:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` recipientAccount`}),_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:` actions:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transactionActions`}),_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:` publicKey:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletPublicKey`}),_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:` rawTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`encodeTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toString`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"base64\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Sign the raw transaction`})}),`\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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signTransaction`}),_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:` walletId`}),_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:` rawTransaction`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_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:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`exit`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_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(_components.p,{children:[`Base64 encode the raw transaction before you send it to `,_jsx(_components.code,{children:`signTransaction()`}),`.`]}),_jsx(_components.p,{children:`For example, if the create-wallet response includes:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` id: \"40313ab7-9abd-57f3-a067-617df1530383\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` address: \"8c18a0fb0717bc82f6cc7ca019e2cbd92ca5cb0767f47ef2cb2a70a0d561ad88\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` initialPublicKey: \"ARsrrXKzD5C9Bj9BxEzTQNNsBUGk35FM3vyUL5PbgwLj\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`and you add `,_jsx(_components.code,{children:`initialPublicKey`}),` to `,_jsx(_components.code,{children:`my-circle-signer.testnet`}),`, then set:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,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:`3`,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:` walletId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"40313ab7-9abd-57f3-a067-617df1530383\"`}),_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:` walletPublicKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ARsrrXKzD5C9Bj9BxEzTQNNsBUGk35FM3vyUL5PbgwLj\"`}),_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:` senderAccount`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"my-circle-signer.testnet\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),_jsx(Heading,{level:`2`,id:`step-4-review-the-response-3`,children:`Step 4. Review the response`}),_jsx(_components.p,{children:`The signing response includes:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signature`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signedTransaction`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`txHash`})}),`\n`]}),_jsx(_components.p,{children:`Broadcast that signed payload through your own RPC or node provider.`})]})]})]})}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":{"config":{},"pageMetadata":{"title":"Sign transactions","description":"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.","sidebarTitle":"Sign transactions","href":"/wallets/sign-transactions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Step 1. Set up your project","slug":"step-1-set-up-your-project","depth":2,"children":[{"title":"1.1. Create the project and install dependencies","slug":"1-1-create-the-project-and-install-dependencies","depth":3,"children":[],"tabId":"evm"},{"title":"1.2. Configure TypeScript (optional)","slug":"1-2-configure-typescript-optional","depth":3,"children":[],"tabId":"evm"},{"title":"1.3. Set environment variables","slug":"1-3-set-environment-variables","depth":3,"children":[],"tabId":"evm"}],"tabId":"evm"},{"title":"Step 2. Create a signing wallet","slug":"step-2-create-a-signing-wallet","depth":2,"children":[],"tabId":"evm"},{"title":"Step 3. Build and sign a transaction","slug":"step-3-build-and-sign-a-transaction","depth":2,"children":[],"tabId":"evm"},{"title":"Step 4. Review the response","slug":"step-4-review-the-response","depth":2,"children":[],"tabId":"evm"},{"title":"Step 1. Set up your project","slug":"step-1-set-up-your-project-2","depth":2,"children":[{"title":"1.1. Create the project and install dependencies","slug":"1-1-create-the-project-and-install-dependencies-2","depth":3,"children":[],"tabId":"solana"},{"title":"1.2. Configure TypeScript (optional)","slug":"1-2-configure-typescript-optional-2","depth":3,"children":[],"tabId":"solana"},{"title":"1.3. Set environment variables","slug":"1-3-set-environment-variables-2","depth":3,"children":[],"tabId":"solana"}],"tabId":"solana"},{"title":"Step 2. Create a signing wallet","slug":"step-2-create-a-signing-wallet-2","depth":2,"children":[],"tabId":"solana"},{"title":"Step 3. Build and sign a transaction","slug":"step-3-build-and-sign-a-transaction-2","depth":2,"children":[],"tabId":"solana"},{"title":"Step 4. Review the response","slug":"step-4-review-the-response-2","depth":2,"children":[],"tabId":"solana"},{"title":"Step 1. Set up your project","slug":"step-1-set-up-your-project-3","depth":2,"children":[{"title":"1.1. Create the project and install dependencies","slug":"1-1-create-the-project-and-install-dependencies-3","depth":3,"children":[],"tabId":"near"},{"title":"1.2. Configure TypeScript (optional)","slug":"1-2-configure-typescript-optional-3","depth":3,"children":[],"tabId":"near"},{"title":"1.3. Set environment variables","slug":"1-3-set-environment-variables-3","depth":3,"children":[],"tabId":"near"}],"tabId":"near"},{"title":"Step 2. Create a signing wallet","slug":"step-2-create-a-signing-wallet-3","depth":2,"children":[],"tabId":"near"},{"title":"Step 3. Build and sign a transaction","slug":"step-3-build-and-sign-a-transaction-3","depth":2,"children":[],"tabId":"near"},{"title":"Step 4. Review the response","slug":"step-4-review-the-response-3","depth":2,"children":[],"tabId":"near"}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/circle-167b8d39/d67aae5e94f8afee/content/gtm.js","/_mintlify/custom/circle-167b8d39/df50992471c6ad37/content/footer-powered-by.js"],"subdomain":"circle-167b8d39","siteName":"Circle Docs","title":"Sign transactions - Circle Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T19:20:20.336Z","originalFileLocation":"wallets/sign-transactions.mdx"},"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=\"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Circle Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_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/circle-167b8d39/NmgH-UQQhRa2ts0q/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sign transactions - Circle Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Circle Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.circle.com/wallets/sign-transactions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://circle-167b8d39.mintlify.app/_mintlify/api/og/v2?division=Transaction+signing\u0026amp;title=Sign+transactions\u0026amp;description=Sign+transactions+with+developer-controlled+wallets+on+EVM%2C+Solana%2C+or+NEAR+when+you+manage+broadcasting+yourself.\u0026amp;theme=5260492f3b2b0d8ab3e7e4f3\u0026amp;signature=9f450cf3124c6da5120575707da611bd683eb3f0f3a04249056d64184abb343f\">\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=\"Sign transactions - Circle Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://circle-167b8d39.mintlify.app/_mintlify/api/og/v2?division=Transaction+signing\u0026amp;title=Sign+transactions\u0026amp;description=Sign+transactions+with+developer-controlled+wallets+on+EVM%2C+Solana%2C+or+NEAR+when+you+manage+broadcasting+yourself.\u0026amp;theme=5260492f3b2b0d8ab3e7e4f3\u0026amp;signature=9f450cf3124c6da5120575707da611bd683eb3f0f3a04249056d64184abb343f\">\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/circle-167b8d39/NmgH-UQQhRa2ts0q/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Circle Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0073C3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.circle.com/wallets/sign-transactions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/wallets/sign-transactions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.circle.com/#organization\",\"name\":\"Circle Docs\",\"url\":\"https://developers.circle.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/circle-167b8d39/K2XWSLhaeRomzNa1/logo/light.svg?fit=max\u0026auto=format\u0026n=K2XWSLhaeRomzNa1\u0026q=85\u0026s=decfb42837e0eb7c32dd425866902e78\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.circle.com#website\",\"name\":\"Circle Docs\",\"url\":\"https://developers.circle.com\",\"publisher\":{\"@id\":\"https://developers.circle.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.circle.com/wallets/sign-transactions#webpage\",\"url\":\"https://developers.circle.com/wallets/sign-transactions\",\"name\":\"Sign transactions\",\"description\":\"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.\",\"dateModified\":\"2026-10-09T19:20:20.336Z\",\"isPartOf\":{\"@id\":\"https://developers.circle.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.circle.com/wallets/sign-transactions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.circle.com/wallets/sign-transactions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Wallets\",\"item\":\"https://developers.circle.com/wallets\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wallets: Dev-Controlled\",\"item\":\"https://developers.circle.com/wallets/dev-controlled\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Transaction signing\",\"item\":\"https://developers.circle.com/wallets/signing-apis\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Sign transactions\",\"item\":\"https://developers.circle.com/wallets/sign-transactions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.circle.com/wallets/sign-transactions#article\",\"headline\":\"Sign transactions\",\"name\":\"Sign transactions\",\"description\":\"Sign transactions with developer-controlled wallets on EVM, Solana, or NEAR when you manage broadcasting yourself.\",\"url\":\"https://developers.circle.com/wallets/sign-transactions\",\"mainEntityOfPage\":{\"@id\":\"https://developers.circle.com/wallets/sign-transactions#webpage\"},\"dateModified\":\"2026-10-09T19:20:20.336Z\",\"publisher\":{\"@id\":\"https://developers.circle.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.circle.com#website\"}}]}\u003c/script>","siteName":"Circle Docs","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Assets","pages":[{"title":"Assets","href":"/assets"}]},{"tab":"Build onchain","pages":[{"title":"Build onchain experiences","sidebarTitle":"Overview","mode":"wide","href":"/build-onchain"},{"group":"Wallets","pages":[{"title":"Circle Wallets","sidebarTitle":"Overview","href":"/wallets"},{"group":"Get started","pages":[{"title":"Choose your wallet product and account types","sidebarTitle":"Choose your wallet and account types","href":"/wallets/account-types"},{"title":"Supported blockchains","href":"/wallets/supported-blockchains"},{"group":"Core concepts","pages":[{"title":"Transaction signing and authorization","sidebarTitle":"Transaction signing and authorization","href":"/wallets/signing-and-authorization-models"},{"title":"Key management","sidebarTitle":"Key management","href":"/wallets/key-management"},{"title":"Blockchain infrastructure","sidebarTitle":"Blockchain infrastructure","href":"/wallets/blockchain-infrastructure"},{"title":"Blockchain confirmations","href":"/wallets/blockchain-confirmations"}]}]},{"group":"Wallets: Dev-Controlled","pages":[{"title":"Dev-controlled wallets","sidebarTitle":"Overview","href":"/wallets/dev-controlled"},{"group":"Entity secret","pages":[{"title":"How the entity secret works","href":"/wallets/dev-controlled/entity-secret-management"},{"title":"How-to: Generate and register your entity secret","sidebarTitle":"Generate and register your entity secret","href":"/wallets/dev-controlled/register-entity-secret"}]},{"title":"Quickstart: Create a dev-controlled wallet","sidebarTitle":"Create a dev-controlled wallet","href":"/wallets/dev-controlled/create-your-first-wallet"},{"title":"Send tokens across wallets","sidebarTitle":"Send tokens across wallets","href":"/wallets/dev-controlled/transfer-tokens-across-wallets"},{"group":"Manage wallet creation","pages":[{"title":"How-to: Batch-create wallets for existing users","sidebarTitle":"Batch-create wallets for existing users","href":"/wallets/dev-controlled/batch-create-wallets"},{"title":"How-to: Pre-create wallets and assign on demand","sidebarTitle":"Pre-create wallets and assign on demand","href":"/wallets/dev-controlled/pre-create-wallets"}]},{"group":"Transaction signing","pages":[{"title":"How signing APIs work","description":"Learn how Circle's signing APIs work for developer-controlled wallets when you manage broadcasting yourself.","sidebarTitle":"How signing APIs work","href":"/wallets/signing-apis"},{"title":"Sign transactions","sidebarTitle":"Sign transactions","href":"/wallets/sign-transactions"},{"title":"EVM testnet chain IDs for signing","description":"Chain IDs supported by EVM testnet wallets for signing transactions.","sidebarTitle":"EVM testnet chain IDs","href":"/wallets/sign-tx-chain-id"}]},{"title":"How-to: Retire existing wallets","sidebarTitle":"Retire existing wallets","href":"/wallets/dev-controlled/retire-existing-wallets"}]},{"group":"Wallets: User-Controlled","pages":[{"title":"User-controlled wallets","sidebarTitle":"Overview","href":"/wallets/user-controlled"},{"title":"Authentication methods","href":"/wallets/user-controlled/authentication-methods"},{"title":"Build a wallet app","href":"/wallets/user-controlled/build-a-wallet-app"},{"title":"How-to: Transfer tokens","sidebarTitle":"Transfer tokens","href":"/wallets/user-controlled/transfer-tokens"},{"title":"How-to: Request a signature","sidebarTitle":"Request a signature","href":"/wallets/user-controlled/request-a-signature"},{"group":"Account management","pages":[{"title":"How-to: Reset a user's PIN","sidebarTitle":"Reset a user's PIN","href":"/wallets/user-controlled/reset-pin"},{"title":"How-to: Recover an account","sidebarTitle":"Recover an account","href":"/wallets/user-controlled/recover-account"},{"title":"How-to: Remove a user","sidebarTitle":"Remove a user","href":"/wallets/user-controlled/remove-a-user"}]}]},{"group":"Wallets: Modular","pages":[{"title":"Modular wallets","sidebarTitle":"Overview","href":"/wallets/modular"},{"title":"How passkeys and modules work","href":"/wallets/modular/how-passkeys-and-modules-work"},{"title":"Create a modular wallet","sidebarTitle":"Create a modular wallet","href":"/wallets/modular/create-a-modular-wallet"},{"group":"Wallet operations","pages":[{"title":"How-to: Transfer tokens","sidebarTitle":"Transfer tokens","href":"/wallets/modular/transfer-tokens"},{"title":"Batch and parallel user operations","sidebarTitle":"Batch and parallel user operations","href":"/wallets/modular/batch-and-parallel-user-operations"},{"title":"Sign and verify messages","sidebarTitle":"Sign and verify messages","href":"/wallets/modular/sign-and-verify-messages"},{"title":"How-to: Use a modular wallet as an EIP-1193 provider","sidebarTitle":"Use as an EIP-1193 provider","href":"/wallets/modular/use-as-eip-1193-provider"}]},{"title":"How-to: Set up passkey recovery","sidebarTitle":"Set up passkey recovery","href":"/wallets/modular/set-up-passkey-recovery"},{"title":"How-to: Use Dynamic as a signer","sidebarTitle":"Use Dynamic as a signer","href":"/wallets/modular/use-dynamic-as-a-signer"}]},{"group":"Learn more","pages":[{"title":"Gas fees","sidebarTitle":"Gas fees","href":"/wallets/gas-fees"},{"title":"Transaction throughput","href":"/wallets/transaction-limits-and-optimizations"},{"title":"Batch operations for smart contract accounts","sidebarTitle":"Batch operations","href":"/wallets/batch-operations"},{"title":"Unified wallet addressing on EVM blockchains","sidebarTitle":"Unified wallet addressing (EVM)","href":"/wallets/unified-wallet-addressing-evm"},{"title":"Token IDs","sidebarTitle":"Token IDs","href":"/wallets/tokens"},{"title":"Smart contract account (SCA) upgrades","sidebarTitle":"SCA upgrades","href":"/wallets/wallet-upgrades"},{"title":"Compliance requirements","href":"/wallets/compliance-requirements"}]}]},{"group":"Gas fees","pages":[{"group":"Gas Station","pages":[{"title":"Gas Station","sidebarTitle":"Overview","href":"/wallets/gas-station"},{"group":"Quickstarts","pages":[{"title":"Send a gasless transaction","href":"/wallets/gas-station/send-a-gasless-transaction"},{"title":"Quickstart: Create and fund a Solana associated token account (ATA)","sidebarTitle":"Create and fund a Solana ATA","href":"/wallets/gas-station/create-solana-ata"}]},{"group":"References","pages":[{"title":"Gas Station contract addresses","sidebarTitle":"Contract addresses","href":"/wallets/gas-station/contract-addresses"},{"title":"Solana ATA sponsorship","href":"/wallets/gas-station/solana-ata-sponsorship"},{"title":"Billing for sponsored gas fees","href":"/wallets/gas-station/billing"},{"title":"Policy management","href":"/wallets/gas-station/policy-management"}]}]},{"group":"Paymaster","pages":[{"title":"Paymaster","sidebarTitle":"Paymaster Overview","href":"/paymaster"},{"group":"Quickstarts","pages":[{"title":"Quickstart: Circle Paymaster","sidebarTitle":"Build a wallet to pay gas fees in USDC","href":"/paymaster/pay-gas-fees-usdc"}]},{"group":"References","pages":[{"title":"Paymaster addresses and events","sidebarTitle":"Addresses and events","href":"/paymaster/addresses-and-events"}]}]}]},{"group":"Compliance","pages":[{"group":"Compliance Engine","pages":[{"title":"Compliance Engine","sidebarTitle":"Overview","href":"/wallets/compliance-engine"},{"group":"Concepts","pages":[{"title":"Transaction screening","href":"/wallets/compliance-engine/tx-screening"}]},{"group":"Quickstarts","pages":[{"title":"Quickstart: Assess the risk of wallet addresses","sidebarTitle":"Assess the risk of wallet addresses","href":"/wallets/compliance-engine/tx-screening-quickstart"}]},{"group":"Tutorials","pages":[{"title":"Testing guide","sidebarTitle":"Testing transaction screening","href":"/wallets/compliance-engine/tx-screening-testing"},{"title":"Rule management","sidebarTitle":"Transaction screening rule management","href":"/wallets/compliance-engine/tx-screening-rule-management"},{"title":"Alert management","sidebarTitle":"Transaction screening alert management","href":"/wallets/compliance-engine/tx-screening-alert-management"}]}]}]},{"group":"Contracts","pages":[{"title":"Contracts","sidebarTitle":"Circle Contracts overview","href":"/contracts"},{"group":"Concepts","pages":[{"title":"Contracts templates","sidebarTitle":"Templates","href":"/contracts/scp-templates-overview"}]},{"group":"Quickstarts","pages":[{"title":"Quickstart: Deploy a smart contract using bytecode","sidebarTitle":"Deploy a smart contract using bytecode","href":"/contracts/scp-deploy-smart-contract"},{"title":"Quickstart: Deploy an ERC-1155 contract template","sidebarTitle":"Deploy an ERC-1155 contract template","href":"/contracts/deploy-smart-contract-template"},{"title":"Quickstart: Interact with a smart contract","sidebarTitle":"Interact with a smart contract","href":"/contracts/scp-interact-smart-contract"},{"title":"Quickstart: Event monitoring for smart contracts","sidebarTitle":"Event monitoring for smart contracts","href":"/contracts/scp-event-monitoring"}]},{"group":"References","pages":[{"title":"Circle Contracts supported blockchains","sidebarTitle":"Supported blockchains","href":"/contracts/supported-blockchains"},{"title":"Airdrop template","href":"/contracts/airdrop"},{"title":"Token template","href":"/contracts/erc-20-token"},{"title":"Multi-token template","href":"/contracts/erc-1155-multi-token"},{"title":"NFT template","href":"/contracts/erc-721-nft"},{"title":"How-to: Create an API key","sidebarTitle":"Create an API key","href":"/contracts/create-api-key"}]}]}]},{"tab":"Crosschain transfers","pages":[{"title":"Crosschain transfers","href":"/crosschain-transfers"}]},{"tab":"Agent stack","pages":[{"title":"Agent stack","href":"/agent-stack"}]},{"tab":"Payments","pages":[{"title":"Payments","href":"/cpn"}]},{"tab":"Liquidity services","pages":[{"title":"Liquidity services","href":"/liquidity-services"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference"}]},{"tab":"Developer tools","menu":[{"item":"Sample projects","pages":[{"title":"Sample projects","href":"/sample-projects"}]},{"item":"SDKs","pages":[{"title":"SDKs","href":"/sdks"}]},{"item":"Release notes","pages":[{"title":"Release notes","href":"/release-notes"}]}],"pages":[{"title":"Developer tools","href":"/sample-projects"}]}]},"basePath":"","title":"Sign transactions - Circle Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}