ClawBond

ReviewAudited by ClawScan on May 13, 2026.

Overview

ClawBond is a disclosed Solana escrow plugin that can move real SOL from a configured wallet, so it is high-impact but not shown to be hidden or deceptive.

Install only if you are comfortable giving this plugin access to a dedicated Solana wallet. Start on devnet, keep requireApproval true, keep maxStakePerBond low, review every confirmation, protect the local pending/audit files, and do not enable telemetry unless you accept the metadata sharing.

Publisher note

ClawBond is purpose-built financial automation — each finding below is either addressed in code or expected by design. ASI02 (Tool Misuse): Intentional. This plugin's entire purpose is to move SOL on behalf of the installing agent. requireApproval is true by default, every fund-moving tool surfaces a human-readable confirmation step, and all actions are append-only logged to audit.jsonl. Users are directed to a dedicated low-balance wallet in step 0 of SKILL.md. ASI03 (ANCHOR_WALLET): Fixed in v0.3.1. Anchor's NodeWallet.local() was bundled from @coral-xyz/anchor but never called — ClawBond always uses loadWallet(cfg.walletPath). The bundle now opens with 'delete process.env.ANCHOR_WALLET' so the env var is provably unavailable to any bundled code at runtime regardless of the host environment. ASI05 (Dynamic import): Fixed in v0.3.1. The 'new Function' pattern was removed entirely. Oracle evaluation requests are now purely on-chain (OracleEvalRequested event); the Switchboard oracle network picks up the event automatically with no plugin-side runtime code loading. ASI06 (Persistent state): Intentional. The pending bond store (~/.openclaw/clawbond/pending.json) is necessary for scheduled settlement checks. It only stores bond PDAs and metadata, not keys or secrets. bond_list_pending is a read-only tool for inspecting it at any time. ASI07 (Inter-agent communication): Intentional. Accepting a {dsl, tx_hex} bundle is the core agent-to-agent workflow. The plugin verifies the transaction against the DSL before presenting it for approval, requireApproval is on by default, and the user must pass confirmed:true explicitly after reviewing plain-English terms.

Findings (7)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If the user or agent confirms the wrong action, funds can be locked or transferred on-chain.

Why it was flagged

The skill intentionally exposes tools that can lock, settle, or transfer escrowed SOL, but it documents a default confirmation flow.

Skill content
Human-in-the-loop — `requireApproval: true` (the default) pauses all fund-moving tools and surfaces a confirmation before submitting
Recommendation

Keep requireApproval enabled, review the plain-English terms, and only use confirmed:true after you personally approve the transaction.

What this means

Misconfiguring this to a primary wallet could expose significant funds to irreversible on-chain actions.

Why it was flagged

The plugin uses local Solana signing authority. The docs bound this to a dedicated low-balance wallet, which is appropriate but still sensitive.

Skill content
Never point ClawBond at your primary wallet... `walletPath` | `~/.config/solana/clawbond-dedicated.json`
Recommendation

Use only a dedicated, low-balance wallet; test on devnet; keep maxStakePerBond low.

What this means

A counterparty can send unfavorable or confusing bond terms for your agent to evaluate.

Why it was flagged

Untrusted inter-agent messages can initiate a financial review flow. The skill says it verifies the transaction and uses confirmation, but the bundle source remains important.

Skill content
When another agent sends you a `{ dsl, tx_hex }` bundle: Call `bond_accept(dsl, tx_hex)` — it verifies the DSL against the transaction
Recommendation

Treat all received bond bundles as untrusted, verify the counterparty and terms, and do not approve unexpected proposals.

What this means

Local financial metadata persists after use and could affect future settlement checks if modified.

Why it was flagged

The skill persists pending bond metadata and an audit log locally for later inspection and settlement checks.

Skill content
"storePath": "~/.openclaw/clawbond/pending.json" ... "auditPath": "~/.openclaw/clawbond/audit.jsonl"
Recommendation

Keep the .openclaw/clawbond directory protected, inspect pending bonds with bond_list_pending, and remove stale entries if needed.

What this means

A bond may be checked or settled later, especially if approval is disabled.

Why it was flagged

The skill can register future settlement checks after an initial action. This is disclosed and aligned with escrow settlement, not hidden persistence.

Skill content
Self-settling — call `bond_watch` once, settlement fires automatically
Recommendation

Leave requireApproval enabled, use bond_list_pending to review scheduled bonds, and avoid watching bonds you do not intend to settle.

What this means

Installing the skill runs publisher-supplied code that handles wallet signing and network transactions.

Why it was flagged

The skill runs a bundled JavaScript plugin and references semver-range dependencies. This is normal for a plugin but means users rely on package provenance.

Skill content
"main": "dist/bundle.js" ... "dependencies": { "@coral-xyz/anchor": "^0.30.0", "@solana/web3.js": "^1.98.0" }
Recommendation

Install only from the expected ClawHub package/source, review updates carefully, and pin/rebuild dependencies if self-auditing.

What this means

If enabled, usage metadata about financial-tool calls may leave the local machine.

Why it was flagged

Optional telemetry can send tool-call metadata to an external endpoint, but it is disclosed and disabled by default.

Skill content
"disableTelemetry": ... "default": "true" ... "telemetryEndpoint": "Optional URL to receive anonymised tool-call events"
Recommendation

Leave telemetry disabled for private financial use unless you are comfortable with the described metadata sharing.