Not in the top 1,000 by GitHub stars
awp-core/awp-skill
Agent skill for AWP RootNet protocol (testnet) — query, stake, govern, and monitor on-chain
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → b7dbddf19e81
No earlier version was observed for comparison.
Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- awp
/
How it works
awp
When your agent uses it
AWP (Agent Work Protocol) — the complete toolkit for agent mining on Base, Ethereum, Arbitrum, and BSC. Use this skill when the user explicitly mentions AWP, worknets, veAWP, awp-wallet, or AWP-specific operations. Handles: onboarding (wallet setup, registration, worknet joining), staking (deposit, withdraw, gasless relay via ERC-2612 permit), allocation (allocate/deallocate stake to agents on worknets), worknet management (register, pause, resume, cancel), agent binding (link agent wallet to owner), governance (proposals, voting), and querying (balances, positions, emissions, epochs, announcements). Trigger keywords: AWP, veAWP, awp-wallet, worknet, AWPRegistry, AWPAllocator, AWPWorkNet, agent staking (in AWP context), "allocate AWP", "bind my agent", "claim AWP rewards", "AWP emission", "AWP epoch". NOT for: Uniswap, Aave, Lido, Compound, generic Solidity/Hardhat, token swaps, bridging, or non-AWP DeFi protocols. Do NOT trigger on generic phrases like "start working" or "start earning" unless AWP is explicitly mentioned in context.
What it loads into context
Frontmatter
601 tokensAlways available to the agent
SKILL.md
21,741 tokensWhen the skill is activated
Reference documents
67,782 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Requirements & Security
- API — JSON-RPC 2.0
- Contract Addresses (same on all 4 chains)
- On Skill Load
- User Commands
- Onboarding Flow
- Intent Routing
- Output Format
- Agent Wallet & Transaction Safety
- Rules
- Error Recovery Protocol
- Script Output Contract
- Bundled Scripts
- Security Controls
- Vanity Salt Endpoints
- Wallet Setup
- Gas Routing
- Pre-Flight Checklist (before ANY write action)
- Query (read-only, no wallet needed)
- Staking & Reward Model — How AWP Actually Works
- Registration & Staking (load commands-staking.md first)
- Worknet Management (wallet + AWPWorkNet ownership — load commands-worknet.md first)
- Governance (wallet + veAWP positions)
- Monitor (real-time WebSocket, no wallet needed)
- Error Recovery
Scripts executed separately
scripts/awp-daemon.pyscripts/awp_lib.pyscripts/onchain-add-position.pyscripts/onchain-allocate.pyscripts/onchain-batch-withdraw.pyscripts/onchain-bind.pyscripts/onchain-claim.pyscripts/onchain-deallocate-all.pyscripts/onchain-deallocate.pyscripts/onchain-deposit.pyscripts/onchain-onboard.pyscripts/onchain-partial-withdraw.pyscripts/onchain-propose.pyscripts/onchain-reallocate.pyscripts/onchain-register.pyscripts/onchain-stake.pyscripts/onchain-switch-worknet.pyscripts/onchain-unstake.pyscripts/onchain-vote.pyscripts/onchain-withdraw.pyscripts/onchain-worknet-lifecycle.pyscripts/onchain-worknet-metadata.pyscripts/onchain-worknet-update.pyscripts/preflight.pyscripts/query-dao.pyscripts/query-status.pyscripts/query-worknet.pyscripts/relay-allocate.pyscripts/relay-delegate.pyscripts/relay-onboard.pyscripts/relay-propose.pyscripts/relay-register-worknet.pyscripts/relay-signal-propose.pyscripts/relay-stake.pyscripts/relay-start.pyscripts/relay-unbind.pyscripts/relay-vote.pyscripts/wallet-raw-call.mjs
Files
.gitignoreasset163 bytesCHANGELOG.mddoc93,190 bytesLICENSEasset1,062 bytesREADME.mddoc21,463 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesSKILL.mdcore83,390 bytesassets/banner.pngasset208,252 bytesreferences/api-reference.mddoc21,287 bytesreferences/commands-governance.mddoc6,179 bytesreferences/commands-staking.mddoc18,523 bytesreferences/commands-worknet.mddoc16,555 bytesreferences/protocol.mddoc15,845 bytesreferences/worknet-developer.mddoc24,809 bytesscripts/awp-daemon.pyruns42,705 bytesscripts/awp_lib.pyruns28,527 bytesscripts/onchain-add-position.pyruns3,703 bytesscripts/onchain-allocate.pyruns2,647 bytesscripts/onchain-batch-withdraw.pyruns1,720 bytesscripts/onchain-bind.pyruns1,716 bytesscripts/onchain-claim.pyruns3,192 bytesscripts/onchain-deallocate-all.pyruns1,390 bytesscripts/onchain-deallocate.pyruns1,635 bytesscripts/onchain-deposit.pyruns1,970 bytesscripts/onchain-onboard.pyruns9,396 bytesscripts/onchain-partial-withdraw.pyruns1,903 bytesscripts/onchain-propose.pyruns8,272 bytesscripts/onchain-reallocate.pyruns2,526 bytesscripts/onchain-register.pyruns1,739 bytesscripts/onchain-stake.pyruns4,965 bytesscripts/onchain-switch-worknet.pyruns4,912 bytesscripts/onchain-unstake.pyruns5,830 bytesscripts/onchain-vote.pyruns5,875 bytesscripts/onchain-withdraw.pyruns1,545 bytesscripts/onchain-worknet-lifecycle.pyruns2,884 bytesscripts/onchain-worknet-metadata.pyruns2,402 bytesscripts/onchain-worknet-update.pyruns2,932 bytesscripts/preflight.pyruns13,838 bytesscripts/query-dao.pyruns8,425 bytesscripts/query-status.pyruns8,650 bytesscripts/query-worknet.pyruns7,974 bytesscripts/relay-allocate.pyruns5,703 bytesscripts/relay-delegate.pyruns3,543 bytesscripts/relay-onboard.pyruns8,512 bytesscripts/relay-propose.pyruns6,429 bytesscripts/relay-register-worknet.pyruns8,831 bytesscripts/relay-signal-propose.pyruns5,882 bytesscripts/relay-stake.pyruns9,962 bytesscripts/relay-start.pyruns6,429 bytesscripts/relay-unbind.pyruns3,639 bytesscripts/relay-vote.pyruns6,282 bytesscripts/wallet-raw-call.mjsruns13,141 bytesskill-reference.mddoc31,016 bytes
Read SKILL.md
# AWP Registry
**Skill version: 1.9.1**
## Requirements & Security
- **Runtime**: python3, node (for wallet-raw-call.mjs bridge)
- **Wallet**: awp-wallet CLI — install from https://github.com/awp-core/awp-wallet
- **Credential**: awp-wallet session token (passed as `--token`; generated by `awp-wallet unlock`; no user-supplied password). New wallet versions no longer require unlock — `--token` is optional for backwards compatibility with older wallets.
- **Chain**: `EVM_CHAIN` env var (optional, default: base). Accepts name or numeric ID.
- **Network endpoints** (hardcoded, not overridable — security by design to prevent env-var hijacking):
- `https://api.awp.sh/v2` — AWP JSON-RPC API
- `https://mainnet.base.org` — Base EVM RPC
- `wss://api.awp.sh/ws/live` — WebSocket for real-time events (optional)View the complete source on GitHubSkills included
- awp
Repository facts
- License
- MIT
- Created
- Mar 17, 2026
- Last pushed
- May 2, 2026
- Forks
- 50
- Open issues
- 3
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 66 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 8 dangerous shell commandsin 2 files: CHANGELOG.md:1539 SKILL.md:452
- 250 network referencesin 14 files: SKILL.md:27 CHANGELOG.md:158 README.md:3 and 11 more
- No hidden or obfuscated text
- No instruction overrides
- 38 executable scriptsin 38 files: scripts/awp-daemon.py:1 scripts/awp_lib.py:1 scripts/onchain-add-position.py:1 and 35 more
- 11 references to secretsin 4 files: scripts/awp_lib.py:244 CHANGELOG.md:1052 references/commands-worknet.md:167 and 1 more
- No requests to vote in Hot
Show all 307 signals by file
CHANGELOG.md
- Network accessline 158
- Corrected install method from invalid `skill install` to `git clone https://github.com/awp-core/awp-wallet && bash install.sh`. - Network accessline 159
`git clone https://github.com/awp-core/awp-wallet && bash install.sh`. - Network accessline 664
approvals, no files outside `~/.awp/`, no network listeners, no package installs) and "DOES" list (poll API, write status, check versions, log). Described as "equivalent to a cron job that runs curl every 5 minutes". - Network accessline 665
installs) and "DOES" list (poll API, write status, check versions, log). Described as "equivalent to a cron job that runs curl every 5 minutes". Output line changed to "AWP status monitor started (read-only, no wallet - Network accessline 666
Described as "equivalent to a cron job that runs curl every 5 minutes". - Network accessline 994
- `references/commands-subnet.md`: the ERC-2612 permit nonce lookup example used a stale `$RPC_URL` placeholder in a user-runnable curl/Python snippet. Replaced with the hardcoded `https://mainnet.base.org` and a User-Agent - Network accessline 995
used a stale `$RPC_URL` placeholder in a user-runnable curl/Python snippet. Replaced with the hardcoded `https://mainnet.base.org` and a User-Agent header so the example actually works when copy-pasted. - Network accessline 996
Replaced with the hardcoded `https://mainnet.base.org` and a User-Agent - Access to secretsline 1052
[Credential-related source omitted] - Network accessline 1290
- Registry URL for contract allowlist is now hardcoded (`https://tapi.awp.sh/api/registry`), not read from `AWP_API_URL` env var — prevents allowlist bypass via environment variable injection - Network accessline 1487
**SKILL.md:** - Fix shell injection in OpenClaw config write (use python3 json.dumps instead of shell interpolation) - Add curl command for version check (Step 6 was unimplementable) - Network accessline 1488
- Fix shell injection in OpenClaw config write (use python3 json.dumps instead of shell interpolation) - Add curl command for version check (Step 6 was unimplementable) - Remove duplicate Step 4 onboarding label with inconsistent capitaliza - Network accessline 1489
- Add curl command for version check (Step 6 was unimplementable) - Network accessline 1490
- Remove duplicate Step 4 onboarding label with inconsistent capitalization - Change `[QUERY]` → `[SETUP]` tag for skill install operations - Add `https://` to W1 WebSocket event basescan links - Network accessline 1492
- Add `https://` to W1 WebSocket event basescan links - Network accessline 1533
### Simplify — Just tell agent where the wallet skill is - SKILL.md Step 2: point agent to `https://github.com/awp-core/awp-wallet`, let it handle installation — no hardcoded install commands - Network accessline 1534
- SKILL.md Step 2: point agent to `https://github.com/awp-core/awp-wallet`, let it handle installation — no hardcoded install commands - Network accessline 1538
### Fix — Install from local repo, not remote pipe - SKILL.md Step 2: `git clone` → `bash install.sh` (clone locally first, then execute — avoids `curl | bash` remote pipe) - Dangerous shell operationline 1539
- SKILL.md Step 2: `git clone` → `bash install.sh` (clone locally first, then execute — avoids `curl | bash` remote pipe) - Network accessline 1539
- SKILL.md Step 2: `git clone` → `bash install.sh` (clone locally first, then execute — avoids `curl | bash` remote pipe) - Dangerous shell operationline 1540
- daemon: all install/update messages use `git clone` + local `install.sh` instead of `curl | bash` - Network accessline 1540
- daemon: all install/update messages use `git clone` + local `install.sh` instead of `curl | bash` - Network accessline 1552
### Fix — Wallet install via skill, not bash script - SKILL.md Step 2: removed hardcoded `curl | bash` install command. Now directs agent to install the AWP Wallet skill (from ClawHub or repo), which handles installation and setup - Dangerous shell operationline 1553
- SKILL.md Step 2: removed hardcoded `curl | bash` install command. Now directs agent to install the AWP Wallet skill (from ClawHub or repo), which handles installation and setup - Network accessline 1553
- SKILL.md Step 2: removed hardcoded `curl | bash` install command. Now directs agent to install the AWP Wallet skill (from ClawHub or repo), which handles installation and setup - Network accessline 1559
### UX Fix — Agent handles install & init - SKILL.md Step 2: agent directly runs `curl | bash` to install awp-wallet (not the user) - Dangerous shell operationline 1560
- SKILL.md Step 2: agent directly runs `curl | bash` to install awp-wallet (not the user) - Network accessline 1560
- SKILL.md Step 2: agent directly runs `curl | bash` to install awp-wallet (not the user) - Network accessline 1567
### Security Hardening - **Removed auto-install**: daemon no longer downloads or executes remote install scripts (`curl | bash`). Prints manual install instructions instead - Dangerous shell operationline 1568
- **Removed auto-install**: daemon no longer downloads or executes remote install scripts (`curl | bash`). Prints manual install instructions instead - Network accessline 1568
- **Removed auto-install**: daemon no longer downloads or executes remote install scripts (`curl | bash`). Prints manual install instructions instead - Network accessline 1571
- **Declared OpenClaw env vars**: added `OPENCLAW_CHANNEL` and `OPENCLAW_TARGET` to `requires.env` (optional) - **Clarified update checks**: version checks are informational only, no auto-download or auto-execute - **Reference docs**: added - Network accessline 1573
- **Reference docs**: added default value (`https://tapi.awp.sh/api`) and `AWP_API_URL` env var to all 4 API Base URL annotations - Network accessline 1581
- `awp-wallet unlock --scope` EXISTS (read|transfer|full) — re-added with `--scope transfer` default - `awp-wallet status --token` EXISTS — added `wallet_status()` to awp_lib.py - awp-wallet install: `skill install` → `curl -sSL install.sh - Network accessline 1582
- `awp-wallet status --token` EXISTS — added `wallet_status()` to awp_lib.py - awp-wallet install: `skill install` → `curl -sSL install.sh | bash` (not on npm registry) - awp-daemon: wallet version check was reading non-existent SKILL.md fr - Dangerous shell operationline 1583
- awp-wallet install: `skill install` → `curl -sSL install.sh | bash` (not on npm registry) - Network accessline 1583
- awp-wallet install: `skill install` → `curl -sSL install.sh | bash` (not on npm registry) - Network accessline 1595
- Shell injection surface fully eliminated — no more `python3 -c` inline, no `$VAR` interpolation in subshells - All scripts now use native Python `urllib` for HTTP and `argparse` for CLI parsing - Dependencies reduced from `curl + jq + pyt - Network accessline 1596
- All scripts now use native Python `urllib` for HTTP and `argparse` for CLI parsing - Dependencies reduced from `curl + jq + python3` to `python3` only - Reference docs updated: `scripts/*.sh` → `scripts/*.py` - Network accessline 1597
- Dependencies reduced from `curl + jq + python3` to `python3` only - Access to secretsline 1608
[Credential-related source omitted] - Network accessline 1635
### Changed - **Agent wallet model** — transactions execute directly, no confirmation prompts. This is a work wallet for AWP tasks only; users are told not to store personal assets. - `awp-wallet` installs from registry first, falls back to - Network accessline 1636
- **Agent wallet model** — transactions execute directly, no confirmation prompts. This is a work wallet for AWP tasks only; users are told not to store personal assets. - `awp-wallet` installs from registry first, falls back to GitHub: `sk - Network accessline 1637
- `awp-wallet` installs from registry first, falls back to GitHub: `skill install awp-wallet || skill install https://github.com/awp-core/awp-wallet` - Access to secretsline 1642
[Credential-related source omitted] - Network accessline 1654
First public release of the AWP Skill for [Claude Code](https://github.com/anthropics/claude-code), [OpenClaw](https://openclaw.ai), and other SKILL.md-compatible agents. - Network accessline 1661
skill install https://github.com/awp-core/awp-skill - Access to secretsline 1768
[Credential-related source omitted] - Network accessline 1775
Works with any agent that supports the [SKILL.md standard](https://agentskills.io/specification): - Network accessline 1786
skill install https://github.com/awp-core/awp-skill
README.md
- Network accessline 3
<p align="center"> <a href="https://awp.pro/"> - Network accessline 4
<a href="https://awp.pro/"> - Network accessline 9
<p align="center"> <img src="https://img.shields.io/badge/EVM_Compatible-3C3C3D?style=flat&logo=ethereum&logoColor=white" alt="EVM"> - Network accessline 10
<img src="https://img.shields.io/badge/EVM_Compatible-3C3C3D?style=flat&logo=ethereum&logoColor=white" alt="EVM"> - Network accessline 11
<img src="https://img.shields.io/badge/Base-0052FF?style=flat&logo=coinbase&logoColor=white" alt="Base"> - Network accessline 12
<img src="https://img.shields.io/badge/Ethereum-3C3C3D?style=flat&logo=ethereum&logoColor=white" alt="Ethereum"> - Network accessline 13
<img src="https://img.shields.io/badge/BNB_Chain-F0B90B?style=flat&logo=bnbchain&logoColor=white" alt="BNB Chain"> - Network accessline 14
<img src="https://img.shields.io/badge/SKILL.md-000000?style=flat" alt="SKILL.md"> - Network accessline 15
<img src="https://img.shields.io/badge/AI_Agent-10B981?style=flat&logo=openai&logoColor=white" alt="AI Agent"> - Network accessline 16
<img src="https://img.shields.io/badge/License-MIT-97CA00?style=flat" alt="MIT"> - Network accessline 23
<p align="center"> <a href="https://github.com/anthropics/claude-code"><img src="https://img.shields.io/badge/Claude_Code-191919?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude Code"></a> - Network accessline 24
<a href="https://github.com/anthropics/claude-code"><img src="https://img.shields.io/badge/Claude_Code-191919?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude Code"></a> - Network accessline 25
<a href="https://github.com/openclaw/openclaw"><img src="https://img.shields.io/badge/OpenClaw-FF4500?style=for-the-badge" alt="OpenClaw"></a> - Network accessline 26
<a href="https://github.com/openclaw/openclaw"><img src="https://img.shields.io/badge/OpenClaw-FF4500?style=for-the-badge" alt="OpenClaw"></a> - Network accessline 27
<a href="https://cursor.sh"><img src="https://img.shields.io/badge/Cursor-000000?style=for-the-badge" alt="Cursor"></a> - Network accessline 28
<a href="https://cursor.sh"><img src="https://img.shields.io/badge/Cursor-000000?style=for-the-badge" alt="Cursor"></a> - Network accessline 29
<a href="https://openai.com/codex"><img src="https://img.shields.io/badge/Codex-412991?style=for-the-badge&logo=openai&logoColor=white" alt="Codex"></a> - Network accessline 30
<a href="https://openai.com/codex"><img src="https://img.shields.io/badge/Codex-412991?style=for-the-badge&logo=openai&logoColor=white" alt="Codex"></a> - Network accessline 31
<a href="https://ai.google.dev/gemini-api/docs/cli"><img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google&logoColor=white" alt="Gemini CLI"></a> - Network accessline 32
<a href="https://ai.google.dev/gemini-api/docs/cli"><img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google&logoColor=white" alt="Gemini CLI"></a> - Network accessline 33
<a href="https://windsurf.ai"><img src="https://img.shields.io/badge/Windsurf-06B6D4?style=for-the-badge" alt="Windsurf"></a> </p> - Network accessline 34
<a href="https://windsurf.ai"><img src="https://img.shields.io/badge/Windsurf-06B6D4?style=for-the-badge" alt="Windsurf"></a> - Network accessline 37
<p align="center">Any agent that supports the <a href="https://agentskills.io/specification">SKILL.md standard</a>.</p> - Network accessline 52
skill install https://github.com/awp-core/awp-skill - Network accessline 55
The skill installs the [AWP Wallet](https://github.com/awp-core/awp-wallet) dependency on first load if missing. - Network accessline 67
# 1. Install awp-skill itself skill install https://github.com/awp-core/awp-skill - Network accessline 68
skill install https://github.com/awp-core/awp-skill - Network accessline 70
# 2. Install the awp-wallet CLI dependency skill install https://github.com/awp-core/awp-wallet - Network accessline 71
skill install https://github.com/awp-core/awp-wallet - Network accessline 291
| Service | URL | |---------|-----| | JSON-RPC API | `POST https://api.awp.sh/v2` | - Network accessline 292
|---------|-----| | JSON-RPC API | `POST https://api.awp.sh/v2` | | WebSocket | `wss://api.awp.sh/ws/live` | - Network accessline 293
| JSON-RPC API | `POST https://api.awp.sh/v2` | - Network accessline 294
| WebSocket | `wss://api.awp.sh/ws/live` | | Health Check | `GET https://api.awp.sh/api/health` | | Contract Registry | `registry.get` JSON-RPC method (returns all chains; pass `chainId` for one) | - Network accessline 295
| Health Check | `GET https://api.awp.sh/api/health` |
SKILL.md
- Network accessline 27
- node # Required by wallet-raw-call.mjs (Node.js bridge for raw contract calls) anyBins: - awp-wallet # awp-wallet CLI — install from https://github.com/awp-core/awp-wallet - Network accessline 28
anyBins: - awp-wallet # awp-wallet CLI — install from https://github.com/awp-core/awp-wallet env: - Network accessline 29
- awp-wallet # awp-wallet CLI — install from https://github.com/awp-core/awp-wallet - Network accessline 34
primaryEnv: AWP_WALLET_TOKEN emoji: "🪼" homepage: https://github.com/awp-core/awp-skill - Network accessline 35
emoji: "🪼" homepage: https://github.com/awp-core/awp-skill security: - Network accessline 36
homepage: https://github.com/awp-core/awp-skill - Network accessline 55
- **Runtime**: python3, node (for wallet-raw-call.mjs bridge) - **Wallet**: awp-wallet CLI — install from https://github.com/awp-core/awp-wallet - Network accessline 56
- **Wallet**: awp-wallet CLI — install from https://github.com/awp-core/awp-wallet - Network accessline 58
- **Chain**: `EVM_CHAIN` env var (optional, default: base). Accepts name or numeric ID. - **Network endpoints** (hardcoded, not overridable — security by design to prevent env-var hijacking): - `https://api.awp.sh/v2` — AWP JSON-RPC API - Network accessline 59
- **Network endpoints** (hardcoded, not overridable — security by design to prevent env-var hijacking): - `https://api.awp.sh/v2` — AWP JSON-RPC API - `https://mainnet.base.org` — Base EVM RPC - Network accessline 60
- `https://api.awp.sh/v2` — AWP JSON-RPC API - Network accessline 61
- `https://mainnet.base.org` — Base EVM RPC - Network accessline 73
POST https://api.awp.sh/v2 - Network accessline 77
Request: `{"jsonrpc":"2.0","method":"namespace.method","params":{...},"id":1}` Discovery: `GET https://api.awp.sh/v2` | WebSocket: `wss://api.awp.sh/ws/live` | Batch: up to 20 per request. - Network accessline 78
Discovery: `GET https://api.awp.sh/v2` | WebSocket: `wss://api.awp.sh/ws/live` | Batch: up to 20 per request. - Network accessline 82
Throughout this document, all `curl` commands use JSON-RPC POST to `https://api.awp.sh/v2`. Do not use REST-style GET paths. - Network accessline 297
git clone https://github.com/awp-core/awp-wallet.git /tmp/awp-wallet-install \ - Network accessline 304
**CRITICAL — do NOT invent install commands.** The ONLY supported install method is cloning https://github.com/awp-core/awp-wallet and running its `install.sh` script. Do NOT suggest - Network accessline 305
https://github.com/awp-core/awp-wallet and running its `install.sh` script. Do NOT suggest - Network accessline 307
`apt install awp-wallet`, `skill install awp-wallet`, or any other package manager command — these packages do not exist. If `install.sh` fails, tell the user to visit https://github.com/awp-core/awp-wallet for troubleshooting. Do NOT guess - Network accessline 308
these packages do not exist. If `install.sh` fails, tell the user to visit https://github.com/awp-core/awp-wallet for troubleshooting. Do NOT guess or fabricate alternative install methods. - Network accessline 309
https://github.com/awp-core/awp-wallet for troubleshooting. Do NOT guess or fabricate - Network accessline 355
curl -sf https://raw.githubusercontent.com/awp-core/awp-skill/main/SKILL.md | sed -n 's/.*Skill version: \([0-9.]*\).*/\1/p' - Network accessline 406
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 440
curl -s https://api.awp.sh/api/announcements/llm-context - Dangerous shell operationline 452
rm -f ~/.awp/notifications.json - Dangerous shell operationline 469
kill $(cat ~/.awp/daemon.pid 2>/dev/null) 2>/dev/null && rm -f ~/.awp/daemon.pid - Network accessline 636
[TX] hash: <txHash> [TX] view: https://basescan.org/tx/<txHash> - Network accessline 637
[TX] view: https://basescan.org/tx/<txHash> - Network accessline 653
[TX] deposited 1,000 AWP → position #3 | lock ends 2026-06-19 [TX] hash: 0xabc... | https://basescan.org/tx/0xabc... | confirmed ✓ - Network accessline 654
[TX] hash: 0xabc... | https://basescan.org/tx/0xabc... | confirmed ✓ - Network accessline 841
All network endpoints are **hardcoded** (not overridable via environment variables) to prevent env-var hijacking attacks: - `https://api.awp.sh/v2` — AWP JSON-RPC API (reads + relay submissions) - Network accessline 842
- `https://api.awp.sh/v2` — AWP JSON-RPC API (reads + relay submissions) - Network accessline 843
- `https://mainnet.base.org` — Base EVM RPC (on-chain reads for calldata construction) - Network accessline 915
Gasless relay endpoints (REST, NOT JSON-RPC): `POST https://api.awp.sh/api/relay/*` - Network accessline 1011
[Credential-related source omitted] - Network accessline 1012
2. Wallet address? → (already obtained in step 1) 3. Registration status? → curl -s -X POST https://api.awp.sh/v2 -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"address.check","params":{"address":"'$WALLET_ADDR'"}," - Network accessline 1013
3. Registration status? → curl -s -X POST https://api.awp.sh/v2 -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"address.check","params":{"address":"'$WALLET_ADDR'"},"id":1}' - Network accessline 1046
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1073
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1109
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1128
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1135
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1151
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1164
[SETUP] Worknet #5 skill source: https://github.com/other/repo - Network accessline 1172
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1190
All use the same JSON-RPC format: `POST https://api.awp.sh/v2` with `{"jsonrpc":"2.0","method":"...","params":{...},"id":1}`. - Network accessline 1195
# List active announcements curl -s https://api.awp.sh/api/announcements - Network accessline 1196
curl -s https://api.awp.sh/api/announcements - Network accessline 1198
# LLM-friendly format curl -s https://api.awp.sh/api/announcements/llm-context - Network accessline 1199
curl -s https://api.awp.sh/api/announcements/llm-context - Network accessline 1201
# Filter by chain or category curl -s "https://api.awp.sh/api/announcements?chainId=8453&category=emission" - Network accessline 1202
curl -s "https://api.awp.sh/api/announcements?chainId=8453&category=emission" - Network accessline 1507
python3 scripts/relay-signal-propose.py --title "..." --body @proposal.md # With optional reference URL (e.g., GitHub ERP, forum thread): python3 scripts/relay-signal-propose.py --title "ERP-0001" --body @proposal.md --url "https://github.c - Network accessline 1509
python3 scripts/relay-signal-propose.py --title "ERP-0001" --body @proposal.md --url "https://github.com/awp-core/ERPs/..." - Network accessline 1567
curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 1631
$ StakePositionCreated | 0x1234...abcd staked 5,000.0000 AWP | lock ends 2026-12-01 | https://basescan.org/tx/0xabc... - Network accessline 1632
# WorknetRegistered | #12 "DataMiner" by 0x5678...efgh | https://basescan.org/tx/0xdef... - Network accessline 1633
~ EpochSettled | Epoch 42 | 31,600,000.0000 AWP to 150 recipients | https://basescan.org/tx/0x123...
references/api-reference.md
- Network accessline 12
| Transport | URL | Notes | |-----------|-----|-------| | JSON-RPC 2.0 | `POST https://api.awp.sh/v2` | All read queries | - Network accessline 13
|-----------|-----|-------| | JSON-RPC 2.0 | `POST https://api.awp.sh/v2` | All read queries | | Discovery | `GET https://api.awp.sh/v2` | Method listing | - Network accessline 14
| JSON-RPC 2.0 | `POST https://api.awp.sh/v2` | All read queries | - Network accessline 15
| Discovery | `GET https://api.awp.sh/v2` | Method listing | | WebSocket | `wss://api.awp.sh/ws/live` | Real-time events | | Batch | `POST https://api.awp.sh/v2` | Up to 20 requests per batch, executed concurrently | - Network accessline 16
| WebSocket | `wss://api.awp.sh/ws/live` | Real-time events | | Batch | `POST https://api.awp.sh/v2` | Up to 20 requests per batch, executed concurrently | | Health Check | `GET https://api.awp.sh/api/health` | REST health endpoint | - Network accessline 17
| Batch | `POST https://api.awp.sh/v2` | Up to 20 requests per batch, executed concurrently | - Network accessline 18
| Health Check | `GET https://api.awp.sh/api/health` | REST health endpoint |
references/commands-governance.md
- Network accessline 3
**API Endpoint**: `POST https://api.awp.sh/v2` (JSON-RPC 2.0)
references/commands-staking.md
- Network accessline 3
**API Endpoint**: `POST https://api.awp.sh/v2` (JSON-RPC 2.0) - Network accessline 11
# Reference only — actual operations are handled automatically by scripts/*.py # Fetch registry via JSON-RPC REGISTRY=$(curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 12
# Fetch registry via JSON-RPC REGISTRY=$(curl -s -X POST https://api.awp.sh/v2 \ -H "Content-Type: application/json" \ - Network accessline 13
REGISTRY=$(curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 191
# Get AWPRegistry nonce via JSON-RPC NONCE=$(curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 192
NONCE=$(curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 240
# 3. Submit to relay: curl -X POST https://api.awp.sh/api/relay/bind \ - Network accessline 241
curl -X POST https://api.awp.sh/api/relay/bind \ - Network accessline 245
# 4. Check relay status: curl -s https://api.awp.sh/api/relay/status/{txHash} - Network accessline 246
curl -s https://api.awp.sh/api/relay/status/{txHash} - Network accessline 283
curl -X POST https://api.awp.sh/api/relay/unbind \ - Network accessline 323
curl -X POST https://api.awp.sh/api/relay/set-recipient \ - Network accessline 468
curl -X POST https://api.awp.sh/api/relay/allocate \
references/commands-worknet.md
- Network accessline 3
**API Endpoint**: `POST https://api.awp.sh/v2` (JSON-RPC 2.0) - Network accessline 166
addr = '$WALLET_ADDR'.lower().replace('0x','').zfill(64) payload = json.dumps({'jsonrpc':'2.0','method':'eth_call','params':[{'to':'$AWP_TOKEN','data':'0x7ecebe00'+addr},'latest'],'id':1}).encode() req = urllib.request.Request('https://main - Network accessline 167
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Network accessline 168
req = urllib.request.Request('https://mainnet.base.org', data=payload, headers={'Content-Type':'application/json','User-Agent':'awp-skill/1.1'}) - Network accessline 169
r = json.loads(urllib.request.urlopen(req).read()) - Network accessline 209
# Get AWPRegistry nonce via JSON-RPC NONCE=$(curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 210
NONCE=$(curl -s -X POST https://api.awp.sh/v2 \ - Network accessline 262
curl -X POST https://api.awp.sh/api/relay/register-worknet \ - Network accessline 275
# Check relay status: curl -s https://api.awp.sh/api/relay/status/{txHash} - Network accessline 276
curl -s https://api.awp.sh/api/relay/status/{txHash} - Network accessline 426
curl -s -X POST https://api.awp.sh/v2 -H 'Content-Type: application/json' \
references/worknet-developer.md
- Network accessline 40
REST: https://api.awp.sh/api/... - Network accessline 41
JSON-RPC: POST https://api.awp.sh/v2 - Network accessline 451
- Operator: `0x61F73D4F5Fd574DB95226A618fe5DD787333ab81` - Strategy: Reserve → manual batchTransferTokenPacked - SkillsURI: `https://github.com/awp-worknet/mine-skill` - Network accessline 453
- SkillsURI: `https://github.com/awp-worknet/mine-skill` - Network accessline 457
[Credential-related source omitted] - Network accessline 459
- SkillsURI: `https://github.com/awp-worknet/prediction-skill`
scripts/awp-daemon.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 47
CHECK_INTERVAL = 300 # seconds (5 min default) _CHAIN_NAMES: dict[int, str] = {1: "ETH", 56: "BSC", 8453: "Base", 42161: "Arb"} WALLET_REPO = "https://github.com/awp-core/awp-wallet.git" - Network accessline 48
_CHAIN_NAMES: dict[int, str] = {1: "ETH", 56: "BSC", 8453: "Base", 42161: "Arb"} WALLET_REPO = "https://github.com/awp-core/awp-wallet.git" SCRIPT_DIR = Path(__file__).parent.resolve() - Network accessline 49
WALLET_REPO = "https://github.com/awp-core/awp-wallet.git" - Network accessline 259
try: req = urllib.request.Request(url, headers={"User-Agent": "awp-daemon/1.0"}) - Network accessline 260
req = urllib.request.Request(url, headers={"User-Agent": "awp-daemon/1.0"}) - Network accessline 261
with urllib.request.urlopen(req, timeout=10) as resp: - Network accessline 295
if not wallet_installed: phase = "wallet_not_installed" next_step = 'Tell your agent: "install awp-wallet from https://github.com/awp-core/awp-wallet"' - Network accessline 296
phase = "wallet_not_installed" next_step = 'Tell your agent: "install awp-wallet from https://github.com/awp-core/awp-wallet"' elif not wallet_addr: - Network accessline 297
next_step = 'Tell your agent: "install awp-wallet from https://github.com/awp-core/awp-wallet"' - Network accessline 329
url = "https://api.awp.sh/api/announcements" req = urllib.request.Request(url, headers={"User-Agent": "awp-daemon/1.0"}) - Network accessline 330
req = urllib.request.Request(url, headers={"User-Agent": "awp-daemon/1.0"}) - Network accessline 331
try: with urllib.request.urlopen(req, timeout=10) as resp: data = json.loads(resp.read()) - Network accessline 332
with urllib.request.urlopen(req, timeout=10) as resp: - Access to secretsline 519
[Credential-related source omitted] - Network accessline 677
text = fetch_text( "https://raw.githubusercontent.com/awp-core/awp-skill/main/CHANGELOG.md" - Network accessline 678
"https://raw.githubusercontent.com/awp-core/awp-skill/main/CHANGELOG.md" - Network accessline 716
local_ver = get_local_version() remote_ver = get_remote_version( "https://raw.githubusercontent.com/awp-core/awp-skill/main/SKILL.md" - Network accessline 717
remote_ver = get_remote_version( "https://raw.githubusercontent.com/awp-core/awp-skill/main/SKILL.md" ) - Network accessline 718
"https://raw.githubusercontent.com/awp-core/awp-skill/main/SKILL.md" - Network accessline 735
try: pkg_text = fetch_text( "https://raw.githubusercontent.com/awp-core/awp-wallet/main/package.json" - Network accessline 736
pkg_text = fetch_text( "https://raw.githubusercontent.com/awp-core/awp-wallet/main/package.json" ) - Network accessline 737
"https://raw.githubusercontent.com/awp-core/awp-wallet/main/package.json" - Network accessline 882
"awp-wallet is not installed. Cannot proceed without it.\n" "Tell your agent to install the official AWP wallet:\n" ' "install awp-wallet from https://github.com/awp-core/awp-wallet"', - Network accessline 883
"Tell your agent to install the official AWP wallet:\n" ' "install awp-wallet from https://github.com/awp-core/awp-wallet"', "warning", - Network accessline 884
' "install awp-wallet from https://github.com/awp-core/awp-wallet"',
scripts/awp_lib.py
- Executable scriptline 1
Executable file - Network accessline 25
API_BASE = "https://api.awp.sh/v2" - Network accessline 26
RELAY_BASE = "https://api.awp.sh/api" - Network accessline 27
RPC_URL = "https://mainnet.base.org" - Network accessline 31
_USER_AGENT = "awp-skill/1.4 (+https://github.com/awp-core/awp-skill)" - Network accessline 70
data = json.dumps(body).encode() req = urllib.request.Request( - Network accessline 71
req = urllib.request.Request( - Network accessline 80
) try: with urllib.request.urlopen(req, timeout=30) as resp: - Network accessline 81
try: with urllib.request.urlopen(req, timeout=30) as resp: return resp.status, json.loads(resp.read().decode()) - Network accessline 82
with urllib.request.urlopen(req, timeout=30) as resp: - Network accessline 97
body = {"jsonrpc": "2.0", "method": method, "params": params or {}, "id": 1} data = json.dumps(body).encode() req = urllib.request.Request( - Network accessline 98
data = json.dumps(body).encode() req = urllib.request.Request( API_BASE, - Network accessline 99
req = urllib.request.Request( - Network accessline 108
) try: with urllib.request.urlopen(req, timeout=15) as resp: - Network accessline 109
try: with urllib.request.urlopen(req, timeout=15) as resp: result = json.loads(resp.read().decode()) - Network accessline 110
with urllib.request.urlopen(req, timeout=15) as resp: - Network accessline 131
} body = json.dumps(payload).encode() req = urllib.request.Request( - Network accessline 132
body = json.dumps(payload).encode() req = urllib.request.Request( RPC_URL, - Network accessline 133
req = urllib.request.Request( - Network accessline 141
) try: with urllib.request.urlopen(req, timeout=15) as resp: - Network accessline 142
try: with urllib.request.urlopen(req, timeout=15) as resp: result = json.loads(resp.read().decode()) - Network accessline 143
with urllib.request.urlopen(req, timeout=15) as resp: - Network accessline 174
] body = json.dumps(payload).encode() req = urllib.request.Request( - Network accessline 175
body = json.dumps(payload).encode() req = urllib.request.Request( RPC_URL, - Network accessline 176
req = urllib.request.Request( - Network accessline 184
) try: with urllib.request.urlopen(req, timeout=15) as resp: - Network accessline 185
try: with urllib.request.urlopen(req, timeout=15) as resp: results = json.loads(resp.read().decode()) - Network accessline 186
with urllib.request.urlopen(req, timeout=15) as resp: - Access to secretsline 244
[Credential-related source omitted] - Access to secretsline 260
[Credential-related source omitted] - Access to secretsline 303
[Credential-related source omitted] - Network accessline 307
"awp-wallet not found in PATH or common install locations " "(~/.local/bin, ~/.npm-global/bin, ~/.yarn/bin, /usr/local/bin). " "Install it: https://github.com/awp-core/awp-wallet" - Network accessline 308
"(~/.local/bin, ~/.npm-global/bin, ~/.yarn/bin, /usr/local/bin). " "Install it: https://github.com/awp-core/awp-wallet" ) - Network accessline 309
"Install it: https://github.com/awp-core/awp-wallet" - Access to secretsline 449
[Credential-related source omitted] - Access to secretsline 541
[Credential-related source omitted]
scripts/onchain-add-position.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-allocate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-batch-withdraw.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-bind.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-claim.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-deallocate-all.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-deallocate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-deposit.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-onboard.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-partial-withdraw.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-propose.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-reallocate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-register.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-stake.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-switch-worknet.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-unstake.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-vote.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-withdraw.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-worknet-lifecycle.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-worknet-metadata.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/onchain-worknet-update.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/preflight.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 34
ADDR_RE = re.compile(r"^0x[0-9a-fA-F]{40}$") API_BASE = "https://api.awp.sh/v2" - Network accessline 35
API_BASE = "https://api.awp.sh/v2" - Network accessline 36
_USER_AGENT = "awp-skill/1.4 (+https://github.com/awp-core/awp-skill)" - Network accessline 89
{"jsonrpc": "2.0", "method": method, "params": params or {}, "id": 1} ).encode() req = urllib.request.Request( - Network accessline 90
).encode() req = urllib.request.Request( API_BASE, - Network accessline 91
req = urllib.request.Request( - Network accessline 96
) try: with urllib.request.urlopen(req, timeout=10) as resp: - Network accessline 97
try: with urllib.request.urlopen(req, timeout=10) as resp: data = json.loads(resp.read().decode()) - Network accessline 98
with urllib.request.urlopen(req, timeout=10) as resp: - Network accessline 168
"0/4", "install_wallet", "git clone https://github.com/awp-core/awp-wallet.git /tmp/awp-wallet-install && bash /tmp/awp-wallet-install/install.sh", - Network accessline 169
"install_wallet", "git clone https://github.com/awp-core/awp-wallet.git /tmp/awp-wallet-install && bash /tmp/awp-wallet-install/install.sh", "awp-wallet not installed. Install the wallet CLI first.", - Network accessline 170
"git clone https://github.com/awp-core/awp-wallet.git /tmp/awp-wallet-install && bash /tmp/awp-wallet-install/install.sh",
scripts/query-dao.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/query-status.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/query-worknet.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-allocate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-delegate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-onboard.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-propose.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-register-worknet.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-signal-propose.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-stake.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 198
time.sleep(3) try: req = urllib.request.Request( - Network accessline 199
try: req = urllib.request.Request( status_url, - Network accessline 200
req = urllib.request.Request( - Network accessline 202
headers={"User-Agent": _USER_AGENT}, ) with urllib.request.urlopen(req, timeout=10) as resp: - Network accessline 203
) with urllib.request.urlopen(req, timeout=10) as resp: status_data = json.loads(resp.read().decode()) - Network accessline 204
with urllib.request.urlopen(req, timeout=10) as resp:
scripts/relay-start.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-unbind.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/relay-vote.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/wallet-raw-call.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 69
const REGISTRY_URL = "https://api.awp.sh/v2" - Network accessline 102
while (true) { try { const resp = await fetch(REGISTRY_URL, { - Network accessline 103
try { const resp = await fetch(REGISTRY_URL, { method: "POST", - Network accessline 104
const resp = await fetch(REGISTRY_URL, { - Network accessline 140
let remoteAddresses = null try { const resp = await fetch(REGISTRY_URL, { - Network accessline 141
try { const resp = await fetch(REGISTRY_URL, { method: "POST", - Network accessline 142
const resp = await fetch(REGISTRY_URL, {
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 307 facts
- Network access in prose of documentationCHANGELOG.md:158Low confidence
- Network access in prose of documentationCHANGELOG.md:159Low confidence
- Network access in prose of documentationCHANGELOG.md:664Low confidence
- Network access in prose of documentationCHANGELOG.md:665Low confidence
- Network access in prose of documentationCHANGELOG.md:666Low confidence
- Network access in prose of documentationCHANGELOG.md:994Low confidence
- Network access in prose of documentationCHANGELOG.md:995Low confidence
- Network access in prose of documentationCHANGELOG.md:996Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueCHANGELOG.md:1052Low confidence
- Network access in prose of documentationCHANGELOG.md:1290Low confidence
- Network access in prose of documentationCHANGELOG.md:1487Low confidence
- Network access in prose of documentationCHANGELOG.md:1488Low confidence
- Network access in prose of documentationCHANGELOG.md:1489Low confidence
- Network access in prose of documentationCHANGELOG.md:1490Low confidence
- Network access in prose of documentationCHANGELOG.md:1492Low confidence
- Network access in prose of documentationCHANGELOG.md:1533Low confidence
- Network access in prose of documentationCHANGELOG.md:1534Low confidence
- Network access in prose of documentationCHANGELOG.md:1538Low confidence
- Dangerous shell operation in prose of documentationCHANGELOG.md:1539Low confidence
- Network access in prose of documentationCHANGELOG.md:1539Low confidence
- Dangerous shell operation in prose of documentationCHANGELOG.md:1540Low confidence
- Network access in prose of documentationCHANGELOG.md:1540Low confidence
- Network access in prose of documentationCHANGELOG.md:1552Low confidence
- Dangerous shell operation in prose of documentationCHANGELOG.md:1553Low confidence
- Network access in prose of documentationCHANGELOG.md:1553Low confidence
- Network access in prose of documentationCHANGELOG.md:1559Low confidence
- Dangerous shell operation in prose of documentationCHANGELOG.md:1560Low confidence
- Network access in prose of documentationCHANGELOG.md:1560Low confidence
- Network access in prose of documentationCHANGELOG.md:1567Low confidence
- Dangerous shell operation in prose of documentationCHANGELOG.md:1568Low confidence
- Network access in prose of documentationCHANGELOG.md:1568Low confidence
- Network access in prose of documentationCHANGELOG.md:1571Low confidence
- Network access in prose of documentationCHANGELOG.md:1573Low confidence
- Network access in prose of documentationCHANGELOG.md:1581Low confidence
- Network access in prose of documentationCHANGELOG.md:1582Low confidence
- Dangerous shell operation in prose of documentationCHANGELOG.md:1583Low confidence
- Network access in prose of documentationCHANGELOG.md:1583Low confidence
- Network access in prose of documentationCHANGELOG.md:1595Low confidence
- Network access in prose of documentationCHANGELOG.md:1596Low confidence
- Network access in prose of documentationCHANGELOG.md:1597Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueCHANGELOG.md:1608Low confidence
- Network access in prose of documentationCHANGELOG.md:1635Low confidence
- Network access in prose of documentationCHANGELOG.md:1636Low confidence
- Network access in prose of documentationCHANGELOG.md:1637Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueCHANGELOG.md:1642Low confidence
- Network access in prose of documentationCHANGELOG.md:1654Low confidence
- Network access in code of documentationCHANGELOG.md:1661Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueCHANGELOG.md:1768Low confidence
- Network access in prose of documentationCHANGELOG.md:1775Low confidence
- Network access in code of documentationCHANGELOG.md:1786Low confidence
and 257 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.