skills/alpha-arcade-interaction/SKILL.md
Trade on Alpha Arcade prediction markets on Algorand — browse markets, read orderbooks, place limit/market orders, manage positions, cancel/amend orders, split/merge shares, and claim winnings. Use when user asks about prediction markets, event betting, YES/NO shares, orderbooks, or Alpha Arcade.
npx skillsauth add goplausible/algorand-mcp alpha-arcade-interactionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Interact with Alpha Arcade prediction markets via the Alpha Arcade MCP server (15 tools across read-only and trading categories).
Alpha Arcade tools are built into the Algorand MCP server. Trading uses the local wallet (OS keychain) — no separate mnemonic needed.
| Variable | Required | Description |
|----------|----------|-------------|
| ALPHA_API_KEY | For reward markets | Alpha Arcade API key |
| ALPHA_API_BASE_URL | No | API base URL (default: https://platform.alphaarcade.com/api) |
Read-only tools work without a wallet. Trading tools require an active wallet account (see wallet_get_info).
All prices and quantities in tool inputs use microunits: 1,000,000 = $1.00 or 1 share.
| Human value | Microunit value | |---|---| | $0.50 | 500,000 | | $0.05 slippage | 50,000 | | 1 share | 1,000,000 | | 30 shares | 30,000,000 |
Tool outputs from read tools (get_orderbook, get_open_orders, get_positions) return pre-formatted strings. Write tools accept raw microunit integers.
Critical: The yesProb and noProb fields returned by market data (e.g., get_market, get_live_markets) are in microunits (0–1,000,000), NOT percentages (0–100).
| yesProb value | Meaning | Display price |
|---|---|---|
| 862,500 | 86.25% chance | $0.86 |
| 500,000 | 50% chance | $0.50 |
| 50,000 | 5% chance | $0.05 |
To convert for display: price = yesProb / 1,000,000 → e.g., 862500 / 1000000 = $0.86
Do NOT divide by 100 or treat as a percentage — this produces values like 8,625,000,000 which overflow uint64 and cause transaction failures.
A standard yes/no market has a single marketAppId, yesAssetId, and noAssetId. Use marketAppId for all trading calls.
Multi-choice markets (e.g., "Who wins the election?") have an options[] array. Each option is its own binary market with its own marketAppId:
{
"title": "Presidential Election Winner 2028",
"options": [
{ "title": "Candidate A", "marketAppId": 100001, "yesAssetId": 111, "noAssetId": 112 },
{ "title": "Candidate B", "marketAppId": 100002, "yesAssetId": 113, "noAssetId": 114 }
]
}
Always trade using the option's marketAppId, not the parent.
The orderbook has four sides: YES bids, YES asks, NO bids, NO asks.
Because YES + NO always = $1.00:
The get_orderbook tool returns a unified YES-perspective view that merges all 4 sides automatically.
create_limit_order): Sits on the orderbook at your exact price. No matching happens. Appears in get_open_orders as an unfilled order until matched or cancelled.create_market_order): Auto-matches against existing orders within your slippage tolerance. Returns the actual fill price. Filled immediately — does NOT appear in open orders.get_positions): YES/NO token balances the wallet holds. These come from filled market orders, split shares, or received transfers. Positions represent ownership of outcome tokens.get_open_orders): Unfilled limit orders sitting on the orderbook. Each has an escrowAppId that can be used to cancel or amend.A common mistake is checking only open orders after a market order — market orders fill immediately and become positions, not open orders. Always check both.
Every order requires both ALGO and USDC/tokens:
If a trade fails with an "overspend" error, the wallet lacks sufficient ALGO or USDC. Check both balances before retrying.
| Tool | Purpose |
|------|---------|
| alpha_get_live_markets | Fetch all live markets with prices, volume, categories |
| alpha_get_reward_markets | Fetch markets with liquidity rewards (requires ALPHA_API_KEY) |
| alpha_get_market | Fetch full details for a single market by ID |
| alpha_get_orderbook | Fetch unified YES-perspective orderbook for a market |
| alpha_get_open_orders | Fetch all open orders for a wallet on a specific market |
| alpha_get_positions | Fetch all YES/NO token positions for a wallet across all markets |
| Tool | Purpose |
|------|---------|
| alpha_create_limit_order | Place a limit order at a specific price |
| alpha_create_market_order | Place a market order with auto-matching and slippage |
| alpha_cancel_order | Cancel an open order (refunds collateral) |
| alpha_amend_order | Edit an existing unfilled order in-place |
| alpha_propose_match | Propose a match between a maker order and your wallet |
| alpha_split_shares | Split USDC into equal YES + NO tokens |
| alpha_merge_shares | Merge equal YES + NO tokens back into USDC |
| alpha_claim | Claim USDC from a resolved market |
get_live_markets — find a market (or get_reward_markets for markets with liquidity rewards)get_orderbook — check available liquiditycreate_market_order (auto-matches) or create_limit_order (rests on book)escrowAppId — you need it to cancelget_positions — see all YES/NO token balances with market titles and asset IDsget_open_orders with the marketAppIdget_open_orders — find the escrowAppIdamend_order with marketAppId, escrowAppId, new price, and new quantityget_open_orders — find the escrowAppId and owner addresscancel_order with marketAppId, escrowAppId, and orderOwnerget_positions — find markets with token balances; note the yesAssetId or noAssetIdclaim with marketAppId and the winning token's assetIdsplit_shares — convert USDC into equal YES + NO tokensmerge_shares — convert matched YES + NO tokens back to USDCyesProb / noProb range from 0–1,000,000 (not 0–100). Treating them as percentages causes uint64 overflow and transaction failures. To display: divide by 1,000,000. To pass as price: use as-is.get_positions for token balances — not get_open_orders. Open orders only shows unfilled limit orders.marketAppId for trading. Use options[].marketAppId.get_orderbook tool handles this automatically.wallet_get_info.network: "testnet" for testing.tools
Route and execute optimal token swaps on Algorand using Haystack Router via Algorand MCP tools. Use when getting best-price quotes across multiple Algorand DEXes and LST protocols, executing atomic swaps, and checking asset opt-in — all through the Algorand MCP server.
tools
Interact with Algorand blockchain via the Algorand MCP server — wallet operations, ALGO/ASA transactions, smart contracts, account info, NFD lookups, atomic groups, Tinyman swaps, Haystack Router best-price swaps, Alpha Arcade prediction markets, Pera asset verification, TEAL compilation, knowledge base. Use when user asks about Algorand wallet, balances, sending ALGO or tokens, asset opt-in, transactions, NFD names, DEX swaps, DEX aggregation, best-price routing, prediction markets, Alpha Arcade, asset verification, smart contracts, or account details.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.