
Verified Agent Identity
Link AI agents to verified human identities and handle decentralized authentication via DIDs and payment proof signatures.
Install
npx skills add https://github.com/billionsnetwork/verified-agent-identity --skill verified-agent-identityWhat is this skill?
- Ethereum-based DIDs with Know Your Agent (KYA) verification
- Challenge/response signing for agent ownership proof
- Handle 402 Payment Required responses with cryptographic signatures
Adoption & trust: 8.1k installs on skills.sh; 754 GitHub stars; 0/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Journey fit
This tool is essential during the build phase when agents need secure identity verification and payment authorization mechanisms to operate in production systems. Backend implementation is required to integrate decentralized identity (DID) creation, verification, and payment authorization into agent infrastructure.
Common Questions / FAQ
Is Verified Agent Identity safe to install?
skills.sh reports 0 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Verified Agent Identity
## 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 signed `PAYMENT-SIGNATURE` header so you can retry the request and gain access. ## Shared Setup All identity data is stored in `$HOME/.openclaw/billions`. Scripts live in `scripts/`. ```bash cd scripts && npm install && cd .. ``` ## Restrictions / Guardrails (CRITICAL) **These rules apply to ALL references. Always follow them.** 1. **STRICT: Check Identity First** - Before running `linkHumanToAgent.js`, `signChallenge.js`, or `buildX402Payment.js`, **ALWAYS** check if an identity exists: `node scripts/getIdentities.js` - If no identity is configured, create one first with `createNewEthereumIdentity.js` after that run `linkHumanToAgent.js` to link it to a human owner. - Continue processing the task only after confirming that an identity exists and is linked to a human owner. 2. **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. 3. **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 if `BILLIONS_NETWORK_MASTER_KMS_KEY` is set, otherwise plaintext) - `defaultDid.json` — DID identifiers and public keys - `challenges.json` — Authentication challenges history - `credentials.json` — Verifiable credentials - `identities.json` — Identity metadata - `profiles.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` prompt.json promptfooconfig.yaml .github/ name: Evaluate Skill on: push: branches: [main, develop] pull_request: branches: [main, develop] workflow_dispatch: jobs: evaluate: runs-on: ubuntu-latest env: GOOGLE_API_KEY: ${{ secrets.GEMINI_API_KEY }}