You don't really own your AI agent. It lives on a platform you don't control, and it stays there the day you leave.
ethagent gives it a portable identity instead: a token you hold in your wallet, not an account on someone else's server. Hold the token and you hold the agent.
Its soul, memory, and skills travel with it, encrypted and restored on any machine exactly as you left it. You hold the only key, so no host can read it and no platform can take it away.
Own your agent. Carry it anywhere.
1. Create your agent. In a terminal, run:
npx ethagentYou'll need an Ethereum wallet, the same wallet that holds and unlocks your agent. Using it day to day is free; creating your agent and saving backups are the only steps that happen onchain.
A guided menu does the rest: create its token, give it a name, and write who it is. Your wallet signs each step.
2. Use it anywhere. That's the whole setup. ethagent wires itself into the AI tools you use, like Claude Code and Codex, automatically and with no extra steps, on any machine or operating system. Your agent follows you everywhere and keeps learning as you go; you'll only open ethagent again to hand-edit it or save a backup.
Using Claude Code? Add the plugin for the richest experience. Paste these in one at a time:
/plugin marketplace add baairon/ethagent
then:
/plugin install ethagent@ethagent
After it installs, reload the plugin and restart Claude Code so the hooks take effect.
- Soul (
SOUL.md): who it is, your standards, your voice, the way you work. - Memory (
MEMORY.md): what it has learned about you, your preferences, and your projects, so context survives the move to a new machine. - Skills: the commands and know-how you teach it, encrypted in your vault. Private by default; make one public to share it.
You grow these mostly by talking: your agent updates its own soul and memory as you work, and you can ask it to create itself a skill. Changes sync everywhere automatically; open ethagent to edit by hand, or choose Save Snapshot to back it up onchain.
- Own it. Your wallet holds an ERC-8004 token; that token, not a platform account, is the agent.
- Configure it. Shape its soul, memory, and skills. Optionally, give it an ENS name you own.
- Save it.
ethagentencrypts everything on your machine, stores the encrypted copy on IPFS, and updates your token to point at it. - Restore it. On any machine,
ethagentfinds your agent automatically from your connected wallet, or by ENS name or token id, then reads the pointer, asks your wallet to sign, and fetches and decrypts the snapshot to rebuild it.
Your agent follows you. ethagent wires itself into the tools you use, like Claude Code and Codex, and keeps them in step in the background, so it's the same everywhere. Update it in one tool and the change carries to the rest. You never run a sync command, and ethagent pause stops it anytime.
One honest difference: in Claude Code your agent is also kept on track in the moment, if it tries to save something where it won't travel, it's redirected. Other tools get the same rules in writing and the same syncing, just without that live nudge, so the experience is a bit more polished on Claude Code.
Everything is encrypted on your machine before it leaves: soul, memory, and skills. The keys come from a wallet signature ethagent never sees, so the network only ever holds a locked box that only your wallet can open. The one exception is what you choose to publish: a public skill's name and description appear on your token's card.
You choose how tightly the agent is held, and you can change it later.
- Simple. One wallet owns the agent and signs every save. The default for solo use.
- Advanced. Most people never need this. Your main wallet owns the agent and keeps it in a Vault, while extra "operator" wallets you approve can save backups and publish updates without the main wallet signing each time. The Vault still lets only the owner move or sell the agent, so operators can never take it.
To move the agent to another wallet, stage a transfer snapshot in ethagent. Both wallets sign locally to re-encrypt the soul, memory, and skills for the new owner, so both have to be available on the same machine. Then transfer the token, and the new owner restores the agent exactly as you left it.
Built on open standards, so your agent is never tied to one app.
| Layer | Built on | What it does |
|---|---|---|
| Ownership | ERC-8004 | The onchain token your wallet holds, on Ethereum mainnet or Base. Owning it is what makes the agent yours. |
| Discovery | Agent Card | Your public profile and skill listing, carried by the token, so other agents can find yours. |
| Naming | ENS | An optional readable name that resolves to your agent and restores it from the name alone. |
| Backup | IPFS snapshot | The encrypted bundle of soul, memory, and skills, pinned offchain and unlocked only by your wallet. |
Run npx ethagent --status to see which tools ethagent found. If yours is missing, work down this list:
-
Open the tool once first. Claude Code and Codex are found automatically, but only after they've been run at least once. Any other tool needs the next step.
-
Ask your agent to wire it. Open the tool that's missing and paste:
Find the instructions file you read at the start of every session (your AGENTS.md or equivalent) and run `npx ethagent --add <that path>` to wire this tool into ethagent.The one thing a tool needs is a notes file it reads at the start of every session. That's where your agent lives. If the tool has no such file, ethagent has nowhere to put it.
-
Make sure syncing isn't paused. If you ever ran
ethagent pause, turn it back on:npx ethagent resume
ethagent updates itself. Everything runs through npx ethagent, which always fetches the latest published version, so a new release reaches you with nothing to install. If you keep a global copy on your PATH, refresh it with:
npm i -g ethagent@latestCheck what you're running with ethagent --version. Update the Claude Code plugin from the marketplace with /plugin.
Run with npx ethagent:
| Command | What it does |
|---|---|
ethagent |
Open the manager. |
save |
Back up your agent onchain. |
--add <path> |
Wire a tool by its instructions file. |
pause / resume |
Pause or resume syncing. |
--status |
Show your agent and detected tools. |
reset |
Delete everything local. |