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.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit b7dbddf19e81c6e45772b8331d8177d31353e3e3

232GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

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

Oct 25, 2026Oct 25, 2026232

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

21,741 tokens

When the skill is activated

Reference documents

67,782 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Requirements & Security
  2. API — JSON-RPC 2.0
  3. Contract Addresses (same on all 4 chains)
  4. On Skill Load
  5. User Commands
  6. Onboarding Flow
  7. Intent Routing
  8. Output Format
  9. Agent Wallet & Transaction Safety
  10. Rules
  11. Error Recovery Protocol
  12. Script Output Contract
  13. Bundled Scripts
  14. Security Controls
  15. Vanity Salt Endpoints
  16. Wallet Setup
  17. Gas Routing
  18. Pre-Flight Checklist (before ANY write action)
  19. Query (read-only, no wallet needed)
  20. Staking & Reward Model — How AWP Actually Works
  21. Registration & Staking (load commands-staking.md first)
  22. Worknet Management (wallet + AWPWorkNet ownership — load commands-worknet.md first)
  23. Governance (wallet + veAWP positions)
  24. Monitor (real-time WebSocket, no wallet needed)
  25. Error Recovery

Scripts executed separately

  • scripts/awp-daemon.py
  • scripts/awp_lib.py
  • scripts/onchain-add-position.py
  • scripts/onchain-allocate.py
  • scripts/onchain-batch-withdraw.py
  • scripts/onchain-bind.py
  • scripts/onchain-claim.py
  • scripts/onchain-deallocate-all.py
  • scripts/onchain-deallocate.py
  • scripts/onchain-deposit.py
  • scripts/onchain-onboard.py
  • scripts/onchain-partial-withdraw.py
  • scripts/onchain-propose.py
  • scripts/onchain-reallocate.py
  • scripts/onchain-register.py
  • scripts/onchain-stake.py
  • scripts/onchain-switch-worknet.py
  • scripts/onchain-unstake.py
  • scripts/onchain-vote.py
  • scripts/onchain-withdraw.py
  • scripts/onchain-worknet-lifecycle.py
  • scripts/onchain-worknet-metadata.py
  • scripts/onchain-worknet-update.py
  • scripts/preflight.py
  • scripts/query-dao.py
  • scripts/query-status.py
  • scripts/query-worknet.py
  • scripts/relay-allocate.py
  • scripts/relay-delegate.py
  • scripts/relay-onboard.py
  • scripts/relay-propose.py
  • scripts/relay-register-worknet.py
  • scripts/relay-signal-propose.py
  • scripts/relay-stake.py
  • scripts/relay-start.py
  • scripts/relay-unbind.py
  • scripts/relay-vote.py
  • scripts/wallet-raw-call.mjs

Files

  • .gitignoreasset163 bytes
  • CHANGELOG.mddoc93,190 bytes
  • LICENSEasset1,062 bytes
  • README.mddoc21,463 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • SKILL.mdcore83,390 bytes
  • assets/banner.pngasset208,252 bytes
  • references/api-reference.mddoc21,287 bytes
  • references/commands-governance.mddoc6,179 bytes
  • references/commands-staking.mddoc18,523 bytes
  • references/commands-worknet.mddoc16,555 bytes
  • references/protocol.mddoc15,845 bytes
  • references/worknet-developer.mddoc24,809 bytes
  • scripts/awp-daemon.pyruns42,705 bytes
  • scripts/awp_lib.pyruns28,527 bytes
  • scripts/onchain-add-position.pyruns3,703 bytes
  • scripts/onchain-allocate.pyruns2,647 bytes
  • scripts/onchain-batch-withdraw.pyruns1,720 bytes
  • scripts/onchain-bind.pyruns1,716 bytes
  • scripts/onchain-claim.pyruns3,192 bytes
  • scripts/onchain-deallocate-all.pyruns1,390 bytes
  • scripts/onchain-deallocate.pyruns1,635 bytes
  • scripts/onchain-deposit.pyruns1,970 bytes
  • scripts/onchain-onboard.pyruns9,396 bytes
  • scripts/onchain-partial-withdraw.pyruns1,903 bytes
  • scripts/onchain-propose.pyruns8,272 bytes
  • scripts/onchain-reallocate.pyruns2,526 bytes
  • scripts/onchain-register.pyruns1,739 bytes
  • scripts/onchain-stake.pyruns4,965 bytes
  • scripts/onchain-switch-worknet.pyruns4,912 bytes
  • scripts/onchain-unstake.pyruns5,830 bytes
  • scripts/onchain-vote.pyruns5,875 bytes
  • scripts/onchain-withdraw.pyruns1,545 bytes
  • scripts/onchain-worknet-lifecycle.pyruns2,884 bytes
  • scripts/onchain-worknet-metadata.pyruns2,402 bytes
  • scripts/onchain-worknet-update.pyruns2,932 bytes
  • scripts/preflight.pyruns13,838 bytes
  • scripts/query-dao.pyruns8,425 bytes
  • scripts/query-status.pyruns8,650 bytes
  • scripts/query-worknet.pyruns7,974 bytes
  • scripts/relay-allocate.pyruns5,703 bytes
  • scripts/relay-delegate.pyruns3,543 bytes
  • scripts/relay-onboard.pyruns8,512 bytes
  • scripts/relay-propose.pyruns6,429 bytes
  • scripts/relay-register-worknet.pyruns8,831 bytes
  • scripts/relay-signal-propose.pyruns5,882 bytes
  • scripts/relay-stake.pyruns9,962 bytes
  • scripts/relay-start.pyruns6,429 bytes
  • scripts/relay-unbind.pyruns3,639 bytes
  • scripts/relay-vote.pyruns6,282 bytes
  • scripts/wallet-raw-call.mjsruns13,141 bytes
  • skill-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 GitHub

Skills 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 shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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
    &nbsp;   <a href="https://github.com/openclaw/openclaw"><img src="https://img.shields.io/badge/OpenClaw-FF4500?style=for-the-badge" alt="OpenClaw"></a>   &nbsp;
  • 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
    &nbsp;   <a href="https://cursor.sh"><img src="https://img.shields.io/badge/Cursor-000000?style=for-the-badge" alt="Cursor"></a>   &nbsp;
  • 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
    &nbsp;   <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>   &nbsp;
  • 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
    &nbsp;   <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>   &nbsp;
  • 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
    &nbsp;   <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, {

skill-reference.md

  • Network accessline 77
    **Base URL:** `https://api.awp.sh/v2`
  • Network accessline 393
    Base URL: https://api.awp.sh

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

and 257 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.