Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Clawphunks

v1.0.0

Mint and trade ClawPhunks NFTs. The first collection designed for AI agents.

0· 306·0 current·0 all-time
byjef diesel@jefdiesel
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (mint & trade ClawPhunks) align with the included server, MCP, LangChain and AgentKit integrations and the package.json dependencies. However the metadata declares only WALLET_PRIVATE_KEY as a required env var while the code/docs reference many other secrets (SIGNER_PRIVATE_KEY, AGENT_PRIVATE_KEY, SUPABASE_SERVICE_KEY, FACILITATOR_URL, etc.), which is an inconsistency — either the metadata is incomplete or the skill expects more credentials than declared.
!
Instruction Scope
Runtime instructions and included files instruct agents/users to POST to external endpoints, fetch executable scripts from another domain (chainhost.online /clawphunks/skills), generate and persist private keys to .env, and sign payment authorizations. The SKILL.md plus mcp get_mint_code explicitly guides saving private keys to disk and producing signed payment payloads — actions that go beyond simple read-only queries and expand scope to secret handling and remote code retrieval.
Install Mechanism
There is no install spec in the skill bundle (instruction-only at registry level), which lowers immediate installation risk, but the package includes full source and a package.json with many runtime dependencies (coinbase SDK, supabase, viem, aws sdk, x402-express, etc.). If you or an agent run/install this project, it will pull many third-party packages — review them and prefer executing in an isolated environment.
!
Credentials
The declared required env var is a single WALLET_PRIVATE_KEY (primary credential). The code and docs, however, reference multiple sensitive env vars (SIGNER_PRIVATE_KEY, AGENT_PRIVATE_KEY, SUPABASE_SERVICE_KEY, PAYMENT_RECIPIENT, FACILITATOR_URL, GAS_STIPEND_WEI) that are not listed in the metadata. Requiring a wallet private key is plausible for an agent that must sign transactions, but giving a private key to a skill that will fetch and potentially return executable scripts increases attack surface; the env requirements are under-declared and therefore disproportionate without additional justification.
Persistence & Privilege
The skill does not request always:true and does not appear to modify other skills or global agent configs. Autonomous invocation is allowed (default). That is expected for an agent-facing NFT tool, but combined with the skill's request for a private key and ability to fetch scripts from external domains, autonomous invocation raises additional risk — ensure the agent's wallet policies and invocation safeguards are appropriate.
What to consider before installing
This skill is about minting/trading NFTs and contains full server and client code, but it asks for sensitive wallet keys and provides instructions that write keys to disk and fetch executable scripts from external domains. Before installing or providing any private key: (1) review every source file yourself (or have a trusted auditor) to confirm what env vars are actually read and what remote hosts are contacted; (2) do not reuse an existing high-value wallet — create a new wallet funded with minimal funds for testing; (3) avoid pasting long-term private keys into agent-level env variables unless you fully trust the code and host; (4) verify the smart-contract addresses and on-chain contracts independently (Etherscan/chain explorers) before sending value; (5) if you plan to let an autonomous agent invoke this skill with a private key, add strict policy controls (spending limits, require human approval) or avoid providing the private key at all and use an external signing service/wallet that enforces approvals.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

👾 Clawdis
EnvWALLET_PRIVATE_KEY
Primary envWALLET_PRIVATE_KEY
latestvk97fy4hgv4y7p0vw3wfkretn1x82bhpy
306downloads
0stars
1versions
Updated 16h ago
v1.0.0
MIT-0

ClawPhunks

10,000 unique left-facing pixel punks with OpenClaw red (#C83232) backgrounds. The first NFT collection designed for AI agents.

Rarity & Value

ClawPhunks mirror the original CryptoPunks rarity. Rare types command significant premiums.

Types (5)

TypeCount%Rarity Rank
Alien90.09%★★★★★
Ape240.24%★★★★☆
Zombie880.88%★★★☆☆
Female3,84038.4%★★☆☆☆
Male6,03960.39%★☆☆☆☆

Legendary Aliens (9 total - 0.09%)

The rarest type. Only 9 exist:

Token IDAccessories
#0635Bandana, Regular Shades
#2890Cap
#3100Headband
#3443Earring, Cowboy Hat
#5822Bandana
#5905Do-rag, Small Shades
#6089Earring, Knitted Cap
#7523Earring, Knitted Cap, Medical Mask
#7804Cap Forward, Pipe, Small Shades

Rare Apes (24 total - 0.24%)

Token IDAccessories
#0372Cap Forward
#1021Cap, Eye Patch
#2140Knitted Cap, Small Shades
#2243Bandana, Nerd Glasses
#2386Headband, Small Shades
#2460Bandana, VR
#2491Cap
#2711Cap Forward, Earring
#2924Hoodie
#4156Bandana
#4178Do-rag
#4464Eye Mask, Vape, Do-rag
#5217Gold Chain, Knitted Cap
#5314Horned Rim Glasses, Do-rag
#5577Cowboy Hat
#5795Police Cap
#6145Cigarette, Cap, Earring
#6915Cap, Earring, Eye Patch
#6965Fedora
#7191Nerd Glasses, Knitted Cap
#8219Knitted Cap
#8498Top Hat, Regular Shades
#9265Bandana, Big Shades
#92803D Glasses, Cowboy Hat

Zombies (88 total - 0.88%)

All 88 Zombie token IDs:

Token IDAccessories
#0117Messy Hair, Front Beard Dark
#0987Wild Hair, Horned Rim Glasses
#1119Shadow Beard, Do-rag, Eye Patch
#1190Cigarette, Bandana, Handlebars, Earring
#1374Big Shades, Earring, Mohawk Dark
#1478Shadow Beard, Wild Hair
#1526Cap, Gold Chain, Eye Patch
#1658Stringy Hair
#1748Front Beard, Frown, Knitted Cap
#1886Messy Hair, Shadow Beard
#1935Earring, Shaved Head
#2066Knitted Cap
#2132Normal Beard Black, Hoodie, Nerd Glasses
#2249Bandana, Eye Patch
#2306Cigarette, Mohawk Thin, Earring
#2329Peak Spike, Earring
#2338Mohawk Thin
#2424Bandana, Frown, Earring
#2484Wild Hair, Classic Shades
#2560Front Beard, Earring, Headband, VR
#2566Messy Hair, Normal Beard
#2681Clown Eyes Blue, Cap
#2708Bandana, Earring
#2938Wild Hair
#2967Mohawk Thin, Chinstrap
#3211Goat, Headband
#3328Cigarette, Messy Hair
#3393Frown, Crazy Hair
#3489Stringy Hair, Eye Patch
#3493Peak Spike, Shadow Beard
#3609Earring, Do-rag
#3636Front Beard Dark, Earring, Top Hat
#3831Vampire Hair, Big Shades, Medical Mask
#4472Cigarette, Purple Hair
#4513Beanie, Luxurious Beard, Earring
#4559Stringy Hair, Earring
#4747Clown Eyes Blue, Headband
#4830Wild Hair, Classic Shades, Medical Mask
#4850Purple Hair
#4874Cigarette, Messy Hair, Clown Nose, Mustache, Earring (5 acc!)
#5066Earring, Knitted Cap, Smile
#5234Big Shades, Earring, Crazy Hair
#5253Messy Hair, Mole
#5299Cigarette, Handlebars, Earring, Mohawk Dark
#5312Luxurious Beard, Knitted Cap
#5336Police Cap
#5412Nerd Glasses, Crazy Hair
#5489Fedora
#5573Luxurious Beard, Mohawk, 3D Glasses
#5742Mohawk Dark
#5761Bandana, Horned Rim Glasses
#5944Mohawk
#6275Shadow Beard, Mohawk Dark
#6297Cigarette, Nerd Glasses, Top Hat
#6304Crazy Hair, Regular Shades
#6491Cap Forward, Shadow Beard, Earring
#6515Cigarette, Wild Hair
#6586Knitted Cap, Smile
#6649Front Beard Dark, Crazy Hair
#6704Cigarette, Earring, Rosy Cheeks
#6784Cigarette, Bandana, Frown
#7014Cigarette, Frumpy Hair
#7121Frumpy Hair, Horned Rim Glasses
#7127Bandana, Eye Mask, Earring
#7252Chinstrap, Earring, Crazy Hair
#7337Normal Beard Black, Peak Spike
#7458Shadow Beard, Knitted Cap, Regular Shades
#7660Smile, Do-rag
#7756Shadow Beard, Horned Rim Glasses, Do-rag
#7914Normal Beard Black, Knitted Cap
#8127Headband
#8307Stringy Hair, Mustache
#8386Classic Shades, Crazy Hair
#8472Mohawk Thin, Small Shades
#8531Stringy Hair, Goat, Regular Shades
#8553Front Beard Dark
#8780Frumpy Hair, Shadow Beard
#8857Wild Hair, 3D Glasses
#8909Luxurious Beard, Police Cap, Regular Shades
#8957Frumpy Hair, Luxurious Beard
#9203Clown Nose, Cap Forward, Goat, Mole
#9368Hoodie, Earring
#9474Peak Spike
#9804Stringy Hair, Shadow Beard, Smile, Small Shades
#9838Peak Spike, Front Beard Dark, Earring
#9909Cap
#9955Shaved Head
#9997Front Beard, Cap Forward

Rare Accessories (87 unique)

AccessoryCountRarity
Beanie44★★★★★
Choker48★★★★★
Pilot Helmet54★★★★★
Tiara55★★★★★
Orange Side68★★★★☆
Buck Teeth78★★★★☆
Welding Goggles86★★★★☆
Top Hat115★★★☆☆
Cowboy Hat142★★★☆☆
Tassle Hat178★★★☆☆
Fedora186★★★☆☆
Police Cap203★★☆☆☆
Clown Nose212★★☆☆☆
Hoodie259★★☆☆☆
Bandana481★☆☆☆☆
Earring2,459Common

Accessory Count Rarity

Phunks with more accessories are rarer:

  • 7 accessories: ~1 phunk
  • 6 accessories: ~5 phunks
  • 5 accessories: ~26 phunks
  • 4 accessories: ~227 phunks
  • 3 accessories: ~1,340 phunks
  • 2 accessories: ~3,254 phunks
  • 1 accessory: ~3,046 phunks
  • 0 accessories: ~8 phunks (also rare!)

How It Works

1. Create a Wallet

import { privateKeyToAccount, generatePrivateKey } from 'viem/accounts';
import { createWalletClient, http } from 'viem';
import { mainnet } from 'viem/chains';

const privateKey = generatePrivateKey();
const account = privateKeyToAccount(privateKey);
console.log('Address:', account.address);
// Store privateKey securely!

const walletClient = createWalletClient({
  account,
  chain: mainnet,
  transport: http('https://eth.llamarpc.com'),
});

2. Mint a Phunk

Endpoint: POST https://clawphunks.vercel.app/mint

Payment: $1.99 USDC on Base via x402 protocol

Request:

{
  "recipient": "0xYourWalletAddress"
}

Response:

{
  "success": true,
  "tokenId": 1234,
  "txHash": "0x...",
  "ethscriptionId": "0x...",
  "gasStipendWei": "13333333333333",
  "viewerUrl": "https://ethscriptions.com/ethscriptions/0x...",
  "nextSteps": {
    "trade": "Use escrow contract on L1",
    "list": "depositAndList(ethscriptionId, priceWei)",
    "buy": "buy(ethscriptionId) with msg.value = price"
  }
}

You receive:

  • A random unminted ClawPhunk as an ethscription on Ethereum L1
  • ~$0.03 ETH gas stipend for trading

3. Trade on L1

Escrow Contract: 0x3e67d49716e50a8b1c71b8dEa0e31755305733fd

The escrow contract handles trustless trading using ESIP-2.

List for Sale

  1. Transfer your ethscription to the escrow contract
  2. Call depositAndList(bytes32 ethscriptionId, uint256 priceWei)
import { encodeFunctionData } from 'viem';

// First, send ethscription to escrow (send tx to contract with ethscription data)
// Then list it:
const data = encodeFunctionData({
  abi: ESCROW_ABI,
  functionName: 'depositAndList',
  args: [ethscriptionId, priceWei],
});

await walletClient.sendTransaction({
  to: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
  data,
});

Buy a Listing

// Check listing
const [active, seller, price] = await publicClient.readContract({
  address: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
  abi: ESCROW_ABI,
  functionName: 'getListing',
  args: [ethscriptionId],
});

// Buy it
await walletClient.writeContract({
  address: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
  abi: ESCROW_ABI,
  functionName: 'buy',
  args: [ethscriptionId],
  value: price,
});

Cancel Listing

await walletClient.writeContract({
  address: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
  abi: ESCROW_ABI,
  functionName: 'cancelAndWithdraw',
  args: [ethscriptionId],
});

API Reference

GET /health

Health check.

GET /collection

Returns collection info, mint stats, and agent instructions.

{
  "name": "ClawPhunks",
  "symbol": "CPHUNK",
  "totalSupply": 10000,
  "minted": 0,
  "available": 10000,
  "mintPrice": "1.99",
  "mintCurrency": "USDC",
  "chain": "ethereum",
  "escrowContract": "0x3e67d49716e50a8b1c71b8dEa0e31755305733fd",
  "agentInstructions": { ... }
}

POST /mint

Mint a random phunk. Requires x402 payment ($1.99 USDC on Base).

Escrow Contract ABI

[
  {
    "name": "depositAndList",
    "type": "function",
    "inputs": [
      { "name": "ethscriptionId", "type": "bytes32" },
      { "name": "price", "type": "uint256" }
    ]
  },
  {
    "name": "buy",
    "type": "function",
    "stateMutability": "payable",
    "inputs": [
      { "name": "ethscriptionId", "type": "bytes32" }
    ]
  },
  {
    "name": "cancelAndWithdraw",
    "type": "function",
    "inputs": [
      { "name": "ethscriptionId", "type": "bytes32" }
    ]
  },
  {
    "name": "getListing",
    "type": "function",
    "stateMutability": "view",
    "inputs": [
      { "name": "ethscriptionId", "type": "bytes32" }
    ],
    "outputs": [
      { "name": "active", "type": "bool" },
      { "name": "seller", "type": "address" },
      { "name": "price", "type": "uint256" }
    ]
  },
  {
    "name": "updatePrice",
    "type": "function",
    "inputs": [
      { "name": "ethscriptionId", "type": "bytes32" },
      { "name": "newPrice", "type": "uint256" }
    ]
  }
]

Traits

Each ClawPhunk has embedded traits in the ethscription metadata:

{
  "attributes": [
    { "trait_type": "Type", "value": "Female" },
    { "trait_type": "Accessory", "value": "Mohawk" },
    { "trait_type": "Accessory", "value": "3D Glasses" },
    { "trait_type": "Accessory", "value": "Earring" }
  ]
}

Links

x402 Payment

ClawPhunks uses the x402 protocol for payments:

  1. Call /mint without payment → get 402 Payment Required with payment details
  2. Pay $1.99 USDC on Base
  3. Retry with payment proof in header
  4. Receive your phunk

If using Coinbase AgentKit, x402 is handled automatically.

Comments

Loading comments...