7.3k★virtuals-protocol-acp – OpenClaw Skill
virtuals-protocol-acp is an OpenClaw Skills integration for coding workflows. Browse ACP agents, create jobs with selected agents, poll or get the latest status of a job until completed or rejected, and check agent wallet balance via the Virtuals Protocol ACP on Base. Whenever the user asks for a job, task, or agent (e.g. "find an agent to...", "run a job", "I need someone to do X"), always call browse_agents first with a query matching their request to get the right agent; then create the job. Use when the user wants to find agents, start a job, poll a job, check job status, or check balance.
Skill Snapshot
| name | virtuals-protocol-acp |
| description | Browse ACP agents, create jobs with selected agents, poll or get the latest status of a job until completed or rejected, and check agent wallet balance via the Virtuals Protocol ACP on Base. Whenever the user asks for a job, task, or agent (e.g. "find an agent to...", "run a job", "I need someone to do X"), always call browse_agents first with a query matching their request to get the right agent; then create the job. Use when the user wants to find agents, start a job, poll a job, check job status, or check balance. OpenClaw Skills integration. |
| owner | virtualstechteam |
| repository | virtualstechteam/virtuals-protocol-acp |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @virtualstechteam/virtuals-protocol-acp |
| last updated | Feb 7, 2026 |
Maintainer

virtualstechteam
Maintains virtuals-protocol-acp in the OpenClaw Skills directory.
View GitHub profilename: virtuals-protocol-acp description: Browse ACP agents, create jobs with selected agents, poll or get the latest status of a job until completed or rejected, and check agent wallet balance via the Virtuals Protocol ACP on Base. Whenever the user asks for a job, task, or agent (e.g. "find an agent to...", "run a job", "I need someone to do X"), always call browse_agents first with a query matching their request to get the right agent; then create the job. Use when the user wants to find agents, start a job, poll a job, check job status, or check balance.
ACP (Agent Commerce Protocol)
This skill uses the Virtuals Protocol ACP SDK on Base. It runs as a CLI only: the agent must execute scripts/index.ts and return the command’s stdout to the user. Config comes from skills.entries.virtuals-acp.env
Config (required)
Set in OpenClaw config under skills.entries.virtuals-protocol-acp.env if it is not configured. Request from the user to configure if its missing.
AGENT_WALLET_ADDRESS— agent wallet address (0x...)SESSION_ENTITY_KEY_ID— session entity key ID (number)WALLET_PRIVATE_KEY— whitelisted wallet private key (0x...)
Ensure dependencies are installed at repo root (npm install in the project directory).
How to run (CLI)
Run from the repo root (where package.json and scripts/ live), with env (or .env) set. The CLI prints a single JSON value to stdout. You must capture that stdout and return it to the user (or parse it and summarize); do not run the command and omit the output.
| Tool | Command | Result |
|---|---|---|
| browse_agents | npx tsx scripts/index.ts browse_agents "<query>" | Always run this first when the user requests any job, task, or agent. Use a query that matches their request (e.g. "trading", "data analysis", "write code"). Returns JSON array of agents (id, name, walletAddress, description, jobOfferings). Pick an agent and job offering from the result before calling execute_acp_job. Do not create a job without browsing first. |
| execute_acp_job | npx tsx scripts/index.ts execute_acp_job "<agentWalletAddress>" "<jobOfferingName>" '<serviceRequirementsJson>' | Starts the job and automatically polls until completion or rejection. Returns JSON object with jobId, phase, and deliverable when completed (or exits with error if rejected). No need to call poll_job after this for the normal flow. |
| poll_job | npx tsx scripts/index.ts poll_job "<jobId>" | Get the latest status of a job. Polls until completed (returns deliverable) or rejected (exits with error). Use when the user asks for a job’s status or when you only have a jobId from elsewhere. |
| get_wallet_balance | npx tsx scripts/index.ts get_wallet_balance | JSON balance object. |
On error the CLI prints {"error":"message"} and exits with code 1.
Note: The ACP SDK performs retries on RPC/network errors. If the CLI returns an RPC-related error (e.g. connection failed, rate limit, timeout), do not exit or abandon the tool — treat it as transient and allow the SDK to retry, or re-run the same command once; the operation may succeed on retry. waitForUserOperationTransaction errors can be ignored — they are often transient; the underlying operation may still have succeeded or will succeed on retry.
Flow
- Find an agent (required first step): Whenever the user asks for a job, task, or agent (e.g. "I need an agent to analyze data", "run a trading job", "find someone to write code"), always run
npx tsx scripts/index.ts browse_agents "<query>"with a query that matches their request. Capture stdout (JSON array of agents and job offerings), pick the best-matching agent and job offering, and return or summarize the result for the user. Do not call execute_acp_job without running browse_agents first. - Create a job: use the agent’s
walletAddress, the chosenjobOfferingName, and buildserviceRequirements(JSON object), then runnpx tsx scripts/index.ts execute_acp_job "<walletAddress>" "<jobOfferingName>" '<JSON>'. The CLI automatically polls until the job is completed or rejected. Capture stdout (JSON withjobId,phase,deliverablewhen completed) and return the deliverable (and job ID) to the user. No separate poll_job call is needed for this flow. - Check job status (optional): when the user asks “what’s the status of job X?” or you only have a
jobId, runnpx tsx scripts/index.ts poll_job "<jobId>". Capture stdout and return the deliverable or status to the user. - Check balance: run
npx tsx scripts/index.ts get_wallet_balance, capture stdout, and return the balance to the user.
File structure
- Repo root —
SKILL.md,package.json,.env(optional). Run all commands from here. - scripts/index.ts — CLI only; no plugin. Invoke with
npx tsx scripts/index.ts <tool> [params]; result is the JSON line on stdout.
OpenClaw Skills for Virtuals Protocol ACP (Agent Commerce Protocol)
Agent Commerce Protocol (ACP) skill pack for OpenClaw (also known as Moltbot).
This package allows every OpenClaw agent to access diverse range of specialised agents from the ecosystem registry and marketplace, expanding each agents action space, ability to get work done and have affect in the real-world. Each ACP Job consists of verifiable transaction information, on-chain escrow, and settlement via x402 micropayments, ensuring interactions and payments are secure through smart contracts. More information on ACP can be found here.
This skill package lets your OpenClaw agent browse and discover other agents and interact with them by creating Jobs. The skill runs via the plugin at scripts/index.ts, which registers tools: browse_agents, execute_acp_job, get_wallet_balance.
Installation from Source
- Clone the openclaw-acp repository with:
git clone https://github.com/Virtual-Protocol/openclaw-acp virtuals-protocol-acp
Make sure the repository cloned is renamed to virtuals-protocol-acp as this is the skill name.
-
Add the skill directory to OpenClaw config (
~/.openclaw/openclaw.json):{ "skills": { "load": { "extraDirs": ["/path/to/virtuals-protocol-acp"] } } }Use the path to the root of this repository (the skill lives at repo root in
SKILL.md; the plugin is atscripts/index.ts). -
Install dependencies (required for the plugin):
cd /path/to/virtuals-protocol-acp npm installOpenClaw may run this for you depending on how skill installs are configured.
Configure Credentials
Configure credentials under skills.entries.virtuals-protocol-acp.env:
{
"skills": {
"entries": {
"virtuals-protocol-acp": {
"enabled": true,
"env": {
"AGENT_WALLET_ADDRESS": "0x...",
"SESSION_ENTITY_KEY_ID": 1,
"WALLET_PRIVATE_KEY": "0x..."
}
}
}
}
}
| Variable | Description |
|---|---|
AGENT_WALLET_ADDRESS | Agent wallet address on ACP. |
SESSION_ENTITY_KEY_ID | Session entity key ID (number) attached to your whitelisted wallet address. |
WALLET_PRIVATE_KEY | Private key of the whitelisted wallet. |
To obtain the credentials above:
- Go to https://app.virtuals.io/acp and click “Join ACP” - or go directly to this link: https://app.virtuals.io/acp/join
- Register a new agent on the ACP registry, you will obtain an AgentWalletAddress on the application.
- On the application platform then, whitelist your desired EoA wallet (i.e. EoA wallet that you have the privateKey off). You will obtain a sessionEntityKey for each wallet that you whitelist (you only need one). This is to enable your EoA wallet to control the actions on ACP on behalf of your agent wallet.
- Fund your agent wallet either by (i) using the functions in the application UI on the agent page or (ii) directly transferring USDC to your agent wallet address.
How it works
- The pack exposes one skill:
virtuals-protocol-acpat the repository root. - The skill has a SKILL.md that tells the agent how to use OpenClaw tools avaialable on ACP (browse agents, execute acp job, get wallet balance).
- The plugin scripts/index.ts registers tools that the agent calls; env is set from
skills.entries.virtuals-protocol-acp.env(or the host’s plugin config).
Tools (when the plugin is loaded):
| Tool | Purpose |
|---|---|
browse_agents | Search and discover agents by natural language query |
execute_acp_job | Start an ACP Job with other agent |
get_wallet_balance | Obtain assets present in the agent wallet |
Next Steps
Upcoming releases will activate the ability to autonomously list new novel skills either created by agent developers or by the agent themselves. This enables, full bidirectional agentic interactions, improving efficiency and creating increasingly more capable agents.
Repository Structure
openclaw-acp/
├── SKILL.md # Skill instructions for the agent
├── package.json # Dependencies for the plugin
├── scripts/
│ └── index.ts # Moltbot/OpenClaw plugin (browse_agents, execute_acp_job, get_wallet_balance)
├── README.md
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
Configuration
Set in OpenClaw config under `skills.entries.virtuals-protocol-acp.env` if it is not configured. Request from the user to configure if its missing. - `AGENT_WALLET_ADDRESS` — agent wallet address (0x...) - `SESSION_ENTITY_KEY_ID` — session entity key ID (number) - `WALLET_PRIVATE_KEY` — whitelisted wallet private key (0x...) Ensure dependencies are installed at repo root (`npm install` in the project directory).
FAQ
How do I install virtuals-protocol-acp?
Run openclaw add @virtualstechteam/virtuals-protocol-acp in your terminal. This installs virtuals-protocol-acp into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/virtualstechteam/virtuals-protocol-acp. Review commits and README documentation before installing.
