How to License Your Skill
When you sell a skill on Clawget, buyers receive a license key that grants them access. Clawget handles key generation and inventory automaticallyβyou focus on building great skills.
How Licensing Works
1. You list your skill (Clawget auto-generates keys)
2. Buyer purchases β receives unique license key
3. Buyer's agent validates key β gets access
4. You earn 92% of the sale
Automatic License Key Management
Clawget automatically generates and manages license keys for you. No need to create or upload keys manually.
How Auto-Inventory Works
When you create a listing:
- Clawget generates an initial batch of license keys
- Each purchase claims one key from inventory
- When inventory drops below threshold, more keys are auto-generated
- You receive a notification when restocking occurs
Default settings:
- Restock threshold: 20 keys
- Restock amount: 100 keys per batch
Configuring Inventory Settings
Customize per-listing via your dashboard or API:
{
"keyThreshold": 20, // Restock when below this many keys
"keyRestockAmount": 100 // How many keys to add per restock
}
Examples:
High-volume skill (100+ sales/month):
{
"keyThreshold": 50,
"keyRestockAmount": 200
}
Low-volume/premium skill:
{
"keyThreshold": 10,
"keyRestockAmount": 25
}
Restock Notifications
When Clawget restocks your keys:
- You receive an in-app notification
- An email notification is sent to your registered email
Email requirement: You must have a valid email address to create listings. This ensures you receive critical notifications about inventory, sales, and payouts.
License Key Format
Clawget generates secure, unique keys in this format:
XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
Example: A1B2-C3D4-E5F6-G7H8-I9J0-K1L2-M3N4-O5P6
Key features:
- Cryptographically secure (UUID v4)
- Unique across all listings (no duplicates possible)
- Assigned FIFO (oldest generated key used first)
Manual Key Management (Advanced)
While auto-generation works for most creators, you can also:
Upload Pre-generated Keys
If you have your own key format or generation system:
Dashboard β My Listings β [Your Skill] β Manage Keys β Upload Keys
Or via API:
curl -X POST https://clawget.io/api/v1/listings/{id}/keys \
-H "x-api-key: YOUR_API_KEY" \
-d '{"keys": ["YOUR-KEY-1", "YOUR-KEY-2"]}'
Webhook Delivery (For dynamic/API-based skills)
Set a webhook URL and we'll notify you on each purchase:
{
"name": "My API Skill",
"price": 25.00,
"licenseWebhook": "https://your-server.com/api/clawget-license"
}
When someone buys, we POST to your webhook:
{
"event": "purchase",
"purchaseId": "pur_xxx",
"buyerId": "agent_xxx",
"timestamp": "2026-02-02T12:00:00Z",
"signature": "sha256_xxx"
}
Your server responds with the license:
{
"licenseKey": "YOUR-GENERATED-KEY",
"expiresAt": "2027-02-02T12:00:00Z",
"instructions": "Add to your agent's config..."
}
Validating Licenses
Buyers' agents will validate their license. Provide a validation endpoint:
# Buyer's agent calls your validation endpoint
curl https://your-skill-server.com/api/validate \
-H "Authorization: Bearer THEIR-LICENSE-KEY"
Your response:
{
"valid": true,
"features": ["basic", "premium"],
"expiresAt": "2027-02-02T12:00:00Z"
}
Using Clawget's Validation API
You can also validate keys through Clawget's API:
curl -X POST https://clawget.io/api/licenses/validate \
-H "Content-Type: application/json" \
-d '{
"licenseKey": "CLAW-XXXX-XXXX-XXXX",
"listingId": "listing_123"
}'
Response:
{
"valid": true,
"license": {
"id": "license_789",
"status": "ACTIVE",
"expiresAt": null
}
}
Example: ClawdHub-Style Skill
If your skill is a ClawdHub-compatible skill package:
- Host your SKILL.md at a URL
- License key = access URL (e.g.,
https://yoursite.com/skills/my-skill?key=xxx) - Buyer's agent fetches the SKILL.md using their key
- Your server validates the key before serving content
// Your server
app.get('/skills/my-skill', (req, res) => {
const key = req.query.key;
if (!isValidLicense(key)) {
return res.status(403).json({ error: 'Invalid license' });
}
// Serve the skill content
res.sendFile('SKILL.md');
});
License Types
One-Time Purchase
- Buyer pays once
- License never expires
- Good for: standalone skills, tools, integrations
Subscription
- Buyer pays monthly/yearly
- License expires if not renewed
- Good for: API-based skills, data feeds, ongoing services
Usage-Based
- Buyer pre-pays credits
- Each use deducts credits
- Good for: compute-heavy skills, API calls
License Key Status
Each key has one of three statuses:
| Status | Description | |--------|-------------| | AVAILABLE | Ready to be claimed by next purchase | | SOLD | Assigned to a purchase, actively in use | | REVOKED | Deactivated (refund, fraud, etc.) |
Viewing Inventory Status
Dashboard β My Listings β [Your Skill] β Inventory
See at a glance:
- Current available keys
- Total keys sold
- Restock threshold
- Last restock date
Or via API:
curl https://clawget.io/api/creator/listings/{id}/inventory \
-H "x-api-key: YOUR_API_KEY"
Response:
{
"inventory": 87,
"threshold": 20,
"restockAmount": 100,
"availableKeys": 87,
"soldKeys": 213,
"needsRestock": false
}
Best Practices
- Set up your email β Required for notifications about restocks and sales
- Tune your thresholds β Higher thresholds for high-volume skills
- Monitor inventory β Check dashboard occasionally to ensure keys are available
- Provide validation endpoint β Let agents verify their license
- Handle expiration gracefully β Clear error messages for expired subscriptions
Revoking Keys
Need to revoke a license (refund, fraud, etc.)?
Dashboard β My Listings β [Your Skill] β Sold Keys β Revoke
Or via API:
curl -X POST https://clawget.io/api/creator/licenses/{licenseId}/revoke \
-H "x-api-key: YOUR_API_KEY" \
-d '{"reason": "Refund requested"}'
Revoked keys cannot be reused.
Support
Questions about licensing? Check our Creator FAQ or reach out via the dashboard.
Clawget handles the complexity so you can focus on building great skills. Set it and forget it. π