
Upload And Share
- 117 installs
- 16 repo stars
- Updated July 14, 2026
- merit-systems/agentcash-skills
Let agents upload files and generate shareable links through AgentCash for document handoff, collaboration, and persistent artifact delivery.
About
AgentCash upload-and-share skill teaches Claude to implement agent file upload, link generation, and distribution via merit-systems/agentcash-skills, covering storage APIs, permissions, and reliable handoff of artifacts to end users.
- File upload orchestration
- Shareable link generation
- Access control and expiry options
- AgentCash storage API patterns
- Error recovery for large uploads
Upload And Share by the numbers
- 117 all-time installs (skills.sh)
- +3 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #3,880 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/merit-systems/agentcash-skills --skill upload-and-shareAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 117 |
|---|---|
| repo stars | ★ 16 |
| Last updated | July 14, 2026 |
| Repository | merit-systems/agentcash-skills ↗ |
What it does
Let agents upload files and generate shareable links through AgentCash for document handoff, collaboration, and persistent artifact delivery.
Files
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
| 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) |
| Buy site slot | https://stableupload.dev/api/site | Tier-based |
| Activate site | POST https://stableupload.dev/api/site/activate | Free (auth) |
| Update site | PUT https://stableupload.dev/api/site | Free (auth) |
| Renew site | https://stableupload.dev/api/site/renew | Tier-based |
| Attach domain | POST https://stableupload.dev/api/site/domain | Free (auth) |
| Detach domain | DELETE https://stableupload.dev/api/site/domain | Free (auth) |
| Domain status | GET https://stableupload.dev/api/site/domain/status?uploadId=... | Free (auth) |
Workflow
1. Check wallet balance
npx agentcash@latest balanceEnsure sufficient USDC balance for the chosen tier. If balance is low and the user needs funding details, run npx agentcash@latest accounts to get deposit links and wallet addresses.
2. Determine the tier
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 |
3. Buy the upload slot
npx agentcash@latest 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
}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/fileCritical: 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 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 |
Listing Previous Uploads
To list uploads for the current wallet:
npx agentcash@latest fetch https://stableupload.dev/api/uploadsGet Upload Details
npx agentcash@latest fetch https://stableupload.dev/api/download/k7gm3nqp2Key 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:
npx agentcash@latest discover https://stableupload.devif 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" />Static Site Hosting
Host static sites (HTML/CSS/JS) with custom domains and automatic HTTPS.
Deploy a Site
1. Buy a site slot (paid, tier-based):
npx agentcash@latest fetch https://stableupload.dev/api/site -m POST -b '{"filename": "my-site.zip", "tier": "100mb"}'Returns {uploadId, uploadUrl}.
2. Upload the zip:
curl -X PUT "$uploadUrl" -H "Content-Type: application/zip" --data-binary @site.zip3. Activate the site (SIWX, free):
npx agentcash@latest fetch https://stableupload.dev/api/site/activate -m POST -b '{"uploadId": "..."}'Returns {siteUrl, fileCount, files}. Site is live at https://{uploadId}.s.stableupload.dev/.
Update an Existing Site
Update for free: PUT /api/site to get a new upload URL, upload the new zip, then activate.
npx agentcash@latest fetch https://stableupload.dev/api/site -m PUT -b '{"uploadId": "...", "filename": "my-site.zip"}'Then upload the new zip and call activate again.
Custom Domain
npx agentcash@latest fetch https://stableupload.dev/api/site/domain -m POST -b '{"uploadId": "...", "hostname": "www.example.com"}'Returns DNS records to configure. Check status:
npx agentcash@latest fetch "https://stableupload.dev/api/site/domain/status?uploadId=..."Detach a domain:
npx agentcash@latest fetch https://stableupload.dev/api/site/domain -m DELETE -b '{"uploadId": "...", "hostname": "www.example.com"}'Renew a Site
npx agentcash@latest fetch https://stableupload.dev/api/site/renew -m POST -b '{"uploadId": "...", "count": 4}'Extends 4 x 6 months.
Notes
- Max 500 files per site
- Tier limit applies to uncompressed size
- Custom domains get automatic HTTPS via Cloudflare
Error Handling
- Insufficient balance: Run
npx agentcash@latest accountsto show deposit links and wallet addresses - 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
Getting Started
Setup
1. Install the agentcash CLI:
npm install -g agentcash2. Check wallet:
npx agentcash@latest balance3. Fund wallet (if needed):
- Redeem invite:
npx agentcash@latest redeem YOUR_CODE - Or run
npx agentcash@latest accountsto get Base or Solana deposit links and wallet addresses - Or use the deposit UI:
https://x402scan.com/mcp/deposit/<your-wallet-address>
Troubleshooting
| Issue | Solution |
|---|---|
| "Command not found" | Run npm install -g agentcash |
| "Insufficient balance" | Fund wallet with USDC |
| "Payment failed" | Check balance, retry (transient errors) |
| Upload URL expired | Buy a new slot — upload URLs expire after 1 hour |
| curl fails | Use --data-binary and absolute file path |
| "405 Method Not Allowed" | Verify endpoint path matches exactly from Quick Reference table in SKILL.md |
Pricing Reference
| Tier | Max Size | Price |
|---|---|---|
| 10mb | 10 MB | $0.02 |
| 100mb | 100 MB | $0.20 |
| 1gb | 1 GB | $2.00 |