B
Store | nosub.club Mainnet API — MPP Grade B
storagedeveloper-tools
Preview responses and set spending limits for this service through use.mpp.land
Free budget controls, response samples, and reliability routing.
On-chain Activity
1
Total txs
0
7d txs
$0.00
7d volume
$0.04
Total volume
1
Unique payers
0
Unique clients
7-day activity
▁▁▁▁▁▁▁
Compliance Checks
All paid ops declare 402 response
MUST
10pt
All x-payment-info valid
MUST
10pt
Challenge has Cache-Control: no-store
MUST
5pt
Challenge digest on POST
SHOULD
3pt
Challenge has expires
SHOULD
3pt
Challenge has Problem Details
SHOULD
2pt
Challenge has required params
MUST
5pt
Challenge has WWW-Authenticate
MUST
5pt
Challenge returns 402
MUST
10pt
Correct Content-Type
MUST
5pt
Has Cache-Control on discovery
SHOULD
5pt
Has input schemas
SHOULD
5pt
Has llms.txt
SHOULD
5pt
Has /openapi.json at root
MUST
10pt
Has required top-level fields
MUST
10pt
Served over HTTPS
MUST
10pt
Uses standard categories
SHOULD
2pt
2 issues
- 402 response missing Cache-Control: no-store
- POST endpoint challenge missing digest parameter (SHOULD per spec)
Paid Operations (2)
POST /v1/files/public dynamic
Upload a public file to Walrus storage
Upload a public file to Walrus storage. Supports direct upload for small files and paid upload sessions for agent clients or large files. Runtime 402 challenges are authoritative for exact payment parameters.
- Amount
- map[currency:USD max:100.00 min:0.01 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
offers: [map[amount:<nil> currency:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 description:USDC on base. Exact amount is returned by the runtime 402 challenge. intent:charge method:x402] map[amount:<nil> currency:0x20c000000000000000000000b9537d11c60e8b50 description:USDC.e on Tempo. Exact amount and payment parameters are returned by the runtime 402 challenge. intent:charge method:tempo]] price: map[currency:USD max:100.00 min:0.01 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| duration | query | integer | Yes | Requested storage duration in days. Provide it as a query parameter. JSON uploads may also include duration in the body, but it must match this query value. The service converts this to Walrus epochs by rounding up with 14-day epochs on mainnet. |
| contentType | query | string | No | MIME type of the uploaded content (e.g. text/plain, application/json, application/msword). When provided, the value is stored as metadata on the Walrus blob object and the returned aggregatorUrl will serve the file with the correct Content-Type header. |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| contentBase64 | string | No | Base64-encoded file bytes to store. Suitable for files under ~1 MB raw; base64 encoding adds ~33% overhead. Use the upload session method (maxSizeBytes) for larger files. |
| contentText | string | No | UTF-8 text content to store. Suitable for small text content. Use the upload session method (maxSizeBytes) for large text files. |
| contentType | string | No | MIME type of the uploaded content. Stored as metadata and used by the returned aggregatorUrl. |
| duration | integer | No | Requested storage duration in days. Provide it as a query parameter. JSON uploads may also include duration in the body, but it must match this query value. The service converts this to Walrus epochs by rounding up with 14-day epochs on mainnet. |
| maxSizeBytes | integer | No | Declared maximum byte size for a paid upload session (METHOD 2). Triggers the two-step flow: this POST returns HTTP 200 with an uploadUrl; then PUT the raw file bytes to that URL. Use this for files larger than ~1 MB. The actual PUT payload may be smaller but must not exceed this value. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| contentType | string | - |
| expiresAt | string (date-time) | - |
| maxSizeBytes | integer | - |
| method | string | - |
| uploadUrl | string (uri) | - |
POST /v1/files/public/{blobId}/extend dynamic
Extend public file storage
Extends a file previously stored by this service after payment. Runtime 402 challenges are authoritative for exact payment parameters.
- Amount
- map[currency:USD max:100.00 min:0.01 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
offers: [map[amount:<nil> currency:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 description:USDC on base. Exact amount is returned by the runtime 402 challenge. intent:charge method:x402] map[amount:<nil> currency:0x20c000000000000000000000b9537d11c60e8b50 description:USDC.e on Tempo. Exact amount and payment parameters are returned by the runtime 402 challenge. intent:charge method:tempo]] price: map[currency:USD max:100.00 min:0.01 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| blobId | path | string | Yes | - |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| duration | integer | Yes | Requested storage duration in days. Provide it as a query parameter. JSON uploads may also include duration in the body, but it must match this query value. The service converts this to Walrus epochs by rounding up with 14-day epochs on mainnet. |
| storageObjectId | string | No |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| aggregatorUrl | string (uri) | - |
| blobId | string | - |
| expiresAt | string (date-time) | - |
| storageObjectId | string | - |
Payment Methods
- Methods
- tempo (from challenge)
- Intents
- charge (from challenge)
- Currencies (discovery)
- -
- Currency (challenge)
- USDC.e on Tempo Mainnet Presto (Tempo Mainnet Presto)
- Multiple Challenges
- No
Recipients
- 0x1697e369cbbe8eb7b710152b64c59a6f5d26a56a
Per-endpoint breakdown
- POST /v1/files/public
- 0x1697e369cbbe8eb7b710152b64c59a6f5d26a56a
- POST /v1/files/public/{blobId}/extend
- 0x1697e369cbbe8eb7b710152b64c59a6f5d26a56a
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (419ms)
- Challenge
- Reachable (350ms)
- Last Checked
Schema Completeness
- Paid Operations
- 2
- With Input Schema
- 2
- With Description
- 2
Documentation
- Homepage
- https://store.nosub.club
- API Reference
- https://store.nosub.club/openapi.json
- llms.txt
- -
Discovery
- OpenAPI URL
- https://store.nosub.club/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 1.0.0
- Document Size
- 16312 bytes
- Document Hash
- c3fcddf0091753867493d76f2a6b0a3b170047a45bac677b92a17bd8627f4f74
Version History (13 snapshots)
Grade: C (67%) → B (76%)
Grade: B (76%) → C (67%)
Grade: C (67%) → B (76%)
Grade: B (76%) → C (67%)
- document hash changed (no semantic differences detected)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-06-08 | B | 76% | 480ms | Up |
| 2026-06-09 | B | 76% | 480ms | Up |
| 2026-06-10 | B | 76% | 666ms | Up |
| 2026-06-11 | B | 76% | 449ms | Up |
| 2026-06-12 | B | 76% | 454ms | Up |
| 2026-06-13 | B | 76% | 958ms | Up |
| 2026-06-14 | B | 76% | 566ms | Up |
| 2026-06-15 | B | 76% | 467ms | Up |
| 2026-06-16 | B | 76% | 475ms | Up |
| 2026-06-17 | B | 76% | 452ms | Up |
| 2026-06-18 | B | 76% | 501ms | Up |
| 2026-06-19 | B | 76% | 431ms | Up |
| 2026-06-20 | B | 76% | 453ms | Up |