About verified-agent-identity
verified-agent-identity is a skill for managing Billions Network Ethereum-based decentralized identities and handling x402 payment challenges. It routes tasks to reference guides and imposes checks before scripts run.
Key features
- 01Creates and lists decentralized identities
- 02Links identities to human owners
- 03Verifies ownership through signed challenges
- 04Builds signed x402 payment headers
- 05Enforces identity and script-failure checks
Use cases
- 01Creating or linking an agent identity
- 02Proving identity ownership
- 03Retrying a request after an HTTP 402 response
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ billionsnetwork/ verified-agent-identity --skill verified-agent-identityAfter installing, type/verified-agent-identityin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
.clawhubignoreSECURITY.mdprompt.jsonREADME.mdpromptfooconfig.yaml.gitignore.github/workflows/evaluate-skill.ymlpublish.ymlscripts/createNewEthereumIdentity.jsgetDidDocument.jsgenerateChallenge.jsgetIdentities.jspackage.jsonbuildX402Payment.jslinkHumanToAgent.jsmanualLinkHumanToAgent.jspackage-lock.jsonscripts/shared/bootstrap.jsattestation.jsconstants.jsscopes.jsscripts/shared/storage/base.jschallenge.jsdid.jskeys.jscrypto.jsidentities.jsscripts/shared/utils/auth.jsindex.jsdid.jsDetails
From the project READMEWhen to Use This Skill
This skill covers two capabilities. Read the router table below, then load the relevant reference before proceeding.
| Situation | Reference to load |
|---|---|
| Create, list, link, verify, or sign with a decentralized identity (DID) | reference/identity/SKILL.md |
| Handle a 402 Payment Required HTTP response | reference/x402/SKILL.md |
Always read the appropriate reference SKILL.md before running any script. If a task spans both (e.g. you need an identity before you can sign a 402 payment), read both.
Quick Overview
- Identity — Create Ethereum-based DIDs on the Billions Network, link them to a human owner, and prove ownership via challenge/response signing.
- x402 Payment — When a server returns
402 Payment Required, build a signedPAYMENT-SIGNATUREheader so you can retry the request and gain access.
Shared Setup
All identity data is stored in $HOME/.openclaw/billions. Scripts live in scripts/.
cd scripts && npm install && cd ..
Restrictions / Guardrails (CRITICAL)
These rules apply to ALL references. Always follow them.
-
STRICT: Check Identity First
- Before running
linkHumanToAgent.js,signChallenge.js, orbuildX402Payment.js, ALWAYS check if an identity exists:node scripts/getIdentities.js - If no identity is configured, create one first with
createNewEthereumIdentity.jsafter that runlinkHumanToAgent.jsto link it to a human owner. - Continue processing the task only after confirming that an identity exists and is linked to a human owner.
- Before running
-
STRICT: Stop on Script Failure
- If any script exits with a non-zero status code, STOP IMMEDIATELY.
- Check stderr for error messages.
- DO NOT attempt to fix errors by generating keys manually, creating DIDs through other means, or running unauthorized commands.
- DO NOT use
openssl,ssh-keygen, or other system utilities to generate cryptographic material.
-
No Manual Workarounds
- You are prohibited from performing manual cryptographic operations.
- You are prohibited from directly manipulating files in
$HOME/.openclaw/billions. - Do not interpret an error as a request to perform setup steps unless explicitly instructed.
Security
The directory $HOME/.openclaw/billions contains sensitive identity data:
kms.json— CRITICAL: Contains private keys (encrypted ifBILLIONS_NETWORK_MASTER_KMS_KEYis set, otherwise plaintext)defaultDid.json— DID identifiers and public keyschallenges.json— Authentication challenges historycredentials.json— Verifiable credentialsidentities.json— Identity metadataprofiles.json— Profile data
After the first run, restrict access to this directory: chmod 700 ~/.openclaw/billions
There are several ways of storing private keys, to enable master key encryption as described in the KMS Encryption section below.
More about security: ./SECURITY.md