Back to skill
Skillv1.0.0
ClawScan security
Agent Desapetc 999 · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
BenignApr 30, 2026, 9:18 AM
- Verdict
- benign
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- The skill's code, instructions, and requested environment are consistent with its stated purpose (creating and linking DIDs on Billions Network); main security item to note is that private keys are stored on disk and are plain by default unless you set the optional master KMS env var.
- Guidance
- This skill appears to be what it claims: a Billions Network DID management toolkit for agents. Before installing or running it, consider the following: - Private keys are persisted to $HOME/.openclaw/billions (kms.json). By default keys are stored as raw hex unless you set the optional BILLIONS_NETWORK_MASTER_KMS_KEY — set this environment variable in your skill config or process environment to enable AES-256-GCM encryption of keys. - Treat the master KMS key like any high-value secret: keep it out of logs, backups that are not secure, and do not share it. If lost, encrypted keys cannot be recovered. - The scripts will run npm install (downloads packages from npm). Review package-lock.json if you need to audit transitive dependencies or prefer pinning/locking to an internal registry. - The tool will make network calls to project-specific domains (rpc-mainnet.billions.network, resolver.privado.id, identity-dashboard.billions.network, attestation-relay.billions.network). Only proceed if you trust Billions Network and those endpoints. - Do not paste private keys onto untrusted consoles. The CLI accepts --key to import a private key; be careful when doing this on shared systems. - If you want stricter isolation, run the scripts in a controlled environment (dedicated machine/container) and verify the skill bundle contents before executing. If you accept these trade-offs (especially configuring the master KMS key or otherwise protecting the kms.json file), the skill is internally coherent and appropriate for its stated purpose.
Review Dimensions
- Purpose & Capability
- okName/description (Billions decentralized identity, DID linking and signing) align with the included Node scripts, dependencies, and required binary (node). The optional environment variable BILLIONS_NETWORK_MASTER_KMS_KEY is relevant to key storage encryption and matches the claimed KMS functionality. No unrelated credentials, binaries, or config paths are requested.
- Instruction Scope
- noteSKILL.md instructs running npm install and node scripts in the provided scripts/ directory — this matches the bundled code. The runtime actions are within identity management scope (create identities, sign challenges, call resolvers/shortener/rpc endpoints). The scripts read only the optional KMS env var and write/read files under $HOME/.openclaw/billions as documented. Important operational guardrail: the skill stores private keys locally and will store them in plaintext unless the optional master key env var is set (this behavior is documented in README and code).
- Install Mechanism
- okThere is no platform-level install spec; SKILL.md tells the user to run npm install inside scripts/ which will fetch packages from npm. A package-lock.json is included listing well-known packages (ethers, @0xpolygonid/js-sdk, @iden3 libs). Using npm is proportionate for a Node-based identity toolkit; it carries the usual supply-chain considerations but is expected here.
- Credentials
- concernThe only declared optional env var (BILLIONS_NETWORK_MASTER_KMS_KEY) is directly relevant (used to AES-256-GCM-encrypt keys). However by default (when the env var is not set) the system stores private keys as raw hex in $HOME/.openclaw/billions/kms.json. That default plaintext storage is a security risk if users do not set the master key or otherwise protect the directory. No unrelated credentials are requested.
- Persistence & Privilege
- okThe skill does persist state on disk under $HOME/.openclaw/billions (identities, kms.json, challenges.json) which is expected for an identity manager. always is false and the skill does not request system-level or other-skills configuration changes. It does perform network calls to project-related domains (rpc-mainnet.billions.network, resolver.privado.id, identity-dashboard.billions.network, attestation-relay.billions.network) which are consistent with the stated purpose.
