> For the complete documentation index, see [llms.txt](https://docs.punch.win/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.punch.win/trading/agent-skill.md).

# Agent Skill

Trade PUNCH.WIN from your terminal. An open-source skill lets a local AI agent read markets and trade them in natural language.

***

## What Your Agent Can Do

| You Say                         | It Does                                 |
| ------------------------------- | --------------------------------------- |
| "List active prediction events" | Event cards                             |
| "Show the BTC 1-minute market"  | Prices and orderbook                    |
| "Buy 5 of UP in market `<id>`"  | Preview, then signed and sent           |
| "Show my balances"              | Gas, collateral, positions              |
| "Redeem my winning shares"      | Settled back into collateral            |
| "Claim my POINT"                | Enters the season if needed, then mints |

Reads need no wallet. Writes sign locally and preview first.

***

## Markets

| Market  | Collateral | Money | Availability              |
| ------- | ---------- | ----- | ------------------------- |
| `usd`   | pONEUSD    | Real  | Always open               |
| `point` | POINT      | Free  | During an F2P season only |

Without `--market`, the skill picks POINT while a season runs and `usd` otherwise, and tells you which it chose. The retired `bill` and `cross` markets are refused.

***

## Install

Paste this into your agent:

```
Clone https://github.com/to-nexus/skill-one-punch into a temporary directory and
run the install.sh script inside it to install the skill-one-punch skill into my
Claude Code environment. Tell me the result in one line when you're done.
```

The installer symlinks the skill into `~/.claude/skills/` and installs its Node dependencies. Node 20 or newer is required.

### Where It Runs

Local agent runtimes only: Claude Code, Cursor, Codex CLI, Aider, Goose, Gemini CLI, OpenInterpreter, OpenClaw.

Hosted chat cannot execute it. Claude.ai on the web, ChatGPT on the web, and Gemini on the web have no local shell, so the skill will not run there.

***

## Wallet Setup

The skill signs and submits transactions itself, so it needs a key it can read. **Use a dedicated wallet, not your main one.**

1. Create a fresh wallet. Any tool that gives you the private key works.
2. Fund it with only what you intend to risk, plus a little CROSS for gas.
3. Put the key in the skill's `.env` file and `chmod 600` it. Never paste it into chat or a command argument.

```bash
PRIVATE_KEY=0x...        # 64 hex characters
WALLET_ADDRESS=0x...     # the matching address
MAX_TRADE_ONEUSD=10      # cap per trade on the real-money market
MAX_TRADE_POINT=1000     # cap per trade on the free market
```

If your PUNCH.WIN account was created with Google or Apple login, it lives in a CROSSx embedded wallet. You can export that key from the CROSSx app, but **an exported key carries full authority and cannot be revoked.** Moving only what you need into a dedicated wallet is safer.

### No Collateral Yet

Fund the wallet on PUNCH.WIN under **Deposit USD**. Two routes are available: deposit straight from your **ONEpocket** balance, or use **Transfer Crypto** for a reusable QR address. Transfer Crypto accepts Base USDT with a 6 USDT minimum and delivers pONEUSD to your ONEchain wallet.

***

## Multiple Wallets

Set a seed instead of a single key and the skill derives wallets at `m/44'/60'/0'/0/N`.

```bash
MNEMONIC="word word word ..."
WALLET_COUNT=5
```

| Command                                    | Effect                                                |
| ------------------------------------------ | ----------------------------------------------------- |
| `wallets.mjs list`                         | Every derived wallet with gas and collateral balances |
| `wallets.mjs fund --amount 0.01 --confirm` | Spread gas from wallet 0 to the rest                  |
| any command with `--wallet=<n>`            | Act as that wallet                                    |

One seed is easier to hold safely than several loose keys, and derivation keeps your addresses attributable rather than anonymous.

Extra addresses are for isolating strategies and keeping most funds away from the wallet that trades. Free-to-play rewards and season prizes are awarded **per operator, not per address.**

***

## Free to Play

POINT is claimable and scored in weekly seasons with a prize pool paid in ONE. The whole loop runs from the terminal.

| Command                      | What It Does                                       |
| ---------------------------- | -------------------------------------------------- |
| `f2p-status.mjs --me`        | Season state, prize pool, your claimable POINT     |
| `enter-season.mjs --confirm` | Enter the current season. Required once per season |
| `claim.mjs --confirm`        | Request authorization and mint your POINT on-chain |

`claim` enters the season on its own when the service asks for it, and follows the referral sweep across batches. Claim transactions cost no fee, though the wallet still needs a dust CROSS balance for the network to accept them.

***

## Command Reference

| Command                                 | Auth             | Writes   |
| --------------------------------------- | ---------------- | -------- |
| `list-events` `get-event` `get-results` | none             | read     |
| `balance` `wallets list`                | address          | read     |
| `f2p-status`                            | wallet signature | read     |
| `buy` `sell`                            | wallet signature | on-chain |
| `redeem` `enter-season` `claim`         | wallet signature | on-chain |
| `wallets fund`                          | wallet signature | on-chain |

Every mutating command previews by default. Nothing is signed or submitted until you pass `--live` or `--confirm`.

***

## Safety Rails

| Rail               | Behavior                                                                          |
| ------------------ | --------------------------------------------------------------------------------- |
| Chain check        | The RPC must report chain 612055 or the command aborts                            |
| Preview first      | Trades and claims show their full plan before execution                           |
| Per-market caps    | Real money and free money have separate limits                                    |
| Address match      | The signer's address must match the wallet you declared                           |
| No session reuse   | The skill never reads browser cookies or saved logins                             |
| Secrets stay local | Keys are read from the environment or a local file, never from a command argument |

***

## Source

[github.com/to-nexus/skill-one-punch](https://github.com/to-nexus/skill-one-punch) — MIT licensed. Issues and pull requests welcome.

On-chain transactions are real and irreversible. Test with small amounts. Nothing here is financial advice, and prediction markets are restricted in some jurisdictions.
