Init Profile

From Kohaku CLI Wiki — Fund index 0 and publish your public name + stealth inbox

Next we set up your wallet profile — a public name + stealth inbox on HD account index 0.

# Fund index 0

init-profile needs a little ETH on index 0 (gas + name registration). The first run of next-fresh-address should return you that account:

kohaku next-fresh-address

Send ETH to the printed address, then confirm:

kohaku balances --verbose

You should see index 0 with an ETH balance. Ideally, later funds you intend to hold and shield should go to new fresh addresses — not this one. See Receive Funds.

# Run init-profile

To interactively select a name for your profile just run:

kohaku init-profile

You will be prompted for wallet / password (if needed), then whether to choose a name (.eth / .gwei / .wei) or continue with stealth keys only. Dry-run first (no --broadcast), review the prepared txs, then re-run with --broadcast when ready:

kohaku init-profile --broadcast

You can still pass flags to skip prompts:

kohaku init-profile --name your-profile-name.gwei
kohaku init-profile --name your-profile-name.gwei --broadcast

With a name: commit → wait ~60s → one UserOp registers the name, sets records, and publishes stealth keys on ERC-6538. With --no-name (or the interactive “no name” path): a single EOA registerKeys transaction.

Check anytime with:

kohaku see-stealth-meta-address

balances will also show the profile name when reverse resolution works for index 0.

# What a profile is

Your profile is the public face of an otherwise private wallet:

  • Index 0 — long-lived identity account that owns the name and stealth keys
  • A name — e.g. something.gwei (or .eth / .wei); technically optional, but recommended
  • Stealth keys on ERC-6538 — others can pay you to fresh one-time addresses; you discover them with balances

It is fine if the name doxxes “who you are” socially. What matters is keeping later activity off index 0. Treat that account as inbox / front door — not where you shield, unshield, swap, or hop funds. Receives and private DeFi can stay delinked even while you advertise the name and stealth meta-address.

# Using an existing name

If you already own a .eth / .gwei / .wei name elsewhere:

  1. Transfer ownership to your kohaku index-0 address (for ENS, transfer manager too if needed)
  2. Run init-profile --name … --broadcast with that name — the CLI reuses it instead of registering a new one

# Other options

# ENS (bare label needs --protocol, or pick protocol interactively)
kohaku init-profile --name alice --protocol ens --broadcast

# stealth keys only, no name
kohaku init-profile --no-name --broadcast

In interactive mode, --name / --no-name are optional (the CLI prompts). With --non-interactive, provide exactly one of --name or --no-name.

# Discipline after setup

  • Do advertise the name / stealth meta-address as your inbox
  • Do receive via stealth / fresh addresses, then shield
  • Don’t route Tornado / Privacy Pools exits, dapp sessions, or consolidation through index 0
  • Don’t mix “known public face” txs with addresses you meant to keep unlinked — see Keeping activity delinked

Next: Receive Funds on fresh addresses for money you intend to shield.