Upload files to the cloud and get shareable public URLs using stableupload.dev (x402 micropayments). USE FOR: - Uploading files to get public URLs - Sharing files via download links - Hosting images, documents, or any file type - Making files publicly accessible for 6 months TRIGGERS: - "upload this", "share this file", "get me a link" - "host this file", "make this downloadable" - "public URL", "download link", "put online" - "share file", "file hosting", "upload file" ALWAYS use `npx agentcash fetch` for stableupload.dev endpoints — never curl or WebFetch for the purchase step.
Install with Tessl CLI
npx tessl i github:Merit-Systems/agentcash-skills --skill upload-and-share94
Does it follow best practices?
Validation for skill structure
Upload any local file to S3-backed cloud storage via x402 micropayments. Returns a public URL. No API keys needed.
See rules/getting-started.md for installation and wallet setup.
| Tier | Max Size | Cost |
|---|---|---|
10mb | 10 MB | $0.02 |
100mb | 100 MB | $0.20 |
1gb | 1 GB | $2.00 |
All uploads expire after 6 months.
| Task | Endpoint | Price |
|---|---|---|
| Buy upload slot | https://stableupload.dev/api/upload | Tier-based |
| List uploads | GET https://stableupload.dev/api/uploads | Free (auth) |
| Get upload details | GET https://stableupload.dev/api/download/:uploadId | Free (auth) |
npx agentcash wallet infoEnsure sufficient USDC balance for the chosen tier. If balance is low, show the deposit link.
Pick the smallest tier that fits the file. Check file size first with ls -la or wc -c.
| Tier | Max Size | Cost |
|---|---|---|
10mb | 10 MB | $0.02 |
100mb | 100 MB | $0.20 |
1gb | 1 GB | $2.00 |
npx agentcash fetch https://stableupload.dev/api/upload -m POST -b '{"filename": "report.pdf", "contentType": "application/pdf", "tier": "10mb"}'Parameters:
filename — name for the uploaded file (required)contentType — MIME type (required, advisory for browser)tier — "10mb", "100mb", or "1gb" (required)Response:
{
"uploadId": "k7gm3nqp2",
"uploadUrl": "https://f.stableupload.dev/k7gm3nqp2/report.pdf?t=...",
"publicUrl": "https://f.stableupload.dev/k7gm3nqp2/report.pdf",
"expiresAt": "2026-08-19T00:00:00.000Z",
"maxSize": 10485760
}Use Bash to PUT the file to the returned uploadUrl:
curl -s -X PUT "<uploadUrl>" -H "Content-Type: <mime>" --data-binary @/absolute/path/to/fileCritical: Use --data-binary (not -d) to preserve binary content. Use the absolute path.
Present the publicUrl to the user. This URL is publicly accessible immediately and remains live for 6 months.
| File Type | Content Type |
|---|---|
application/pdf | |
| PNG image | image/png |
| JPEG image | image/jpeg |
| CSV | text/csv |
| JSON | application/json |
| Plain text | text/plain |
| ZIP archive | application/zip |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| Unknown | application/octet-stream |
To list uploads for the current wallet:
npx agentcash fetch https://stableupload.dev/api/uploadsnpx agentcash fetch https://stableupload.dev/api/download/k7gm3nqp2npx agentcash discover https://stableupload.dev if you need to verify endpointsUpload a file the user just created: Skip discovery, go straight to wallet check + buy slot + upload.
Upload multiple files: Buy separate slots for each file. Slots can be purchased in parallel but uploads must use the correct uploadUrl for each.
User asks to "share" or "send" a file: Upload it and present the public URL. The URL can be shared anywhere.
Host images for emails:
Upload the image, then reference the publicUrl in email HTML:
<img src="https://f.stableupload.dev/abc/photo.png" alt="Photo" />npx agentcash wallet infofe3e7ab
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.