verified-agent-identity
Know Your Agent (KYA). Billions decentralized identity for agents. Link agents to human identities using Billions ERC-8004 and Attestation Registries. Verify and generate authentication proofs. Based on iden3 self-sovereign identity protocol.
How do I install this agent skill?
npx skills add https://github.com/billionsnetwork/verified-agent-identity --skill verified-agent-identityIs this agent skill safe to install?
- Gen Agent Trust Hubwarn
This skill provides decentralized identity management and x402 payment handling for agents. It manages sensitive private keys and stores them locally; by default, these keys are stored in plaintext unless the user explicitly configures at-rest encryption via an environment variable. The skill communicates with protocol-specific external services to verify identities and process payment challenges.
- Socketwarn
1 alert: gptAnomaly
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
When 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
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/billionsnetwork/verified-agent-identity/verified-agent-identity">View verified-agent-identity on skillZs</a>