Elytro Smart Account CLI
Skill slug suggestion: elytro-cli
Overview
This skill installs and drives the Elytro ERC‑4337 Smart Account CLI so an agent can initialize a vault, create/activate counterfactual wallets, and build/sent sponsored UserOperations across Ethereum mainnet, Optimism, Arbitrum, and Sepolia testnets. For any agent-facing production workflow, set ELYTRO_ENV=production so the CLI talks to the live backend. It wraps the TypeScript CLI stored at https://github.com/Elytro-eth/Elytro-cli (replace with the final public repo URL) and exposes runnable commands such as elytro account create, elytro account activate, and elytro tx send.
Prerequisites
- Node.js ≥ 20 (CLI is built/tested on Node 24 and also works with Bun).
- Git for cloning the public repository.
- Network access to your preferred Ethereum RPC providers and the Pimlico bundler.
- Optional: Bun (if you prefer Bun to run scripts).
Environment Variables
| Variable | Required | Description |
|---|---|---|
ELYTRO_ENV |
Optional | production (default) or development, controls GraphQL endpoint. Use production for any real user workflow. |
ELYTRO_PIMLICO_KEY |
Optional | Pimlico API key. When unset, the CLI automatically falls back to https://public.pimlico.io/v2/{chainId}/rpc. |
ELYTRO_ALCHEMY_KEY |
Optional | Alchemy project key. When unset, use the overrides below or the built-in public RPCs (best for low-volume dev). |
ELYTRO_RPC_URL_<CHAIN_ID> |
Optional | Full JSON-RPC URL override per chain ID (e.g. ELYTRO_RPC_URL_1=https://mainnet.infura.io/v3/...). |
ELYTRO_RPC_URL_<CHAIN_SLUG> |
Optional | Override per slug (slug derived from Alchemy network name: ETH_MAINNET, ETH_SEPOLIA, OPT_MAINNET, OPT_SEPOLIA, ARB_MAINNET). |
Copy .env.example to .env (or .env.production) and fill in secrets, or export the variables directly before running commands.
Installation Steps
git clone https://github.com/Elytro-eth/Elytro-cli.git
cd elytro-cli
npm install
# optionally: npm run build && npm link (for a global `elytro` command)
For Bun users:
git clone https://github.com/Elytro-eth/Elytro-cli.git
cd elytro-cli
bun install
Command Reference
All commands run via npm run dev -- <command> during development, or node dist/index.js <command> after building. Examples:
Bootstrap the vault
npm run dev -- init
Creates ~/.elytro/.device-key and encrypted keyring.json. Must be run once per machine.
Create a counterfactual account
npm run dev -- account create --chain 11155111 --alias test-wallet
Registers the account with Elytro backend so sponsorships are allowed. Supports chain IDs 1 (Ethereum), 10 (Optimism), 42161 (Arbitrum), 11155111 (Sepolia), 11155420 (Optimism Sepolia) by default; additional chains can be added via account add.
Activate (deploy) an account
npm run dev -- account activate --account test-wallet
Builds a deploy UserOperation, requests Pimlico gas pricing and sponsorship, signs with the device key, submits to the bundler, and prints the tx hash/explorer link.
Send a transaction
npm run dev -- tx send --to 0xabc... --value 0.01 --chain 11155111 --account test-wallet
Supports ETH transfers, ERC‑20 transfers via --token <symbol> / --amount, and arbitrary calldata via --data. Use tx simulate first to verify sponsorship + balances without broadcasting.
Build UserOperation JSON
npm run dev -- tx build --to 0xabc... --value 0.01 --account test-wallet --chain 10
Outputs the unsigned UserOp JSON for offline review or tx send --userop.
Skill Workflow
- Install dependencies using Node or Bun.
- Configure env vars (
.env.exampleor exported). At minimum setELYTRO_ENV,ELYTRO_PIMLICO_KEY, and eitherELYTRO_ALCHEMY_KEYor customELYTRO_RPC_URL_*values (Infura, QuickNode, etc.). Without keys the CLI uses public RPCs/bundlers with lower rate limits. - Initialize the vault (
elytro init). This generates device key + encrypted keyring under~/.elytro/. - Create and activate accounts per chain. Use
account list,account info, andaccount switchto manage multiples. - Build/simulate/send transactions via
elytro tx …commands. - Backup
~/.elytro/if needed; never commit those files.
Testing & Verification
- Run
npm run dev -- account listto confirm the CLI boots and reads the device key. - Use Sepolia or Optimism Sepolia for smoke tests (
ELYTRO_ENV=development,ELYTRO_RPC_URL_11155111=…). npm run testexecutes the smoke test harness (if provided) with.env.test.
Packaging Notes
- Do not upload
node_modules/ordist/; Clawhub agents will install dependencies on demand. - Include this
SKILL.md,AGENT_SKILLS.md, and any helper scripts (install.sh,run-account.sh) in the upload folder. - Ensure
.env.examplekeeps placeholder values only.