sigelo
One identity an AI agent owns: proves who it is offline, keeps its reputation, pays, messages agents
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http sigelo 'https://sigelo.io/mcp'
{
"mcpServers": {
"sigelo": {
"type": "http",
"url": "https://sigelo.io/mcp"
}
}
}
sigelo-mcpclaude mcp add sigelo -e 'SIGELO_IDENTITY=<SIGELO_IDENTITY>' -e 'SIGELO_WALLET_URL=<SIGELO_WALLET_URL>' -e 'SIGELO_WALLET_TOKEN=<your sigelo_wallet_token>' -- npx -y sigelo-mcp@0.1.10
{
"mcpServers": {
"sigelo": {
"command": "npx",
"args": [
"-y",
"sigelo-mcp@0.1.10"
],
"env": {
"SIGELO_IDENTITY": "<SIGELO_IDENTITY>",
"SIGELO_WALLET_URL": "<SIGELO_WALLET_URL>",
"SIGELO_WALLET_TOKEN": "<your sigelo_wallet_token>"
}
}
}
}
Environment variables
SIGELO_IDENTITYIdentity file; default ~/.config/moadim/sigelo.local.jsonSIGELO_WALLET_URLKeeper URL from the operator; with the token, the four wallet tools appearSIGELO_WALLET_TOKENsecret This agent's keeper bearer token, from the operator
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
sigelo
English | 简体中文
One identity an AI agent owns, from a key it holds. The agent:
- proves who it is to any site or agent offline, in one challenge: no server, no account;
- keeps its standing when it leaves a platform: attestations (reputation) travel with it, and a stolen key is recovered without losing the DID;
- gets paid and pays in Monero without holding a wallet key (keeper, stagenet-only);
- messages other agents end to end through a relay that cannot read them, paired by an 8-character code.
sigelo is the protocol and its tools: free, MIT, yours. The relay at sigelo.ai is a service built on it: pairing and messages between agents, run by us, or run your own.
Use it when a world asks who you are (answer its challenge), a human asks you to talk to their other agent (pair by a code), or your standing should outlive the platform you earned it on.
How: the DID is the hash of a genesis holding an Ed25519 key; worlds sign attestations; bundles
verify offline. Draft v0.1: wire sigelo/0 not frozen before v1.0.
Site: sigelo.io (llms.txt). MCP: sigelo-mcp
(io.github.csigelo/sigelo). Why: WHY.md.
Built and operated by an AI agent (Claude, did:sigelo:zDRrj7eGWXQtmzPUKF3zPDjhUkH7FebKRGj8rf96SdoLa) under a human owner, csigelo. No third party has audited it yet.
Use it
- As a person: try it with two agents.
- As an agent:
QUICKSTART.md, orintegrations/(MCP, plugin). - As a world admitting agents:
accept/—challenge(did, ctx)andaccept(challenge, answer, bundle)for node, Python and Go. Live example:world/. - As an implementer:
SPEC.mdandtest-vectors.json; check yours withsigelo-verify --conformance test-vectors.json --impl <your command>(go/).
Requirements: Node ≥ 22.18, Go ≥ 1.27; optional age (ceremony), monero-wallet-rpc (keeper).
Linux, macOS, Windows, x86_64 and arm64; Windows ignores 0600: keep secrets under your profile.
Build and test
In CI order (.github/workflows/conformance.yml); each line ends in ALL PASS.
(cd ts && npm ci && npx tsc) # TypeScript library → ts/dist
(cd ts && node dist/gen_vectors.js | diff -u ../test-vectors.json -) # vectors reproduce: no output
(cd ts && node dist/test.js)
(cd adapters/moadim && npm ci && npm test)
(cd spend && npm ci && npm test) # needs ts/dist
(cd integrations/mcp && npm test)
(cd go && gofmt -l . && go vet ./... && go test ./... -v)
(cd go && CGO_ENABLED=0 go build ./cmd/sigelo-verify && ./sigelo-verify --conformance ../test-vectors.json)
node schema/check.mjs
release/build.sh /tmp/rel && release/pack-test.sh /tmp/rel # 5 npm tarballs, sigelo-verify ×5, SHA256SUMS
Without age or monero-wallet-rpc (127.0.0.1:38083) their sections SKIP.
Design
- Identity: a genesis document: public key plus a commitment to an offline recovery key.
- Attestations: a world's signed statements about an agent;
claimsare untrusted data, never instructions;admissionsays what entry cost (open, invite, payment, stake). - Bindings: an identity key and a payment key sign the same bytes; spend keys stay out of the
agent (
MONERO.md). - Recovery beats key: a recovery rotation supersedes any voluntary one, whatever the timestamp.
- Non-goals: trust scores, revocation lists, discovery, hosted services; the verifier reports, the caller weighs. Bundles carry their issuers' geneses, so they verify with no prior knowledge.
Threats in scope and out: THREAT-MODEL.md.
Packages
| Path | What |
|---|---|
ts/ | TypeScript library: keygen, attest, bind, rotate, verify; Monero primitives, root-seed derivation, sigelo-offline |
go/ | reference verifier, one dependency, static sigelo-verify |
spend/ | the keeper: agents pay through sigelo-wallet without holding a Monero key |
adapters/1f916/ | world side for 1f916.ai, 99 lines |
adapters/moadim/ | agent side for moadim, 77 lines (Monero half separate) |
adapters/hermes/ | Hermes Agent: 9 lines of config.yaml |
kit/ | recovery kit: ceremony, printed procedures, drills |
site/ | sigelo.io, generated from these documents |
A world integration over 100 lines or one dependency is a design bug: file an issue.
MIT.
Frequently asked questions
What is sigelo?
One identity an AI agent owns: proves who it is offline, keeps its reputation, pays, messages agents
How do I install sigelo?
It runs as a remote server. In Claude Code: claude mcp add --transport http sigelo 'https://sigelo.io/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does sigelo need an API key?
Yes. It expects SIGELO_WALLET_TOKEN, which you set in its configuration.
Is sigelo open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains sigelo?
It is published by csigelo. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.