askill
upload-and-share

upload-and-shareSafety 78Repository

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 agentcash.fetch for stableupload.dev endpoints — never curl or WebFetch for the purchase step.

0 stars
1.2k downloads
Updated 2/20/2026

Package Files

Loading files...
SKILL.md

Upload and Share via StableUpload

Upload any local file to S3-backed cloud storage via x402 micropayments. Returns a public URL. No API keys needed.

Setup

See rules/getting-started.md for installation and wallet setup.

Quick Reference

TierMax SizeCost
10mb10 MB$0.02
100mb100 MB$0.20
1gb1 GB$2.00

All uploads expire after 6 months.

TaskEndpointPrice
Buy upload slothttps://stableupload.dev/api/uploadTier-based
List uploadsGET https://stableupload.dev/api/uploadsFree (auth)
Get upload detailsGET https://stableupload.dev/api/download/:uploadIdFree (auth)

Workflow

1. Check wallet balance

agentcash.get_wallet_info()

Ensure sufficient USDC balance for the chosen tier. If balance is low, show the deposit link.

2. Determine the tier

Pick the smallest tier that fits the file. Check file size first with ls -la or wc -c.

TierMax SizeCost
10mb10 MB$0.02
100mb100 MB$0.20
1gb1 GB$2.00

3. Buy the upload slot

agentcash.fetch(
  url="https://stableupload.dev/api/upload",
  method="POST",
  body={"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
}

4. Upload the file via curl

Use Bash to PUT the file to the returned uploadUrl:

curl -s -X PUT "<uploadUrl>" -H "Content-Type: <mime>" --data-binary @/absolute/path/to/file

Critical: Use --data-binary (not -d) to preserve binary content. Use the absolute path.

5. Share the public URL

Present the publicUrl to the user. This URL is publicly accessible immediately and remains live for 6 months.

Common MIME Types

File TypeContent Type
PDFapplication/pdf
PNG imageimage/png
JPEG imageimage/jpeg
CSVtext/csv
JSONapplication/json
Plain texttext/plain
ZIP archiveapplication/zip
Excelapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Unknownapplication/octet-stream

Listing Previous Uploads

To list uploads for the current wallet:

agentcash.fetch_with_auth(
  url="https://stableupload.dev/api/uploads",
  method="GET"
)

Get Upload Details

agentcash.fetch_with_auth(
  url="https://stableupload.dev/api/download/k7gm3nqp2",
  method="GET"
)

Key Details

  • No API keys required — payment is the authentication
  • Upload URLs expire in 1 hour — upload promptly after buying the slot
  • Public URLs last 6 months from purchase date
  • Any file type accepted — contentType is advisory for the browser, not a restriction
  • S3-backed — files stored on AWS S3 with public read access
  • Discovery endpoint: agentcash.discover_api_endpoints(url="https://stableupload.dev") if you need to verify endpoints

Common Patterns

Upload 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" />

Error Handling

  • Insufficient balance: Show the deposit link from get_wallet_info
  • File too large for tier: Suggest the next tier up
  • Upload URL expired: Buy a new slot (the previous payment is non-refundable)
  • curl fails: Verify the file path exists and the uploadUrl is correctly quoted

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

82/100Analyzed 2/24/2026

Well-structured skill with clear triggers, comprehensive workflow steps, and useful tables. Provides actionable guidance for file uploads via stableupload.dev with proper safety warnings. Slightly internal-focused due to MCP tool dependencies and folder structure, but content is thorough and well-organized with good error handling.

78
88
82
82
85

Metadata

Licenseunknown
Version-
Updated2/20/2026
PublisherMerit-Systems

Tags

apigithub-actionssecurity