Paid file and static site hosting for agents. Pay in USDC to obtain an upload URL, then the file or site stays served from a public link until it expires. Tiered pricing, from 0.005 to 2 dollars.
Pay from $2.00 in USDC on Base / Solana, settled onchain via the x402 protocol, no signup, no API key needed.
ASSESSMENT
updated 57m agoEvidence-backed signals, not a single score. Click any chip for the proof. Measured values stay read-only; unknown is honest.
reliability 100%
- uptime 24h
- 100%
- uptime 7d
- 100%
- uptime 30d
- 100%
- uptime 90d
- 100%
- response p95
- 639ms
- avg response
- 354ms
- total checks
- 70
compliance A (11/11)
11 of 11 x402 conformance checks pass. Full checklist below.
price $2.00 (p92 in AI)
- price (min)
- $2.00
- category percentile (min)
- p92 in AI
- endpoints / prices
- 2 / 1
- model
- flat
- stability
- 100%
risk clean
No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.
traction $15.36 30d · 110 buyers
- volume 30d
- $15.36
- buyers 30d
- 110
- settlements 30d
- 1,311
- last settlement
- 2026-07-21
- top buyer share
- 33% of 30d volume
- trend 7d vs 30d
- 0.41x the 30d daily rate
- networks
- eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d
Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.
Top buyer share is a concentration signal, not part of the ranking score.
WHAT IT DOES
ai-derivedProvides pay-per-upload file hosting with static site deployment capabilities
- category
- file-hosting
- in
- body
AI-generated summary. The measured data is never altered by it.
ENDPOINTS
| METHOD | PATH | DESCRIPTION | PRICE | NETWORK | ASSET |
|---|---|---|---|---|---|
| POST | /api/site | $2.00 | Base/Solana | USDC | |
| POST | /api/upload | $2.00 | Base/Solana | USDC |
REQUEST / RESPONSE EXAMPLE
An unpaid request to POST /api/site returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.
curl -i -X POST 'https://stableupload.dev/api/site'
// 402 response (captured by monitor) · 2 payloads · click to expand
[
{
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x06dFF3c8380b5D1799874adA903fc3422882FD6f",
"amount": "2000000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"
},
"payTo": "95xcrFtRVn2fkoAKiCUKxPpTc1GN8MTyonVwLFfJfzux",
"amount": "2000000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://stableupload.dev/api/site",
"tags": [
"Site"
],
"method": "POST",
"mimeType": "application/json",
"description": "Buy a site upload slot. Upload a zip file, then activate to extract and serve as a static site.",
"serviceName": "StableUpload"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"tier": "short-10mb",
"filename": "site.zip"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"maxSize": 10485760,
"postUrl": "https://stableupload-prod.s3.us-east-1.amazonaws.com/",
"uploadId": "bs94s5b4ca",
"expiresAt": "2026-05-02T16:00:00.000Z",
"uploadUrl": "https://stableupload-prod.s3.us-east-1.amazonaws.com/",
"postFields": {
"key": "uploads/bs94s5b4ca/site.zip",
"policy": "base64-policy",
"x-amz-date": "20260425T160000Z",
"Content-Type": "application/zip",
"x-amz-algorithm": "AWS4-HMAC-SHA256",
"x-amz-signature": "hex-signature",
"x-amz-credential": "AKIAEXAMPLE/20260425/us-east-1/s3/aws4_request"
},
"curlExample": "curl -X POST \"https://stableupload-prod.s3.us-east-1.amazonaws.com/\" -F \"key=uploads/bs94s5b4ca/site.zip\" -F \"Content-Type=application/zip\" -F \"x-amz-algorithm=AWS4-HMAC-SHA256\" -F \"x-amz-credential=AKIAEXAMPLE/20260425/us-east-1/s3/aws4_request\" -F \"x-amz-date=20260425T160000Z\" -F \"policy=base64-policy\" -F \"x-amz-signature=hex-signature\" -F \"[email protected];type=application/zip\"",
"uploadMethod": "post",
"uploadUrlExpiresAt": "2026-04-25T16:15:00.000Z"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"filename",
"tier"
],
"properties": {
"tier": {
"enum": [
"10mb",
"100mb",
"1gb",
"short-10mb",
"short-100mb",
"short-1gb"
],
"type": "string",
"description": "Site tier. Default 6-month tiers: 10mb ($0.02), 100mb ($0.20), 1gb ($2.00). Short-term 7-day workflow site tiers: short-10mb ($0.005), short-100mb ($0.02), short-1gb ($0.10). short-5gb is not supported for sites."
},
"filename": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Name of the zip file to upload"
},
"policyTtlSeconds": {
"type": "integer",
"maximum": 86400,
"minimum": 60,
"description": "Optional upload URL/form expiration in seconds, 60-86400. Use longer TTLs only when reserving an output slot for a downstream service."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"uploadId",
"uploadUrl",
"uploadMethod",
"uploadUrlExpiresAt",
"expiresAt",
"maxSize",
"curlExample"
],
"properties": {
"txHash": {
"type": "string"
},
"maxSize": {
"type": "number"
},
"postUrl": {
"type": "string"
},
"uploadId": {
"type": "string"
},
"expiresAt": {
"type": "string"
},
"uploadUrl": {
"type": "string"
},
"postFields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"curlExample": {
"type": "string"
},
"uploadMethod": {
"enum": [
"put",
"post"
],
"type": "string"
},
"uploadUrlExpiresAt": {
"type": "string"
}
},
"additionalProperties": false
}
}
}
}
}
}
},
"x402Version": 2
},
{
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x06dFF3c8380b5D1799874adA903fc3422882FD6f",
"amount": "2000000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"
},
"payTo": "95xcrFtRVn2fkoAKiCUKxPpTc1GN8MTyonVwLFfJfzux",
"amount": "2000000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 300
}
],
"resource": {
"url": "https://stableupload.dev/api/upload",
"tags": [
"Upload"
],
"method": "POST",
"mimeType": "application/json",
"description": "Buy an upload slot. Agent uploads file via returned URL.",
"serviceName": "StableUpload"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"tier": "short-10mb",
"filename": "quick-note.txt",
"contentType": "text/plain"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"maxSize": 10485760,
"postUrl": "https://stableupload-prod.s3.us-east-1.amazonaws.com/",
"uploadId": "2s42wjsk3a",
"expiresAt": "2026-05-02T16:00:00.000Z",
"publicUrl": "https://f.stableupload.dev/2s42wjsk3a/quick-note.txt",
"uploadUrl": "https://stableupload-prod.s3.us-east-1.amazonaws.com/",
"postFields": {
"key": "uploads/2s42wjsk3a/quick-note.txt",
"policy": "base64-policy",
"x-amz-date": "20260425T160000Z",
"Content-Type": "text/plain",
"x-amz-algorithm": "AWS4-HMAC-SHA256",
"x-amz-signature": "hex-signature",
"x-amz-credential": "AKIAEXAMPLE/20260425/us-east-1/s3/aws4_request"
},
"curlExample": "curl -X POST \"https://stableupload-prod.s3.us-east-1.amazonaws.com/\" -F \"key=uploads/2s42wjsk3a/quick-note.txt\" -F \"Content-Type=text/plain\" -F \"x-amz-algorithm=AWS4-HMAC-SHA256\" -F \"x-amz-credential=AKIAEXAMPLE/20260425/us-east-1/s3/aws4_request\" -F \"x-amz-date=20260425T160000Z\" -F \"policy=base64-policy\" -F \"x-amz-signature=hex-signature\" -F \"[email protected];type=text/plain\"",
"uploadMethod": "post",
"uploadUrlExpiresAt": "2026-04-25T16:15:00.000Z"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"filename",
"contentType",
"tier"
],
"properties": {
"tier": {
"enum": [
"10mb",
"100mb",
"1gb",
"short-10mb",
"short-100mb",
"short-1gb",
"short-5gb"
],
"type": "string",
"description": "Upload tier. Default 6-month tiers: 10mb ($0.02), 100mb ($0.20), 1gb ($2.00). Short-term 7-day workflow tiers: short-10mb ($0.005), short-100mb ($0.02), short-1gb ($0.10), short-5gb ($0.50, file uploads only)."
},
"filename": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Name of the file to upload"
},
"contentType": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "MIME type of the file (e.g. image/png, video/mp4)"
},
"policyTtlSeconds": {
"type": "integer",
"maximum": 86400,
"minimum": 60,
"description": "Optional upload URL/form expiration in seconds, 60-86400. Use longer TTLs only when reserving an output slot for a downstream service."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"uploadId",
"uploadUrl",
"uploadMethod",
"uploadUrlExpiresAt",
"publicUrl",
"expiresAt",
"maxSize",
"curlExample"
],
"properties": {
"txHash": {
"type": "string"
},
"maxSize": {
"type": "number"
},
"postUrl": {
"type": "string"
},
"uploadId": {
"type": "string"
},
"expiresAt": {
"type": "string"
},
"publicUrl": {
"type": "string"
},
"uploadUrl": {
"type": "string"
},
"postFields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"curlExample": {
"type": "string"
},
"uploadMethod": {
"enum": [
"put",
"post"
],
"type": "string"
},
"uploadUrlExpiresAt": {
"type": "string"
}
},
"additionalProperties": false
}
}
}
}
}
}
},
"x402Version": 2
}
] UPTIME
RECENT CHECKS
OVER TIME
All charts share the 30d window selected here. Every series is also served as JSON at /api/v1/services/stableupload/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted).
Median across 2 endpoints. Use the selector to isolate one.
COMPLIANCE
11/11 checks pass · grade A- 402 payload captured
- accepts[] array present
- payTo address recoverable
- payTo at accepts[0].payTo (conformant shape)
- payTo is a valid on-chain address
- atomic price declared
- atomic price in a sane range
- asset (token) address declared
- network resolves to CAIP-2
- payment scheme declared
- served over HTTPS
EMBED THIS BADGE
<a href="https://x402-list.com/services/stableupload?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/stableupload.svg" alt="StableUpload listed on x402-list" height="28"> </a>
[](https://x402-list.com/services/stableupload?utm_source=badge&utm_medium=referral&utm_campaign=embed)
<a href="https://x402-list.com/services/stableupload?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/stableupload.svg?data=uptime" alt="StableUpload uptime on x402-list" height="28"> </a>