Meta tags:
description= Get started with developer-controlled wallets by creating a wallet set and a wallet within it.;
Headings (most frequently used words):
create, the, wallet, step, set, your, project, script, quickstart, dev, controlled, documentation, index, on, this, page, prerequisites, up, next, steps, wallets, gas, fees, compliance, contracts, and, install, dependencies, configure, typescript, optional, environment, variables, run,
Text of the page (most frequently used words):
#wallet (40), the (33), create (24), controlled (23), wallets (22), and (21), set (21), your (15), dev (15), circle (13), developer (12), you (9), install (9), this (8), from (8), project (8), json (8), env (8), entity (7), secret (7), python (7), node (7), use (6), page (6), arc (6), testnet (6), data (6), npm (6), script (6), api (6), developer_controlled_wallets (6), client (6), file (6), address (5), wallet_set (5), walletset (5), directory (5), import (5), console (5), step (5), dependencies (5), tokens (4), get (4), can (4), blockchain (4), response (4), create_wallet (4), run (4), eoa (4), circle_entity_secret (4), circle_api_key (4), const (4), projects (4), overview (4), docs (3), next (3), send (3), across (3), add (3), with (3), one (3), have (3), key (3), print (3), first (3), process (3), err (3), error (3), main (3), walletsetresponse (3), creates (3), then (3), types (3), module (3), tsconfig (3), optional (3), typescript (3), venv (3), same (3), started (3), quickstart (3), are (2), generated (2), using (2), assistant (2), discord (2), youtube (2), instagram (2), linkedin (2), policy (2), privacy (2), terms (2), home (2), transfers (2), balances (2), app (2), build (2), usdc (2), faucet (2), that (2), steps (2), save (2), for (2), 0x1234 (2), 1f29 (2), 9d4f (2), calling (2), sdk (2), indent (2), dumps (2), loads (2), model_dump_json (2), accounttype (2), count (2), blockchains (2), walletsetid (2), from_dict (2), wallets_api (2), name (2), wallet_sets_api (2), getenv (2), utils (2), load_dotenv (2), dotenv (2), walletresponse (2), log (2), sca (2), any (2), supported (2), await (2), creation (2), new (2), initiatedevelopercontrolledwalletsclient (2), fin (2), code (2), within (2), editor (2), shell (2), registered (2), environment (2), variables (2), eof (2), esnext (2), init (2), configure (2), runtime (2), mkdir (2), initialize (2), tsx (2), pkg (2), type (2), before (2), prerequisites (2), all (2), share (2), account (2), copy (2), contracts (2), compliance (2), gas (2), reference (2), search (2), documentation (2), index (2), responses, may, contain, mistakes, help, support, cookie, acceptable, service, legal, previous, how, generate, register, yes, was, helpful, token, swaps, bridging, chain, agnostic, unified, without, building, each, integration, yourself, adapter, payment, workflows, kit, transfer, another, fund, now, future, operations, such, transferring, checking, output, looks, similar, directly, instead, need, two, requests, replace, ciphertext, idempotency, request, sdks, handle, automatically, exception, when, apiexception, except, actual_instance, createwalletrequest, createwalletsetrequest, create_wallet_set, try, walletsapi, walletsetsapi, entity_secret, api_key, init_developer_controlled_wallets_client, web3, exit, message, catch, createwallets, failed, returned, throw, createwalletset, function, async, entitysecret, apikey, following, write, prints, open, rather, than, writing, values, commands, prevents, credentials, leaking, into, history, version, control, gitignore, your_entity_secret, your_api_key, strict, true, moduleresolution, bundler, target, compileroptions, cat, update, tsc, npx, helps, prevent, missing, ide, pip, bin, activate, source, python3, scripts, start, command, path, want, installed, obtained, begin, ensure, container, groups, under, single, evm, after, completing, tutorial, examples, but, smart, contract, externally, owned, creating, references, quickstarts, concepts, engine, paymaster, station, fees, learn, more, explore, capabilities, modular, user, retire, existing, transaction, signing, manage, tools, liquidity, services, payments, agent, stack, crosschain, onchain, assets, navigation, sign, ask, skip, content, discover, available, pages, exploring, further, fetch, complete, llms, txt,
Text of the page (random words):
quickstart create a dev controlled wallet circle docs documentation index fetch the complete documentation index at llms txt use this file to discover all available pages before exploring further skip to main content circle docs home page search k ask assistant sign in to console faucet search navigation wallets dev controlled quickstart create a dev controlled wallet get started assets build onchain crosschain transfers agent stack payments liquidity services api reference developer tools api reference overview wallets overview get started wallets dev controlled overview entity secret create a dev controlled wallet send tokens across wallets manage wallet creation transaction signing retire existing wallets wallets user controlled wallets modular explore capabilities learn more gas fees gas station paymaster compliance compliance engine contracts circle contracts overview concepts quickstarts references on this page prerequisites 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 your wallet 2 1 create the script 2 2 run the script next steps wallets wallets dev controlled quickstart create a dev controlled wallet copy page get started with developer controlled wallets by creating a wallet set and a wallet within it copy page a wallet set is a container that groups your developer controlled wallets under a single entity secret all wallets in a set share the same entity secret and evm wallets in the same set share the same address after completing this tutorial you ll have a wallet set and a developer controlled wallet the examples use an externally owned account eoa on arc testnet but you can create a smart contract account sca or use any supported blockchain prerequisites before you begin ensure you have obtained an api key from the circle console generated and registered an entity secret installed node js 22 or python 3 11 step 1 set up your project 1 1 create the project and install dependencies create a new directory and install the sdk for the path you want to use node js python create the project directory and initialize node js mkdir dev controlled projects cd dev controlled projects npm init y set up module type and a start command npm pkg set type module npm pkg set scripts create wallet tsx env file env create wallet ts install runtime dependencies npm install circle fin developer controlled wallets install dev dependencies npm install save dev tsx typescript types node create the project directory and initialize python mkdir dev controlled projects cd dev controlled projects python3 m venv venv source venv bin activate install runtime dependencies pip install circle developer controlled wallets python dotenv 1 2 configure typescript optional this step is optional it helps prevent missing types in your ide or editor create a tsconfig json file npx tsc init then update the tsconfig json file cat eof tsconfig json compileroptions target esnext module esnext moduleresolution bundler strict true types node eof 1 3 set environment variables create a env file in the project directory env circle_api_key your_api_key circle_entity_secret your_entity_secret circle_api_key is your circle developer api key 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 step 2 create your wallet write a script creates a wallet set and a developer controlled wallet then prints the wallet set id wallet id and wallet address 2 1 create the script create a create wallet ts or create_wallet py file and add the following code this code creates a wallet set first and then creates a wallet within it create wallet ts create_wallet py import initiatedevelopercontrolledwalletsclient from circle fin developer controlled wallets const client initiatedevelopercontrolledwalletsclient apikey process env circle_api_key entitysecret process env circle_entity_secret async function main const walletsetresponse await client createwalletset name my first dev controlled wallet set const walletset walletsetresponse data walletset if walletset id throw new error wallet set creation failed no id returned const walletresponse await client createwallets walletsetid walletset id blockchains arc testnet can be any supported blockchain count 1 accounttype eoa can be eoa or sca console log wallet set response walletsetresponse data console log wallet response walletresponse data main catch err console error error err message err process exit 1 from circle web3 import utils developer_controlled_wallets from dotenv import load_dotenv import os import json load_dotenv client utils init_developer_controlled_wallets_client api_key os getenv circle_api_key entity_secret os getenv circle_entity_secret wallet_sets_api developer_controlled_wallets walletsetsapi client wallets_api developer_controlled_wallets walletsapi client try wallet_set wallet_sets_api create_wallet_set developer_controlled_wallets createwalletsetrequest from_dict name my first dev controlled wallet set wallet wallets_api create_wallet developer_controlled_wallets createwalletrequest from_dict walletsetid wallet_set data wallet_set actual_instance id blockchains arc testnet count 1 accounttype eoa print json dumps json loads wallet_set model_dump_json indent 2 print json dumps json loads wallet model_dump_json indent 2 except developer_controlled_wallets apiexception as e print exception when calling the circle wallets api s n e if you are calling the api directly instead of using the sdk you need two requests one to create the wallet set and one to create the wallet replace the entity secret ciphertext and idempotency key in your request the sdks handle this automatically 2 2 run the script run the script from your project directory node js python npm run create wallet python create_wallet py the output looks similar to node js python wallet set response walletset id 9d4f wallet response wallets id 1f29 address 0x1234 blockchain arc testnet data wallet_set id 9d4f data wallets id 1f29 address 0x1234 blockchain arc testnet save the wallet id and address for future wallet operations such as transferring tokens or checking balances next steps now that you have a developer controlled wallet you can fund the wallet get testnet usdc from the circle faucet send tokens across wallets transfer usdc from one developer controlled wallet to another build payment workflows with arc app kit use the circle wallets adapter to add token transfers swaps bridging and chain agnostic unified balances to your app without building each integration yourself was this page helpful yes no how to generate and register your entity secret previous send tokens across wallets next i circle docs home page x linkedin instagram youtube discord legal developer terms service terms acceptable use privacy privacy policy cookie policy support help x linkedin instagram youtube discord assistant responses are generated using ai and may contain mistakes
|