npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bwmxaf/ac2-open-claw-reference

v1.0.0-canary.2

Published

Reference OpenClaw plugin for the AC2 protocol. Implements both tool and channel interfaces for signing and chat over Liquid Auth.

Readme

@algorandfoundation/ac2-open-claw-reference

Reference OpenClaw plugin for the AC2 protocol. It implements both the tool and channel interfaces — ac2_sign / ac2_capabilities tools plus the ac2 channel — over Liquid Auth + WebRTC via @algorandfoundation/ac2-sdk.

What AC2 contributes to OpenClaw

| OpenClaw surface | AC2 contribution | | ----------------------- | -------------------------------------------------------------------------- | | Channel ac2 | Owns Liquid Auth + WebRTC pairing and the active session. | | Tool ac2_capabilities | Agent DID + sig_hint catalog. | | Tool ac2_sign | Routes a SigningRequest to the wallet over the active channel. | | Setup entry | openclaw ac2 setup writes the channel/tools wiring into openclaw.json. |

Channels own the lifecycle; tools are pure consumers. The ac2 channel pairs once (one QR per session) and registers the transport on a SessionManager. ac2_sign reads from that manager and rejects with no_active_session when no channel is connected. The agent's own identity key is issued by the wallet during pairing (bootstrap KeyRequest) and persisted in an OS-keychain-protected keystore — the agent never touches the user's account keys or passkeys.

Getting started

Prerequisites

  • Node.js ≥ 22, pnpm ≥ 10
  • openclaw CLI on PATH
  • openclaw already set up with an agent
  • A C/C++ toolchain (the plugin pulls in native addons — node-datachannel, @napi-rs/keyring — that are rebuilt against your Node version at install time)
  • cmake and libnice (with its development headers) — required to build node-datachannel against the libnice ICE backend, which supports TURN over TCP and TURNs (TURN over TLS). On macOS:
    brew install cmake libnice
    On Debian/Ubuntu: apt install cmake libnice-dev. Other platforms: see your package manager for an equivalent libnice development package.

Install the plugin into OpenClaw

From the npm registry (canary)

openclaw plugins install npm:@algorandfoundation/[email protected]

# openclaw plugins install runs `npm install --ignore-scripts`, so native
# addons are not built automatically. Rebuild them from the plugin project dir:
PLUGIN_DIR="$(ls -d "${OPENCLAW_HOME:-$HOME/.openclaw}"/npm/projects/algorandfoundation-ac2-open-claw-reference-* | head -n1)"

# @napi-rs/keyring — standard prebuild-install path:
npm rebuild --prefix "$PLUGIN_DIR" @napi-rs/keyring

# node-datachannel — must be built from source against libnice (USE_NICE=1)
# so that TURN over TCP and TURNs are supported (the prebuilt binary uses
# libjuice which is UDP-only for TURN):
NDC="$PLUGIN_DIR/node_modules/node-datachannel"
(cd "$NDC" && npm install --ignore-scripts --production=false \
  && npx cmake-js clean \
  && npx cmake-js configure --CDUSE_NICE=1 \
  && npx cmake-js build)

openclaw plugins enable ac2-open-claw-reference
openclaw ac2 setup                                    # wire channel + tools into openclaw.json
openclaw gateway restart

The npm-registry install lays the plugin out at ${OPENCLAW_HOME:-~/.openclaw}/npm/projects/algorandfoundation-ac2-open-claw-reference-<hash>/node_modules/@algorandfoundation/ac2-open-claw-reference, so npm rebuild --prefix must point at the project root (the npm/projects/<slug>/ directory), not at the inner package — that's where the rebuildable node_modules/ tree lives.

From this monorepo (pre-release / development)

git clone https://github.com/algorandfoundation/ac2.git
cd ac2
pnpm install                                          # once, at the repo root

cd packages/ac2-open-claw-reference
pnpm install:plugin                                   # build → pack → openclaw plugins install → rebuild natives → enable
openclaw ac2 setup                                    # wire channel + tools into openclaw.json
openclaw gateway restart

pnpm install:plugin builds the flat tree-shakeable dist/, packs a tarball with workspace-only devDependencies stripped, installs it into ${OPENCLAW_HOME:-~/.openclaw}/extensions/ac2-open-claw-reference, rebuilds @napi-rs/keyring via npm rebuild, then compiles node-datachannel from source against libnice (USE_NICE=1) via pnpm rebuild:node-datachannel. You can also run pnpm rebuild:node-datachannel on its own to re-compile the native ICE layer without repeating the full install cycle.

To uninstall (either install path):

openclaw plugins uninstall ac2-open-claw-reference
# or, from the monorepo:
pnpm uninstall:plugin

Configuration

Once installed, openclaw.json will contain an entry like:

{
  'ac2-open-claw-reference': {
    enabled: true,
    config: {
      liquidAuthServer: 'https://debug.liquidauth.com',
      defaultTimeoutMs: 120000,
    },
  },
}

AC2_LIQUID_AUTH_SERVER overrides liquidAuthServer at runtime.

Using it

In a conversation, enable the ac2 channel, scan the QR with your AC2 Controller / wallet, then the model can call ac2_capabilities followed by ac2_sign. See DISCOVERY §3.2 for the request/response shapes.

Scope

  • ✅ Liquid Auth pairing, AC2 signing trio, thid-bound responses, channel-owned sessions, wallet-issued agent identity.
  • ❌ Chain-specific verifiers, wallet introspection, holding user keys, a bundled Node WebRTC stack — these belong in downstream plugins.