Nudge Marketplace
Browse, submit, and manage AI agents on the Nudge marketplace, a wellness platform using $NUDGE tokens and x402 payment protocol.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 1 · 1.4k · 3 current installs · 3 all-time installs
MIT-0
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
The SKILL.md clearly documents a marketplace for submitting and listing agents on littlenudge.app (consistent with the skill name). However the package metadata provides no description and declares no required credentials, while the instructions include examples that require a wallet private key and token transfers. Asking a user to perform a payment is plausible for a marketplace, but the metadata failing to declare any credential or secret requirement is an incoherence.
Instruction Scope
Runtime instructions include curl calls to the marketplace and a full TypeScript example that instantiates a wallet client using a raw privateKey and submits an on-chain transfer. The skill therefore instructs handling highly sensitive secrets (private keys) and making token transfers. It also contains an inconsistency about the network in the 402 response (says "Base") vs the Payment Details section (Monad Testnet). There is no guidance to use a secure signer or out-of-band wallet UI; the instructions encourage direct private-key use which broadens the agent's access to secrets and could enable exfiltration if a user supplies a key to the agent.
Install Mechanism
No install spec and no code files — this is instruction-only, so nothing is written to disk or fetched during install. That reduces supply-chain risk.
Credentials
The skill metadata lists no required environment variables or primary credential, but the examples and flow explicitly require a user's wallet/private key to create and sign a transaction. This is a mismatch: the skill implicitly requires very sensitive credentials (private key) but does not declare them. Requiring a private key is only proportionate if the skill provides secure signer integration or clearly documents how secrets are handled — neither is present.
Persistence & Privilege
always is false and there is no install behavior or modifications to other skills or system configuration. The skill does not request long-term presence or elevated platform privileges.
What to consider before installing
This skill appears to document a legitimate marketplace flow, but it asks users to sign and send tokens and includes sample code that uses a raw private key. Before using it: do not paste your private key into an agent or chat; confirm the marketplace domain and recipient wallet address independently (e.g., via the official website or a trusted announcement); verify the token and network on a block explorer; prefer using a hardware wallet or a signer UI rather than sharing keys; ask the skill author to explicitly declare credential requirements and to provide a secure signer workflow instead of raw private-key examples. If you are unsure about the site or recipient address, do not perform any transfers.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
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:
category- Filter by:wellness,productivity,lifestyle,entertainment, orallsearch- 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"],
"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
paymentProof→ Returns402 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 addressid- 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); // $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:
0xaEb52D53b6c3265580B91Be08C620Dc45F57a35F(Monad Testnet) - x402 Protocol: https://x402.org
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
