name: clawpay version: 1.0.0 description: Monetize your skills with USDC payments on Base. 90% to developers, 10% platform fee. homepage: https://shellfoundry.com/clawpay metadata: {"shellfoundry":{"emoji":"🐚","category":"payments","api_base":"https://shellfoundry.com/api"}}
ClawPay
Monetize your skills with USDC payments on Base blockchain. You build the skill, you set the price, you earn 90%. We handle the infrastructure.
🚀 Key Point: Existing skills can be updated to use ClawPay in ~7 lines of code. No rebuild, no migration—just add payment checking.
Files
| File | URL |
|---|---|
| SKILL.md (this file) | https://shellfoundry.com/clawpay/SKILL.md |
| Contract | https://basescan.org/address/0x6c302FB0eabb0875088b07D80807a91BDa3c21AB |
| Payment Dashboard | https://shellfoundry.com/clawpaydashboard.html |
Quick Start (Existing Skill)
Already have a skill? Add ClawPay in 3 steps:
Step 1: Add Payment Check
const CLAWPAY_API = 'https://shellfoundry.com/api/check-access';
async function handleSkill(userAddress) {
// Check if user paid (ADD THIS)
const response = await fetch(`${CLAWPAY_API}?user=${userAddress}&skill=your-skill-id`);
const data = await response.json();
if (!data.paid) {
return `This skill costs ${data.skillInfo.price} USDC. Pay at: https://shellfoundry.com/clawpay.html?skill=your-skill-id`;
}
// Your existing skill logic here
return "Skill output here...";
}
Step 2: Register Your Skill
Tell ClawPay about your skill (one-time setup):
// Using ethers.js or similar
const contract = new ethers.Contract(CLAWPAY_ADDRESS, ABI, signer);
await contract.registerSkill(
"your-skill-id", // Unique ID for your skill
"0xYourWalletAddress", // Where you receive 90%
ethers.utils.parseUnits("5", 6), // Price in USDC (5 USDC)
"My Awesome Skill" // Display name
);
Step 3: Re-deploy
Push your updated skill to ClawHub. Done.
Users now pay before using. You automatically receive 90% of every payment.
For New Skills
Building from scratch? Same 3 steps, but add the payment check first.
Full Example
// skill.js
const CLAWPAY_API = 'https://shellfoundry.com/api/check-access';
const SKILL_ID = 'weather-pro';
async function getWeather(userAddress, location) {
// Verify payment
const access = await checkPayment(userAddress, SKILL_ID);
if (!access.paid) {
return paymentRequired(access);
}
// Skill logic
const weather = await fetchWeather(location);
return `Weather in ${location}: ${weather}`;
}
async function checkPayment(userAddress, skillId) {
try {
const response = await fetch(
`${CLAWPAY_API}?user=${userAddress}&skill=${skillId}`
);
return await response.json();
} catch (e) {
return { paid: false, error: 'Payment check failed' };
}
}
function paymentRequired(data) {
return `⛔ Payment Required\n\n` +
`This skill costs ${data.skillInfo?.price || '?'} USDC\n` +
`Pay here: https://shellfoundry.com/clawpay.html?skill=${SKILL_ID}\n\n` +
`After paying, try again.`;
}
How Payments Work
User → Pays USDC → ClawPay Contract
↓
90% → Your Wallet (instant)
10% → Platform Fee
↓
User can now use your skill
On-chain, verifiable, instant.
Payment Flow
- User visits
https://shellfoundry.com/clawpay.html?skill=your-skill-id - User connects wallet (MetaMask, Rabby, etc.)
- User pays the USDC amount you set
- Contract records the payment on blockchain
- User can now use your skill
- You receive 90% immediately to your wallet
Contract Details
| Network | Address | Explorer |
|---|---|---|
| Base Mainnet | 0x6c302FB0eabb0875088b07D80807a91BDa3c21AB |
BaseScan |
| Base Sepolia (test) | 0x72CaF410E276c50e2f5a5C76f9348242c66bE86c |
BaseScan Sepolia |
Contract Functions
// Check if a user has paid for a skill
function checkAccess(string skillId, address user) view returns (bool)
// Register a new skill (as developer)
function registerSkill(string skillId, address developer, uint256 priceUSDC, string name)
// Pay for skill access (as user)
function payForSkill(string skillId)
// Withdraw your earnings (as developer)
function withdrawEarnings(string skillId)
// Get skill info
function skills(string skillId) view returns (address developer, uint256 price, bool active, string name)
API Reference
Check Payment Status
GET https://shellfoundry.com/api/check-access?user=0x...&skill=skill-id
Response:
{
"success": true,
"user": "0x936ccd9Fe471571e767fb61aC845C57b3a48653E",
"skill": "weather-pro",
"paid": true,
"skillInfo": {
"developer": "0xabcd...",
"price": "5.00",
"active": true,
"name": "Premium Weather"
}
}
Error Response
{
"error": "Missing parameters",
"message": "Please provide user (wallet address) and skill (skill ID)"
}
Pricing Guidelines
| Skill Type | Suggested Price | Why |
|---|---|---|
| Simple utility | 1-3 USDC | Quick tasks, data lookup |
| Premium API | 5-10 USDC | Valuable data, limited APIs |
| Complex agent | 10-25 USDC | Multi-step, reasoning, custom work |
| Enterprise | 50+ USDC | Business-critical, SLA |
Start low, increase as you add value.
Trust & Security
How Users Know You're Legit
- Blockchain Verified — Every payment is on-chain, viewable on BaseScan
- Instant Payouts — You receive 90% immediately, no holding period
- Transparent Fees — 10% platform fee, clearly documented
- Proof of Payments — See real transaction history at
shellfoundry.com/payments
For Developers
- You control your skill — We don't host or modify your code
- You set your price — Change anytime
- You earn immediately — No minimum thresholds
- Open source friendly — Your skill code stays yours
Earnings & Withdrawals
How to Check Your Balance
Visit the dashboard: https://shellfoundry.com/clawpaydashboard.html
Or query the contract directly:
const earnings = await contract.developerEarnings(skillId, yourAddress);
console.log('Your earnings:', ethers.utils.formatUnits(earnings, 6), 'USDC');
Withdrawing
// Withdraw all earnings for a skill
await contract.withdrawEarnings(skillId);
// USDC arrives in your wallet immediately
Testing on Sepolia
Before going live, test everything:
- Get Sepolia ETH — Base Sepolia Faucet
- Get Sepolia USDC — Mint from testnet contract
- Deploy test skill — Use testnet contract address
- Test payment flow — Verify everything works
Testnet Contract: 0x72CaF410E276c50e2f5a5C76f9348242c66bE86c
Common Questions
Q: Do I need to rewrite my skill?
A: No. Add ~7 lines of code to check payment. Everything else stays the same.
Q: Can users bypass the payment?
A: They can modify local code, but they won't get paid. The ecosystem enforces trust—skills using ClawPay are marked "Verified" on ClawHub.
Q: How do I get paid?
A: 90% of every payment goes directly to your wallet. No delays, no minimums.
Q: What if I want to make my skill free later?
A: Set price to 0 or deactivate the skill in the contract.
Q: Can I see who paid?
A: Yes—all transactions are on-chain. Query the contract or check BaseScan.
Support
- Website: https://shellfoundry.com/clawpay.html
- Dashboard: https://shellfoundry.com/clawpaydashboard.html
- Email: ShellFoundry@gmail.com
- X/Twitter: https://x.com/ShellFoundry
Example Integration (Full)
// weather-pro-skill.js
const CLAWPAY_API = 'https://shellfoundry.com/api/check-access';
const SKILL_ID = 'weather-pro';
class WeatherProSkill {
async handle(userAddress, args) {
// 1. Verify payment
const paymentStatus = await this.checkPayment(userAddress);
if (!paymentStatus.paid) {
return this.paymentRequired(paymentStatus);
}
// 2. Do the work
const weather = await this.fetchWeather(args.location);
// 3. Return result
return {
location: args.location,
temperature: weather.temp,
condition: weather.condition,
paid: true
};
}
async checkPayment(userAddress) {
const response = await fetch(
`${CLAWPAY_API}?user=${userAddress}&skill=${SKILL_ID}`
);
return await response.json();
}
paymentRequired(data) {
return {
error: 'Payment required',
price: data.skillInfo?.price || '5.00',
currency: 'USDC',
payUrl: `https://shellfoundry.com/clawpay.html?skill=${SKILL_ID}`,
message: 'Please pay to access this skill'
};
}
async fetchWeather(location) {
// Your weather API logic here
return { temp: 72, condition: 'Sunny' };
}
}
module.exports = WeatherProSkill;
Ready to monetize? Register your skill at shellfoundry.com/clawpay.html
Built by ShellFoundry. Powered by Base.