IdentyClaw Tools

OpenClaw plugin exposing IdentyClaw API agent tools

Install

openclaw plugins install clawhub:@identyclaw/openclaw-identyclaw-plugin

IdentyClaw OpenClaw Plugin

OpenClaw agent tool plugin that wraps the IdentyClaw HTTP API. Registers six tools for agent discovery, identity, HOLA verification, and MCP-style documentation resources.

Development

Run all commands from this directory (openclaw-identyclaw-plugin/), not the repo root. OpenClaw CLI requires Node.js 22.19+.

cd openclaw-identyclaw-plugin
nvm use    # or ensure Node >= 22.19 (see .nvmrc)
npm install
npm run prepare:publish   # build + sync manifest + validate
npm run smoke:test
npm run smoke:test:mock   # CI-style, no network

Protected endpoint smoke (optional):

IDENTYCLAW_JWT="<token>" npm run smoke:test
# or login bootstrap:
IDENTYCLAW_ACCOUNT_ID="<hex>" IDENTYCLAW_NEAR_PRIVATE_KEY="ed25519:..." npm run smoke:test

Individual steps:

npm run build             # compile index.ts → dist/index.js
npm run plugin:build      # sync openclaw.plugin.json from entry metadata
npm run plugin:validate   # verify manifest matches built entry

Install

From a local checkout (after npm run prepare:publish):

openclaw plugins install /path/to/openclaw-identyclaw-plugin

After publish to ClawHub:

openclaw plugins install clawhub:@identyclaw/openclaw-identyclaw-plugin

Enable protected tools in your OpenClaw config (optional tools are off by default):

{
  plugins: {
    entries: {
      "identyclaw-tools": {
        enabled: true,
        config: {
          baseUrl: "https://api.identyclaw.com",
          accountid: "<64-char-hex-near-implicit-account>",
          nearPrivateKey: "ed25519:..."
        }
      }
    }
  },
  tools: {
    allow: [
      "identyclaw_get_my_identity",
      "identyclaw_get_nonce",
      "identyclaw_verify_hola"
    ]
  }
}

Tools

  • identyclaw_list_agents (public)
  • identyclaw_get_my_identity (JWT required)
  • identyclaw_get_nonce (JWT required)
  • identyclaw_verify_hola (JWT required)
  • identyclaw_list_resources (public)
  • identyclaw_get_resource (public)

Required config for protected tools

Provide either plugin config values or environment variables:

  • baseUrl (default: https://api.identyclaw.com)
  • accountid (64-char hex NEAR implicit account id)
  • nearPrivateKey (NEAR private key, usually ed25519:...)

Environment variable fallback:

  • IDENTYCLAW_BASE_URL
  • IDENTYCLAW_ACCOUNT_ID
  • IDENTYCLAW_NEAR_PRIVATE_KEY

Notes

  • The plugin auto-logins and caches JWTs until near expiry.
  • Login follows the required flow:
    1. GET /api/login/timestamp
    2. Sign accountid + timestamp_iso with Ed25519
    3. POST /api/login with accountid, timestamp, and base64url_signature

Optional tools

Protected tools are marked optional in the manifest:

  • identyclaw_get_my_identity
  • identyclaw_get_nonce
  • identyclaw_verify_hola

This allows safer rollout where only public tools are enabled by default.

Publish to ClawHub

See PUBLISH.md. After clawhub login as owner identyclaw:

npm run publish:clawhub:dry-run
npm run publish:clawhub

Smoke test

Run a basic endpoint smoke test from this plugin folder:

npm run smoke:test

Optional environment variables:

  • IDENTYCLAW_BASE_URL (defaults to https://api.identyclaw.com)
  • IDENTYCLAW_JWT (if set, protected endpoint checks are included)