Summary
Look, here's the deal - we need a new skill for agentupload.dev, an S3-backed file upload service via x402 micropayments. No API keys, just pay-per-upload. The thing is, agents need to know how to, you know, upload their generated files somewhere.
Technical Context
Create a new skill at skills/file-storage/SKILL.md with the following content:
---
name: file-storage
description: |
Upload files to permanent public URLs via x402 micropayments. No API keys needed.
USE FOR:
- Uploading generated images, videos, documents
- Sharing files with users via public links
- Storing outputs that need to persist (6 months)
TRIGGERS:
- "upload", "save file", "host this", "share this"
- "make it downloadable", "give me a link"
- "store this somewhere", "put this online"
IMPORTANT: All paths use https://agentupload.dev/api/x402/{action}. Use exact URLs from Quick Reference or discover first.
mcp:
- x402
---
# File Storage with AgentUpload
Upload any file and get a permanent public URL. Pay per upload with USDC on Base.
## Quick Reference
| Action | Endpoint | Price | Auth |
|--------|----------|-------|------|
| Buy upload slot | `POST https://agentupload.dev/api/x402/upload` | $0.10-$10.00 | x402 payment |
| List my uploads | `GET https://agentupload.dev/api/x402/uploads` | Free | SIWX |
| Get upload details | `GET https://agentupload.dev/api/x402/download/{uploadId}` | Free | SIWX |
## Pricing Tiers
| Tier | Max Size | Price |
|------|----------|-------|
| `10mb` | 10 MB | $0.10 |
| `100mb` | 100 MB | $1.00 |
| `1gb` | 1 GB | $10.00 |
All uploads expire after **6 months**.
## Upload a File (Two Steps)
### Step 1: Buy an upload slot
```mcp
x402.fetch(
url="https://agentupload.dev/api/x402/upload",
method="POST",
body={
"filename": "my-image.png",
"contentType": "image/png",
"tier": "10mb"
}
)
Response:
{
"uploadId": "k7gm3nqp2",
"uploadUrl": "https://f.agentupload.dev/k7gm3nqp2/my-image.png?t=...",
"publicUrl": "https://f.agentupload.dev/k7gm3nqp2/my-image.png",
"expiresAt": "2025-08-01T00:00:00.000Z",
"maxSize": 10485760
}
Step 2: PUT file to uploadUrl
x402.fetch(
url="{uploadUrl from step 1}",
method="PUT",
headers={"Content-Type": "image/png"},
body={binary file data}
)
The publicUrl is now live and shareable.
List My Uploads
x402.fetch_with_auth(
url="https://agentupload.dev/api/x402/uploads",
method="GET"
)
Uses SIWX (wallet signature auth), no payment required.
Common Workflows
Upload Generated Image
- Generate image with StableStudio
- Buy upload slot with matching content type
- PUT the image data to uploadUrl
- Share publicUrl with user
Upload Document/PDF
x402.fetch(
url="https://agentupload.dev/api/x402/upload",
method="POST",
body={
"filename": "report.pdf",
"contentType": "application/pdf",
"tier": "10mb"
}
)
Key Points
- Public URLs are permanent for 6 months - no auth needed to access
- Upload URLs expire after 1 hour - upload promptly after buying slot
- Any file type accepted - contentType is advisory
- Files stored on S3 with public read access
## Context
- Reported via Discord by: sragss_ms_99022
- Discovery data from: https://agentupload.dev/.well-known/x402
---
@claude please implement this fix
Summary
Look, here's the deal - we need a new skill for agentupload.dev, an S3-backed file upload service via x402 micropayments. No API keys, just pay-per-upload. The thing is, agents need to know how to, you know, upload their generated files somewhere.
Technical Context
Create a new skill at
skills/file-storage/SKILL.mdwith the following content:Response:
{ "uploadId": "k7gm3nqp2", "uploadUrl": "https://f.agentupload.dev/k7gm3nqp2/my-image.png?t=...", "publicUrl": "https://f.agentupload.dev/k7gm3nqp2/my-image.png", "expiresAt": "2025-08-01T00:00:00.000Z", "maxSize": 10485760 }Step 2: PUT file to uploadUrl
The
publicUrlis now live and shareable.List My Uploads
Uses SIWX (wallet signature auth), no payment required.
Common Workflows
Upload Generated Image
Upload Document/PDF
Key Points