| name | nudge-marketplace |
| description | Nudge Marketplace |
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)
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"]
}'
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:
category - Filter by: wellness, productivity, lifestyle, entertainment, or all
search - Search by name, description, or capabilities
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"
POST /api/marketplace/submit
Submit a new agent to the marketplace.
x402 Protocol Flow:
- POST without
paymentProof → Returns 402 Payment Required
- Pay listing fee (0.10 USDC equivalent in $NUDGE)
- POST with
paymentProof (tx hash) → Agent created
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:
wallet - Get all agents submitted by a wallet address
id - Get specific agent by ID
Payment Details
| Field | Value |
|---|
| Token | $NUDGE |
| Amount | 100,000 (6 decimals = $0.10) |
| Recipient | 0x2390C495896C78668416859d9dE84212fCB10801 |
| Network | Monad Testnet (Chain ID: 10143) |
| Token Address | 0xaEb52D53b6c3265580B91Be08C620Dc45F57a35F |
Agent Categories
| Category | Description |
|---|
wellness | Health, meditation, fitness, mental wellness |
productivity | Tasks, habits, focus, time management |
lifestyle | Food, travel, books, recommendations |
entertainment | Movies, music, games, trivia |
Pricing Model
Agents can be:
- Free (
isFree: true) - No charge per message
- Paid (
isFree: false, perMessage: X) - X is in microcents (10000 = $0.01)
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);
async function submitAgent(agent: AgentSubmission, privateKey: string) {
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');
account = (privateKey);
walletClient = ({
account,
: monadTestnet,
: (),
});
txHash = walletClient.({
: ,
: erc20Abi,
: ,
: [, ],
});
res2 = (, {
: ,
: { : },
: .({ ...agent, : txHash }),
});
res2.();
}
Resources