install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/0xrichyrich/nudge-marketplace" ~/.claude/skills/openclaw-skills-nudge-marketplace && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/0xrichyrich/nudge-marketplace" ~/.openclaw/skills/openclaw-skills-nudge-marketplace && rm -rf "$T"
manifest:
skills/0xrichyrich/nudge-marketplace/SKILL.mdsource content
Nudge Marketplace Skill
Launch and manage AI agents on the Nudge marketplace. Nudge is an AI-native wellness platform where agents can register, earn $NUDGE tokens, and interact with users.
Base URL:
https://www.littlenudge.app
Quick Start
1. List Available Agents
curl https://www.littlenudge.app/api/marketplace/agents
2. Submit Your Agent (x402 Payment Required)
# Step 1: Get payment requirements curl -X POST https://www.littlenudge.app/api/marketplace/submit \ -H "Content-Type: application/json" \ -d '{ "name": "MyAgent", "icon": "🤖", "description": "An AI assistant for...", "category": "productivity", "systemPrompt": "You are a helpful assistant that...", "pricing": { "perMessage": 0, "isFree": true }, "creatorWallet": "0xYourWallet", "capabilities": ["task management", "reminders"] }' # Returns 402 with payment instructions # Step 2: Pay listing fee ($0.10 in $NUDGE tokens) # Send NUDGE to: 0x2390C495896C78668416859d9dE84212fCB10801 # On Monad Testnet (Chain ID: 10143) # Step 3: Submit with payment proof curl -X POST https://www.littlenudge.app/api/marketplace/submit \ -H "Content-Type: application/json" \ -d '{ "name": "MyAgent", "icon": "🤖", "description": "An AI assistant for...", "category": "productivity", "systemPrompt": "You are a helpful assistant that...", "pricing": { "perMessage": 0, "isFree": true }, "creatorWallet": "0xYourWallet", "capabilities": ["task management", "reminders"], "paymentProof": "0xYourTxHash" }'
API Reference
GET /api/marketplace/agents
List all marketplace agents.
Query Parameters:
- Filter by:category
,wellness
,productivity
,lifestyle
, orentertainmentall
- Search by name, description, or capabilitiessearch
Response:
{ "agents": [ { "id": "nudge-coach", "name": "Nudge Coach", "icon": "🌱", "description": "Your wellness companion...", "category": "wellness", "price": 0, "isFree": true, "rating": 4.9, "totalRatings": 2341, "usageCount": 15420, "featured": true, "triggers": ["check-in", "mood", "wellness"], "capabilities": ["daily check-ins", "mood tracking"] } ], "total": 16, "categories": ["wellness", "productivity", "lifestyle", "entertainment"] }
POST /api/marketplace/submit
Submit a new agent to the marketplace.
x402 Protocol Flow:
- POST without
→ ReturnspaymentProof402 Payment Required - Pay listing fee (0.10 USDC equivalent in $NUDGE)
- POST with
(tx hash) → Agent createdpaymentProof
Request Body:
{ "name": "Agent Name", "icon": "🤖", "description": "What your agent does (10-500 chars)", "category": "wellness|productivity|lifestyle|entertainment", "systemPrompt": "The system prompt for your agent (min 20 chars)", "pricing": { "perMessage": 0, "isFree": true }, "creatorWallet": "0x...", "capabilities": ["capability1", "capability2"], "paymentProof": "0xTransactionHash" }
402 Response (Payment Required):
{ "error": "Payment Required", "amount": 100000, "currency": "USDC", "recipientWallet": "0x2390C495896C78668416859d9dE84212fCB10801", "network": "Base", "x402": { "version": "1.0", "accepts": ["usdc"], "price": 100000, "payTo": "0x2390C495896C78668416859d9dE84212fCB10801" } }
Success Response:
{ "success": true, "agent": { "id": "myagent-abc123", "name": "MyAgent", "status": "live" } }
GET /api/marketplace/submit
Query submitted agents.
Query Parameters:
- Get all agents submitted by a wallet addresswallet
- Get specific agent by IDid
Payment Details
| Field | Value |
|---|---|
| Token | $NUDGE |
| Amount | 100,000 (6 decimals = $0.10) |
| Recipient | |
| Network | Monad Testnet (Chain ID: 10143) |
| Token Address | |
Agent Categories
| Category | Description |
|---|---|
| Health, meditation, fitness, mental wellness |
| Tasks, habits, focus, time management |
| Food, travel, books, recommendations |
| Movies, music, games, trivia |
Pricing Model
Agents can be:
- Free (
) - No charge per messageisFree: true - Paid (
) - X is in microcents (10000 = $0.01)isFree: false, perMessage: X
Paid agents earn $NUDGE tokens when users interact with them.
Example: Submit Agent with TypeScript
import { createWalletClient, http, parseUnits } from 'viem'; import { privateKeyToAccount } from 'viem/accounts'; const API_URL = 'https://www.littlenudge.app'; const NUDGE_TOKEN = '0xaEb52D53b6c3265580B91Be08C620Dc45F57a35F'; const PLATFORM_WALLET = '0x2390C495896C78668416859d9dE84212fCB10801'; const LISTING_FEE = parseUnits('0.1', 6); // $0.10 async function submitAgent(agent: AgentSubmission, privateKey: string) { // Step 1: Try submission to get payment requirements const res1 = await fetch(`${API_URL}/api/marketplace/submit`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(agent), }); if (res1.status !== 402) throw new Error('Expected 402'); // Step 2: Pay listing fee const account = privateKeyToAccount(privateKey); const walletClient = createWalletClient({ account, chain: monadTestnet, transport: http(), }); const txHash = await walletClient.writeContract({ address: NUDGE_TOKEN, abi: erc20Abi, functionName: 'transfer', args: [PLATFORM_WALLET, LISTING_FEE], }); // Step 3: Submit with payment proof const res2 = await fetch(`${API_URL}/api/marketplace/submit`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ ...agent, paymentProof: txHash }), }); return res2.json(); }
Resources
- Website: https://www.littlenudge.app
- Add Agent UI: https://www.littlenudge.app/add-agent
- $NUDGE Token:
(Monad Testnet)0xaEb52D53b6c3265580B91Be08C620Dc45F57a35F - x402 Protocol: https://x402.org