Agent skill

Smart Account Deployment

by Nethereum in Nethereum/Nethereum

Help users deploy ERC-4337 smart accounts using Nethereum — create a modular NethereumAccount via IAAClient, predict counterfactual addresses with CREATE2, deploy lazily via InitCode on the first…

MITAuto-check passedDevOps & Cloud

Install Smart Account Deployment

skills CLI
$ npx skills add Nethereum/Nethereum --skill smart-account-deployment -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Nethereum/Nethereum smart-account-deployment --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/nethereum-skills/skills/smart-account-deployment .claude/skills/smart-account-deployment && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
smart-account-deployment
GitHub stars
2.3k
Token cost
~1.5k tokens
SKILL.md length
257 words
Files
1
Skills in repo
71
Repo updated
First seen
Licence
MIT

At a glance

Help users deploy ERC-4337 smart accounts using Nethereum — create a modular NethereumAccount via IAAClient, predict counterfactual addresses with CREATE2, deploy lazily via InitCode on the first…

  • The user mentions deploying a smart account
  • SKILL.md covers When to Use This, Packages, Recommended:… and Attach to an Already-Deployed…, plus 6 more sections
  • Calls dotnet
  • Creating a smart wallet

What it does

Smart Account Deployment is an agent skill from Nethereum/Nethereum. Help users deploy ERC-4337 smart accounts using Nethereum — create a modular NethereumAccount via IAAClient, predict counterfactual addresses with CREATE2, deploy lazily via InitCode on the first UserOperation, manage EntryPoint deposits. Use when the user mentions deploying a smart account, creating a smart wallet, CREATE2 account address, counterfactual address, NethereumAccountFactory, SimpleAccountFactory, or account factory deployment in .NET/C.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Deployment. It works with C# and .NET. The repository describes itself as: Ethereum .Net cross platform integration library. The licence is MIT.

When your agent uses it

  • The user mentions deploying a smart account
  • Creating a smart wallet
  • CREATE2 account address
  • Counterfactual address

Example prompts

  • “/smart-account-deployment”

What it can do on your machine

Read from SKILL.md and the folder at commit 229f278. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.nethereum.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Smart Account Deployment loads about 1.5k tokens when it runs. Until then it costs about 120 tokens; SKILL.md has 257 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~120
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Nethereum/Nethereum at commit 229f278, republished under its MIT licence (© Nethereum). 257 words, ~1,489 tokens.

Download SKILL.mdSave it as .claude/skills/smart-account-deployment/SKILL.md (or your agent's skills folder).
name
smart-account-deployment
description
Help users deploy ERC-4337 smart accounts using Nethereum — create a modular NethereumAccount via IAAClient, predict counterfactual addresses with CREATE2, deploy lazily via InitCode on the first UserOperation, manage EntryPoint deposits. Use when the user mentions deploying a smart account, creating a smart wallet, CREATE2 account address, counterfactual address, NethereumAccountFactory, SimpleAccountFactory, or account factory deployment in .NET/C#.
user-invocable
true

Smart Account Deployment

Deploy ERC-4337 smart accounts with Nethereum — predict addresses before deployment with CREATE2, deploy upfront or lazily via the first UserOperation's InitCode.

When to Use This

  • User wants to deploy a new smart contract wallet
  • User needs to predict an account address before deployment (CREATE2)
  • User wants lazy deployment — deploy the account as part of the first UserOperation
  • User is working with NethereumAccountFactory, SimpleAccountFactory, or a custom account factory

Packages

bash
dotnet add package Nethereum.Web3
dotnet add package Nethereum.AccountAbstraction
dotnet add package Nethereum.AccountAbstraction.SimpleAccount  # only for the SimpleAccount reference account

The instant on-ramp predicts the counterfactual address and returns a ready-to-use NethereumSmartAccount — no deploy transaction needed, the account deploys itself on its first UserOperation:

csharp
using Microsoft.Extensions.DependencyInjection;
using Nethereum.AccountAbstraction.Client;
using Nethereum.AccountAbstraction.Configuration;
using Nethereum.Signer;

services.AddNethereumAccountAbstraction(o => o
    .UseWeb3(web3)
    .UseDeploymentAddresses(new AADeploymentAddresses(
        EntryPointAddress: EntryPointAddresses.Latest,
        NethereumAccountFactoryAddress: factoryAddress,
        EcdsaValidatorAddress: ecdsaValidatorAddress,
        VerifyingPaymasterAddress: ""))
    .UseBundlerUrl(bundlerUrl));

var aaClient = serviceProvider.GetRequiredService<IAAClient>();

var owner = EthECKey.GenerateKey();
var account = await aaClient.CreateAccountAsync(owner, salt: null);  // random salt if omitted

Console.WriteLine($"Counterfactual address: {account.Address}");
Console.WriteLine($"Is deployed: {account.IsDeployed}");

// Fund it, then drive any generated typed service through it — the first call deploys it
await web3.Eth.GetEtherTransferService()
    .TransferEtherAndWaitForReceiptAsync(account.Address, 0.1m);

myTokenService.UseAccountAbstraction(account, aaClient);
var receipt = await myTokenService.TransferRequestAndWaitForReceiptAsync(recipient, amount);

Attach to an Already-Deployed Account

csharp
// Modular NethereumAccount, with its ERC-7579 validator
var account = aaClient.GetAccount(accountAddress, signingService, validator);

// Plain non-modular account (e.g. SimpleAccount) — no validator
var account = aaClient.GetAccount(accountAddress, signingService);

// Shortcut for an already-deployed NethereumAccount's generated service:
var accountService = new NethereumAccountService(web3, accountAddress);

Lower-Level: NethereumAccountFactoryService Directly

IAAClient.CreateAccountAsync is built on this factory — reach for it directly when you need the raw counterfactual address/init-code without going through the client:

csharp
using Nethereum.AccountAbstraction.Contracts.Core.NethereumAccountFactory;
using Nethereum.AccountAbstraction.ERC7579.Modules;

var factory = new NethereumAccountFactoryService(web3, factoryAddress);
var initData = AccountInitDataBuilder.BuildEcdsa(ecdsaValidatorAddress, ownerAddress);
var salt = new byte[32]; // fill with your own CREATE2 salt

// Predict address without deploying
var address = await factory.GetAddressQueryAsync(salt, initData);
var isDeployed = await factory.IsDeployedQueryAsync(salt, initData);
var initCode = await factory.GetInitCodeQueryAsync(salt, initData);

Lazy Deployment via InitCode

Nothing extra to do: IAAClient.Configure/ChangeContractHandlerToAA check on-chain whether the account exists and attach the factory's InitCode to the first UserOperation automatically. On subsequent calls it's omitted. See Nethereum.AccountAbstraction's README for the low-level FactoryConfig walkthrough (SimpleAccount-family accounts).

SimpleAccount (non-modular reference account)

csharp
using Nethereum.AccountAbstraction.SimpleAccount.SimpleAccountFactory;
using Nethereum.AccountAbstraction.SimpleAccount.SimpleAccountFactory.ContractDefinition;

var factory = await SimpleAccountFactoryService.DeployContractAndGetServiceAsync(
    web3, new SimpleAccountFactoryDeployment { EntryPoint = entryPointAddress });

var accountAddress = await factory.GetAddressQueryAsync(ownerKey.GetPublicAddress(), salt: 0);

EntryPoint Deposits (NethereumAccount)

csharp
var deposit = await accountService.GetDepositQueryAsync();
await accountService.AddDepositAsync(Web3.Convert.ToWei(0.1m));
await accountService.WithdrawDepositToRequestAndWaitForReceiptAsync(withdrawAddress, amount);

EntryPoint Versions

Use EntryPointAddresses.Latest (V09) for new deployments. The account is bound to the EntryPoint version at deploy time.

Common Mistakes

  • Not funding the counterfactual address before the first UserOperation
  • Changing the salt between prediction and deployment (produces a different address)
  • Wrong factory address between prediction and deployment
  • Wrong EntryPoint — account is bound to one version
  • Mismatched validator — GetAccount(address, signingService, validator) must use the same validator the account was created/installed with, or signature validation fails

For full documentation, see: https://docs.nethereum.com/docs/account-abstraction/guide-smart-account-deployment

© Nethereum, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/nethereum-skills/skills/smart-account-deployment of Nethereum/Nethereum.

Open the folder on GitHubat commit 229f278

Compare with similar skills

Smart Account Deployment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Smart Account Deployment compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Smart Account Deployment this skillNethereum/Nethereum2.3k—~1.5kAutomated safety check: PassMIT
Akka.NET Management and DiscoveryAaronontheweb/dotnet-skills1.2k1 repos~2.5kAutomated safety check: PassMIT
Aspiremicrosoft/aspire.dev1964 repos~1.1kAutomated safety check: PassMIT
Migrate Dotnet9 To Dotnet10dotnet/skills5.6k2 repos~4.8kAutomated safety check: PassMIT
Foundationdb AspireSnowBankSDK/foundationdb-dotnet-client158—~3.4kAutomated safety check: PassBSD-3-Clause
Aspire Service DefaultsAaronontheweb/dotnet-skills1.2k1 repos~2.6kAutomated safety check: PassMIT

Similar skills

  • Akka.NET Management and Discovery

    Aaronontheweb/dotnet-skills

    Sets up Akka.Management and Cluster.Bootstrap so Akka.NET clusters form through service discovery on Kubernetes, Azure or config instead of static seed nodes.

    1.2k GitHub starsUsed in 1 repo~2.5k tokens
    DevOps & CloudAuto-check passed
  • Aspire

    microsoft/aspire.dev

    Official

    Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps.

    196 GitHub starsUsed in 4 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Official

    Migrate a .NET 9 project or solution to .NET 10 and resolve all breaking changes.

    5.6k GitHub starsUsed in 2 repos~4.8k tokens
    DevOps & CloudAuto-check passed
  • Foundationdb Aspire

    SnowBankSDK/foundationdb-dotnet-client

    How to run a FoundationDB cluster and connect to it from .NET — getting the IFdbDatabaseProvider that the keys/transactions/layers skills assume you already have.

    158 GitHub stars~3.4k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Aspire Service Defaults

    Aaronontheweb/dotnet-skills

    Sets up a shared ServiceDefaults project for .NET Aspire apps that centralizes OpenTelemetry, health checks, HTTP resilience and service discovery for every service.

    1.2k GitHub starsUsed in 1 repo~2.6k tokens
    DevOps & CloudAuto-check passed
  • Aspire

    managedcode/dotnet-skills

    Build, upgrade, and operate Aspire 13.5.x C or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for…

    486 GitHub stars~3.6k tokensUpdated today
    DevOps & CloudAuto-check passed

More from Nethereum/Nethereum

All 71 skills in this repo
  • Aa Batching Paymasters

    Nethereum/Nethereum

    Help users batch multiple calls into a single UserOperation and sponsor gas with paymasters using Nethereum Account Abstraction.

    2.3k GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Aa Bundler

    Nethereum/Nethereum

    Help users run an ERC-4337 bundler using Nethereum — set up in-process or standalone bundlers with mempool, validation, reputation, and JSON-RPC server.

    2.3k GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed
  • Abi Encoding

    Nethereum/Nethereum

    Encode and decode Ethereum ABI data with Nethereum. An agent skill from Nethereum/Nethereum.

    2.3k GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Abi Retrieval

    Nethereum/Nethereum

    Fetch contract ABIs from Sourcify, Etherscan, and 4Byte Directory using the composite ABIInfoStorage pattern (.NET/C).

    2.3k GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Account Abstraction

    Nethereum/Nethereum

    Help users implement ERC-4337 Account Abstraction with Nethereum — send UserOperations, use smart accounts, route contract calls through a bundler, enable gasless transactions, or work with AA in…

    2.3k GitHub stars~1.7k tokensUpdated 4 days ago
    Auto-check passed
  • Address Utils

    Nethereum/Nethereum

    Validate and format Ethereum addresses with Nethereum. An agent skill from Nethereum/Nethereum.

    2.3k GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed

Works with

Categories

Questions about Smart Account Deployment

What does Smart Account Deployment do?

Help users deploy ERC-4337 smart accounts using Nethereum — create a modular NethereumAccount via IAAClient, predict counterfactual addresses with CREATE2, deploy lazily via InitCode on the first…. Smart Account Deployment is an agent skill from Nethereum/Nethereum. Help users deploy ERC-4337 smart accounts using Nethereum — create a modular NethereumAccount via IAAClient, predict counterfactual addresses with CREATE2, deploy lazily via InitCode on the first UserOperation, manage EntryPoint deposits.

When should I use Smart Account Deployment?

Smart Account Deployment fits situations like: the user mentions deploying a smart account; creating a smart wallet; CREATE2 account address; counterfactual address.

How do I install Smart Account Deployment in Claude Code?

Run `npx skills add Nethereum/Nethereum --skill smart-account-deployment -a claude-code`. Or copy the skill folder (plugins/nethereum-skills/skills/smart-account-deployment in Nethereum/Nethereum) into .claude/skills/smart-account-deployment in your project. Claude Code loads it when a task matches its description.

How do I install Smart Account Deployment in Codex?

Run `npx skills add Nethereum/Nethereum --skill smart-account-deployment -a codex`. Or copy the skill folder (plugins/nethereum-skills/skills/smart-account-deployment in Nethereum/Nethereum) into .agents/skills/smart-account-deployment in your project. Codex loads it when a task matches its description.

Can I use Smart Account Deployment in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Nethereum/Nethereum --skill smart-account-deployment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/smart-account-deployment, .gemini/skills/smart-account-deployment, .github/skills/smart-account-deployment and .opencode/skills/smart-account-deployment in your project.

What does Smart Account Deployment need to run?

Going by SKILL.md and its folder, Smart Account Deployment needs the command-line tools its instructions call (dotnet).

Does Smart Account Deployment access the network?

SKILL.md names 1 domain. As links in the text: docs.nethereum.com. This is read from the text; nothing was executed.

Is Smart Account Deployment safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Smart Account Deployment use?

Smart Account Deployment is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Smart Account Deployment use?

About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Smart Account Deployment?

Skills that share tags, products or a category with Smart Account Deployment: Akka.NET Management and Discovery (Aaronontheweb/dotnet-skills, 1.2k stars), Aspire (microsoft/aspire.dev, 196 stars), Migrate Dotnet9 To Dotnet10 (dotnet/skills, 5.6k stars) and Foundationdb Aspire (SnowBankSDK/foundationdb-dotnet-client, 158 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Smart Account Deployment?

Nethereum (a GitHub organization) maintains it in Nethereum/Nethereum, which has 2,260 GitHub stars. The repository holds 71 skills in this directory. The repository was last updated on October 5, 2026.

Source: Nethereum/Nethereum on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.