Download a file from IPFS via Pinata, paying $0.001 per request over MPP/Tempo.
What it does
This MPP endpoint lets you retrieve a publicly pinned file from IPFS through Pinata's infrastructure. You supply the IPFS CID as a path parameter and pay per request using the Machine Payments Protocol (MPP) settled on the Tempo L2 network (chain ID 4217). No Pinata account or API key is required — authentication is handled entirely through the 402 payment challenge.
The payment challenge decoded from the probe shows an amount of 1000 base units of a Tempo stablecoin (likely pathUSD, 6 decimals), which works out to $0.001 per request. The existing listing title states $0.01, but the on-chain challenge indicates $0.001; the discrepancy is noted as a warning. The recipient address is 0x400e211ba3494c9a84da4c6ebcef1ece9a46ec69, and the challenge expires far in the future (April 2026), suggesting a long-lived pricing configuration.
Pinata also offers a companion upload endpoint at /v1/pin/public that accepts POST requests with a fileSize query parameter. Together, the upload and download endpoints provide account-free, crypto-settled IPFS storage and retrieval. Downloaded content is standard IPFS data keyed by CID, so responses will vary by the pinned file's content type and size.
Capabilities
Use cases
- —AI agents fetching IPFS-hosted datasets or model artifacts without needing a Pinata account
- —Automated pipelines that retrieve content-addressed files from IPFS with per-request micropayments
- —Decentralized app backends that need on-demand IPFS reads settled in stablecoin
Fit
Best for
- —Programmatic, account-free IPFS file retrieval
- —Micropayment-based access to publicly pinned IPFS content
- —Agent workflows that already hold Tempo L2 stablecoins
Not for
- —Bulk or high-volume IPFS downloads where a subscription gateway would be cheaper
- —Uploading files to IPFS (use the companion /v1/pin/public POST endpoint instead)
- —Retrieving private or access-controlled IPFS content
Quick start
import { Mppx, tempo } from 'mppx/client'
import { privateKeyToAccount } from 'viem/accounts'
const account = privateKeyToAccount('0xabc…123')
Mppx.create({ methods: [tempo({ account })] })
const res = await fetch(
'https://mpp.pinata.cloud/v1/pin/public/QmExampleCid',
{ method: 'GET' }
)
const data = await res.blob()
console.log('Downloaded', data.size, 'bytes')Endpoint
Quality
The endpoint is live (402 challenge captured) and the landing page confirms the service and shows a code example, but there is no OpenAPI schema, no dedicated docs page (404), no response examples, and the download endpoint specifically is not documented — only the upload flow is shown. Price is inferred from the decoded challenge; currency token address is not independently confirmed.
Warnings
- —The existing listing states $0.01 per request, but the decoded MPP challenge shows amount=1000 with an assumed 6-decimal stablecoin, yielding $0.001. The actual price may differ if the token uses different decimals.
- —The currency contract address 0x20C000000000000000000000b9537d11c60E8b50 on chain 4217 (Tempo) could not be independently verified; the token name and decimal count are assumed (pathUSD, 6 decimals).
- —No documentation page exists for this endpoint (/docs returns 404). Behavior is inferred from the URL pattern and the companion upload example on the landing page.
- —Response format is undocumented — assumed to be raw file bytes keyed by CID.
Citations
- —The endpoint is live and returns a 402 MPP challenge with method=tempo, intent=charge, amount=1000, chainId=4217https://mpp.pinata.cloud/v1/pin/public/:cid
- —Pinata offers account-free IPFS uploads and downloads powered by MPP, paying with Tempo stablecoins via HTTP 402https://mpp.pinata.cloud
- —The upload companion endpoint is at /v1/pin/public with a fileSize query parameter and POST methodhttps://mpp.pinata.cloud