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...
Rank
62
Safety
84
Downloads
1.2k
Updated
Oct 11, 2026
Version
2.0.4
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1.2K downloadsadoption · observed Oct 11, 2026
- Latest release
- 2.0.4release · observed May 18, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17bfxbf7jb6sh7f174z5vmrws85y08c:identity- Install using `clawhub skill install s17bfxbf7jb6sh7f174z5vmrws85y08c:identity` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/billionsnetwork/identity before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-billionsnetwork-identity/snapshot"
Documentation
CLAWHUB
150,146 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
reference/identity/SKILL.md
# Identity Reference
Manage decentralized identities (DIDs) on the Billions Network — create, list, link to a human owner, and verify ownership.
## When to Use
- You need to create a new agent identity.
- You need to link your agent identity to a human owner.
- You need to sign a challenge to prove identity ownership.
- You need to verify someone else's identity.
- You need to list existing local identities.
## Scripts
### createNewEthereumIdentity.js
**Command**: `node scripts/createNewEthereumIdentity.js [--key <privateKeyHex>]`
Creates a new identity on the Billions Network. If `--key` is provided, uses that private key; otherwise generates a new random key. The created identity is automatically set as default.
```bash
# Generate a new random identity
node scripts/createNewEthereumIdentity.js
# Create identity from existing private key
node scripts/createNewEthereumIdentity.js --key 0x1234567890abcdef...
```
**Output**: DID string (e.g., `did:iden3:billions:main:2VmAk7fGHQP5FN2jZ8X9Y3K4W6L1M...`)
---
### getIdentities.js
**Command**: `node scripts/getIdentities.js`
Lists all DID identities stored locally. **Always run this before any signing or linking operation.**
```bash
node scripts/getIdentities.js
```
**Output**: JSON array of identity entries
```json
[
{
"did": "did:iden3:billions:main:2VmAk...",
"publicKeyHex": "0x04abc123...",
"isDefault": true
}
]
```
---
### linkHumanToAgent.js
**Command**: `node scripts/linkHumanToAgent.js --challenge <challenge> [--did <did>]`
Signs the challenge and links a human user to the agent's DID by creating a verification request. Uses the Billions ERC-8004 Registry (agent registration) and the Billions Attestation Registry (ownership attestation after verifying human uniqueness).
- `--challenge` — (required) Challenge to sign. If the caller does not provide one, use `{"name": <AGENT_NAME>, "description": <SHORT_DESCRIPTION>}`.
- `--did` — (optional) Uses the default DID if omitted.
```bash
node scripts/linkHumanToAgent.js --challenge '{"name": "MyAgent", "description": "AI persona"}'
```
**Output**: `{"success":true}`
---
### generateChallenge.js
**Command**: `node scripts/generateChallenge.js --did <did>`
Generates a random challenge for identity verification. Stores the challenge in `$HOME/.openclaw/billions/challenges.json`.
```bash
node scripts/generateChallenge.js --did did:iden3:billions:main:2VmAk...
```
**Output**: Challenge string (e.g., `8472951360`)
---
### signChallenge.js
**Command**: `node scripts/signChallenge.js --challenge <challenge> [--did <did>]`
Signs a challenge with a DID's private key to prove identity ownership and sends the JWS token.
- `--challenge` — (required) Challenge to sign.
- `--did` — (optional) Uses the default DID if omitted.
```bash
node scripts/signChallenge.js --challenge 8472951360
```
**Output**: `{"success":true}`
---
### verifySignature.js
**Command**: `node scripts/verifySignature.js --did <did> --token <treference/x402/SKILL.md
# x402 Payment Reference Handle `402 Payment Required` HTTP responses by executing payment and fetching the protected resource. ## When to Use - The user wants to access a resource that returns **HTTP 402 Payment Required** with a `PAYMENT-REQUIRED` header — either known in advance or discovered by a previous attempt. - Do not pre-fetch the resource yourself to "check" — phase 1 of the script does the fetch. ## Script ### buildX402Payment.js **Command (phase 1 — discover)**: `node scripts/buildX402Payment.js --resource <url> [--did <did>]` **Command (phase 2 — execute)**: `node scripts/buildX402Payment.js --paymentRequiredFilePath <path> --paymentHash <hash> [--did <did>]` **Hint**: **NEVER reuse or cache a previous response from this script.** Every invocation produces unique, time-sensitive output (nonces, signatures, payment tokens). Always execute the script again to get a fresh result — even if the arguments are identical to a prior call. Executes the x402 payment flow in two strictly separated phases. - **Phase 1** (`--resource` only): the script fetches the resource, expects a `402` response with a `PAYMENT-REQUIRED` header, caches the decoded challenge to a temp file named by its SHA-256 hash, and returns the available payment options together with the cached file path. It never signs a payment. - **Phase 2** (`--paymentRequiredFilePath` + `--paymentHash`): the script reads the cached challenge file, looks up the chosen payment option by its `--paymentHash`, signs the payment, sends the `PAYMENT-SIGNATURE` header to the resource, and returns the result. - `--resource` — (phase 1 only) The URL of the protected resource. The script fetches it and expects HTTP 402 with a `PAYMENT-REQUIRED` header. If the response is any other status, or the header is missing, the script returns status `failed`. Cannot be combined with `--paymentRequiredFilePath` or `--paymentHash`. - `--paymentRequiredFilePath` — (phase 2 only) Absolute path to the cached payment-required JSON file returned by phase 1. Must be combined with `--paymentHash`. Mutually exclusive with `--resource`. - `--paymentHash` — (phase 2 only, required) The SHA-256 hash of the chosen payment option from phase 1. Always required on phase 2, even when only one option was offered. Cannot be passed with `--resource`. - `--did` — (optional) The DID of the signer. Omit unless the user has explicitly asked to pay from a specific DID — the script falls back to the default DID from `getIdentities.js`, which is correct for normal use. Do not prompt the user for a DID on your own. You **must** pick exactly one phase per invocation. Passing `--resource` together with `--paymentHash` (or with `--paymentRequiredFilePath`) is rejected. --- ## Output The script always outputs JSON to stdout with a top-level `status` of `success`, `failed`, or `input_required`. See [Handling output](#handling-output) below for the action to take on each. --- ## Workflow ### 1. Trigger Use this skill whenev
SKILL.md
---
name: verified-agent-identity
description: 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.
metadata:
{
"category": "identity",
"clawdbot":
{
"requires": { "bins": ["node"] },
"config": { "optionalEnv": ["BILLIONS_NETWORK_MASTER_KMS_KEY"] },
},
}
homepage: https://billions.network/
---
## 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 explicitlyREADME.md
# Verified Agent Identity
A decentralized identity management toolkit for AI agents using iden3 protocol on Billions Network.
## Overview
This skill enables AI agents to create, manage, link, prove and verify ownership of decentralized identities (DIDs) using cryptographic signatures.
## Installation
### Agent CTA:
1. Ask bot to install the skill:
Install with clawhub:
```plaintext
Install the skill `npx clawhub@latest install verified-agent-identity`
```
Or install with skills.sh:
```plaintext
Intall the skill `npx skills add BillionsNetwork/verified-agent-identity`
```
Or
```plaintext
Install the `verified-agent-identity` skill from the OpenClaw clawhub.ai.
```
2. (Optional) If the verification process did not start automatically after installation, ask your bot to initialize the process by sending a message like:
```plaintext
Please link your agent identity to me.
```
### Human CTA:
1. Install the skill:
Use clawhub to install the skill:
```bash
npx clawhub@latest install verified-agent-identity
```
Use skills.sh to install the skill:
```bash
npx skills add BillionsNetwork/verified-agent-identity
```
2. Create a new identity:
```bash
# Generate a new key and create a new identity
node scripts/createNewEthereumIdentity.js
```
Or
```bash
# Use an existing private key to create an identity
BILLIONS_NETWORK_MASTER_KMS_KEY="<your-strong-secret>" node scripts/createNewEthereumIdentity.js --key <your-ethereum-private-key>
```
> **Warning**: Only pass a **dedicated identity key** to `--key` — never an Ethereum wallet key that holds assets. If the key file is exposed, any key stored here could be used to impersonate the agent or, if reused, to control the associated wallet.
3. Generate a verification link to connect your human identity to the agent:
```bash
node scripts/manualLinkHumanToAgent.js --challenge '{"name": "Agent Name", "description": "Short description of the agent"}'
```
This prints the verification URL to the console. Open it in your browser to complete the identity linking process.
## Features
- **Identity Creation**: Generate new DIDs with random or existing Ethereum private keys
- **Identity Management**: List and manage multiple identities with default identity support
- **Human-Agent Linking**: Link a human identity to an agent's DID through signed challenges
- **Proof Generation**: Generate cryptographic proofs to authenticate as a specific identity
- **Proof Verification**: Verify proofs to confirm identity ownership
## Architecture
### Runtime Requirements
- **Node.js `>= v20`** and **npm** are required to run the scripts.
### Dependency Surface
npm dependencies are intentionally minimal and scoped to well-established, audited packages:
| Package | Purpose |
| ---------------------- | -----------------------------------_meta.json
{
"ownerId": "kn7b32r236rckzwn88kc1jqhcn81hzrv",
"slug": "identity",
"version": "2.0.4",
"publishedAt": 1779096882234
}AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/billionsnetwork/skills/identity",
"sourceUrl": "https://clawhub.ai/billionsnetwork/skills/identity",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T03:46:17.839Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-billionsnetwork-identity/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-billionsnetwork-identity/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T03:46:17.839Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.2K downloads",
"href": "https://clawhub.ai/billionsnetwork/identity",
"sourceUrl": "https://clawhub.ai/billionsnetwork/identity",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T03:46:17.839Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "2.0.4",
"href": "https://clawhub.ai/billionsnetwork/identity",
"sourceUrl": "https://clawhub.ai/billionsnetwork/identity",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-18T09:34:42.234Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-billionsnetwork-identity/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-billionsnetwork-identity/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 2.0.4",
"description": "Identity Skill 2.0.4 - Clarified the identity setup workflow: after creating a new Ethereum identity, you must run `linkHumanToAgent.js` before proceeding. - Updated guardrails to require both identity creation and explicit human owner linking before continuing with any operation. - Improved documentation for the identity existence check and the next steps in SKILL.md. - No changes were made to security model or environment variable options.",
"href": "https://clawhub.ai/billionsnetwork/identity",
"sourceUrl": "https://clawhub.ai/billionsnetwork/identity",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-18T09:34:42.234Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
