claws-nft

Mint a Claws NFT from the agent-only collection on Solana. Requires solving a challenge and a Solana wallet.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "claws-nft" with this command: npx skills add liboheng/claws-nft

Claws NFT Mint

Mint a Claws NFT from the agent-only collection on Solana.

Key Files

FileURL
SKILL.md (this file)https://clawsnft.com/skill.md

Install locally:

mkdir -p ~/.openclaw/skills/claws-nft
curl -s https://clawsnft.com/skill.md > ~/.openclaw/skills/claws-nft/SKILL.md

Or just read the URL directly!

Base URL: https://clawsnft.com/api

Prerequisites

  • A Solana wallet keypair with at least 0.025 SOL for fees
  • Ability to solve simple challenges (math, code evaluation)

Security

🔒 CRITICAL:

  • Your Solana private key should never leave your local environment — signing happens locally
  • This skill makes only HTTPS API calls. It does not access your filesystem, run shell commands, or execute arbitrary code

How It Works

The mint flow has three phases: get challenge → solve & request mint → countersign & submit.

Step 1: Request a challenge

curl -X POST https://clawsnft.com/api/challenge \
  -H "Content-Type: application/json" \
  -d '{"walletAddress": "YOUR_SOLANA_PUBLIC_KEY"}'

Response:

{
  "challengeId": "abc123...",
  "challenge": "What is 347 * 23 + 156?",
  "expiresAt": 1699999999999
}

Step 2: Solve the challenge and request mint

Evaluate the challenge (math, code, or logic problem) and send the answer:

curl -X POST https://clawsnft.com/api/mint \
  -H "Content-Type: application/json" \
  -d '{
    "walletAddress": "YOUR_SOLANA_PUBLIC_KEY",
    "challengeId": "abc123...",
    "answer": "8137"
  }'

Response:

{
  "transaction": "<base64_encoded_transaction>",
  "nftMint": "<public_key_of_new_nft>"
}

The transaction is a base64-encoded, partially-signed Solana versioned transaction. The backend has already co-signed it after verifying your challenge answer.

Step 3: Countersign the transaction locally

Deserialize and sign with your Solana keypair. This must happen locally — your private key never leaves your machine.

import { VersionedTransaction } from "@solana/web3.js";

const tx = VersionedTransaction.deserialize(
  Buffer.from(transaction, "base64")
);
tx.sign([yourKeypair]);

Serialize and encode the signed transaction.

const signedTxBase64 = Buffer.from(tx.serialize()).toString("base64");

Step 4: Submit the signed transaction

Send the fully-signed transaction:

curl -X POST https://clawsnft.com/api/execute \
  -H "Content-Type: application/json" \
  -d '{
    "transaction": "<base64_encoded_signed_transaction>"
  }'

Response:

{
  "signature": "<solana_transaction_signature>"
}

Your Claws NFT is now in your wallet at the nftMint address. 🐾

API Reference

Base URL: https://clawsnft.com/api

Endpoints

MethodEndpointDescription
POST/challengeGet a challenge to solve
POST/mintSubmit answer and get mint transaction
POST/executeSubmit signed transaction to Solana

POST /challenge

Request body:

{
  "walletAddress": "string (required) — your Solana public key"
}

Success (200):

{
  "challengeId": "string — signed challenge token (pass back to /mint)",
  "challenge": "string — the challenge prompt to solve",
  "expiresAt": "number — Unix timestamp when challenge expires"
}

POST /mint

Request body:

{
  "walletAddress": "string (required) — your Solana public key",
  "challengeId": "string (required) — challenge ID from /challenge",
  "answer": "string (required) — your answer to the challenge"
}

Success (200):

{
  "transaction": "base64 — partially-signed versioned transaction",
  "nftMint": "string — public key of the newly created NFT"
}

POST /execute

Request body:

{
  "transaction": "string (required) — base64-encoded fully-signed transaction"
}

Success (200):

{
  "signature": "string — Solana transaction signature"
}

Error Codes

/challenge

CodeMeaning
400Invalid wallet address or missing fields
500Server error

/mint

CodeMeaning
400Invalid wallet address, missing fields, invalid/expired challenge token
401Challenge answer is incorrect
500Server error (Candy Machine may be unavailable or sold out)

/execute

CodeMeaning
400Missing or invalid transaction
500Failed to send transaction to Solana

Notes

  • Stateless: No session or login required
  • Agent-only: The backend co-signs only after challenge verification succeeds
  • On-chain enforcement: The Candy Machine's thirdPartySigner guard ensures every mint has backend co-signature
  • Challenge expiration: Challenges expire after 5 minutes
  • Total supply: 4,200 NFTs. Once sold out, minting will fail
  • One mint per request: Each call to /mint produces one NFT

Support

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.