/ Directory / Playground / AI-bounty-skill
● Community aelf-hzz780 ⚡ Instant

AI-bounty-skill

by aelf-hzz780 · aelf-hzz780/AI-bounty-skill

Claude Code skill that walks you through claiming the aelf AI bounty on tDVV via RewardClaimContract — supports both EOA and Portkey CA wallets.

A narrow-purpose skill: given you already have an aelf AA/CA wallet set up (non-custodial, not an exchange address), it guides Claude through calling Claim() or ClaimByPortkeyToCa() correctly on the RewardClaimContract. It does not hold keys itself — signing stays in Portkey. Treat it as instructional glue, not a wallet.

Why use it

Key features

Live Demo

What it looks like in practice

ai-bounty-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ai-bounty-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/aelf-hzz780/AI-bounty-skill",
        "~/.claude/skills/AI-bounty-skill"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ai-bounty-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/aelf-hzz780/AI-bounty-skill",
        "~/.claude/skills/AI-bounty-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ai-bounty-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/aelf-hzz780/AI-bounty-skill",
        "~/.claude/skills/AI-bounty-skill"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ai-bounty-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/aelf-hzz780/AI-bounty-skill",
        "~/.claude/skills/AI-bounty-skill"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ai-bounty-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/aelf-hzz780/AI-bounty-skill",
        "~/.claude/skills/AI-bounty-skill"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "ai-bounty-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/aelf-hzz780/AI-bounty-skill",
          "~/.claude/skills/AI-bounty-skill"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add ai-bounty-skill -- git clone https://github.com/aelf-hzz780/AI-bounty-skill ~/.claude/skills/AI-bounty-skill

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use AI-bounty-skill

Claim an aelf AI bounty from an EOA wallet

👤 aelf developers holding the bounty in a self-custody EOA ⏱ ~15 min intermediate

When to use: You were rewarded in the aelf AI bounty program and want Claude to walk the RewardClaimContract Claim() call instead of hand-rolling it.

Prerequisites
  • aelf EOA wallet with gas on tDVV — Fund your address with ELF on the tDVV sidechain
  • Skill cloned into ~/.claude/skills/AI-bounty-skill — git clone https://github.com/aelf-hzz780/AI-bounty-skill ~/.claude/skills/AI-bounty-skill
Flow
  1. Load your wallet context locally and ask the skill to lay out the call
    Use the AI-bounty-skill to prepare a Claim() transaction on RewardClaimContract for my EOA. Show me the args and the signing preview before broadcast.✓ Copied
    → Claude enumerates contract address, method, and args — pauses for confirmation
  2. Sign and broadcast via your own tool
    Looks good — give me the signed tx payload to send via my local aelf CLI.✓ Copied
    → Payload ready, you broadcast, claim lands

Outcome: Bounty claimed with a transaction hash you control, no custodial middleman.

Pitfalls
  • Using an exchange deposit address as target — Use a self-custody address — exchanges don't route the reward metadata correctly

Claim the bounty through a Portkey CA (account abstraction) wallet

👤 Users whose bounty is tied to a Portkey-managed social login ⏱ ~15 min intermediate

When to use: Your aelf identity is a Portkey CA, not a raw EOA.

Prerequisites
  • Portkey account recovery / login prepared — Use your registered email to recover/login at portkey.finance
Flow
  1. Ask Claude to assemble a ClaimByPortkeyToCa() call
    Use AI-bounty-skill to prepare ClaimByPortkeyToCa() — my CA hash is <hash>. Show me what will be signed by Portkey.✓ Copied
    → Claude outputs the exact method and args, and tells you Portkey will prompt for signature
  2. Approve in Portkey
    Send it — I'll approve in Portkey.✓ Copied
    → Portkey prompts, you approve, tx confirmed

Outcome: Bounty lands in your Portkey-managed CA address.

Pitfalls
  • Mixing EOA and CA code paths — Pick the one that matches how the bounty was assigned — the skill has separate flows for a reason

Combinations

Pair with other MCPs for X10 leverage

ai-bounty-skill + aelf-skill

Use aelf-skills to bootstrap your dev environment and verify wallet, then AI-bounty-skill to claim

Run aelf-skills health to confirm my wallet and node are working, then use AI-bounty-skill to prepare my bounty claim.✓ Copied
ai-bounty-skill + filesystem

Read your local wallet config to confirm the correct address before claiming

Read my aelf wallet config at ~/.aelf/keys/, confirm the address, then use AI-bounty-skill to prepare the Claim() call for that address.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
prepare_eoa_claim wallet address, bounty id EOA holder ready to claim 0 — local prompt work
prepare_portkey_claim CA hash, bounty id Portkey CA holder ready to claim 0

Cost & Limits

What this costs to run

API quota
None — skill is prompts only
Tokens per call
<2k
Monetary
Free skill. You pay aelf tDVV gas on broadcast.
Tip
Batch any other pending actions into the same session to amortize context setup.

Security

Permissions, secrets, blast radius

Credential storage: No credentials inside the skill. Private keys stay in your local aelf tool or Portkey.
Data egress: None by the skill itself. Broadcasting hits aelf tDVV RPC.
Never grant: Paste your seed phrase into the chat — the skill never asks for it

Troubleshooting

Common errors and fixes

Claim() reverts with 'not eligible'

Confirm the bounty is assigned to the exact address you're calling from, on tDVV (not mainchain).

Verify: Check RewardClaimContract view methods for your address
Portkey prompt never appears

Make sure you're logged into Portkey in the same browser session as the tool that relays the tx.

Transaction fails with insufficient gas

Fund your tDVV address with ELF tokens for gas. Use the aelf faucet for testnet or transfer from mainchain via cross-chain bridge.

Verify: Check balance via aelf CLI: aelf-command call -a <address> AElf.ContractNames.Token GetBalance

Alternatives

AI-bounty-skill vs others

AlternativeWhen to use it insteadTradeoff
Direct aelf CLIYou're comfortable hand-writing the contract callNo guidance, but no skill dependency either

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills