{"uid":"cap_xdyUL7teqbvYuAG7wt1CR","slug":"objekt-sh-file-upload-ens-keyed-blob-storage-203e06d1","name":"objekt.sh File Upload — ENS-Keyed Blob Storage","description":"File storage for AI agents and ENS names. Upload via MCP, REST, or CLI. Free CDN tier. Permanent Arweave and IPFS options.","url":"https://api.objekt.sh/%7Bname%7D/blob/%7Bkey%7D?utm_source=zero.xyz","method":"PUT","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","bodyType","body"],"properties":{"body":{"properties":{},"description":"Raw bytes body. Signing via X-Upload-Sig / X-Upload-Expiry / X-Upload-Address headers over EIP-712 Upload{upload:'blob/<key>',expiry,name,hash:sha256(body)}"},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"pathParams":{"type":"object","required":["name","key"],"properties":{"key":{"type":"string","pattern":"^[a-z0-9]+(\\.[a-z0-9]+)*$","description":"Dotted namespace key (e.g. proof.twitter)"},"name":{"type":"string","description":"ENS name"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":{"type":"json","example":{"uri":"ipfs://bafybeib…","bytes":234,"permalink":"https://ens.objekt.sh/alice.eth/blob/proof.twitter"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.25","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.25/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_9Y-pXF3Y-O3tpRIhmR9as","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.25","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Upload a file blob to ENS-namespaced storage with optional permanent IPFS/Arweave pinning and CDN delivery","exampleAgentPrompt":"Store this proof-of-ownership JSON file under my ENS name alice.eth with the key proof.twitter on objekt.sh — I want a permanent IPFS link back.","exampleUseCases":[{"title":"Agent credential attestation storage","prompt":"Save this signed credential JSON under my ENS name vitalik.eth with the key credential.json on objekt.sh so I can share a permanent IPFS link with verifiers."},{"title":"AI-generated report publishing","prompt":"Take the market analysis report my agent just produced and upload it to objekt.sh under agent.eth with the key report-2024-q4.md — I need a CDN permalink to share."},{"title":"Proof file pinned to ENS identity","prompt":"Upload this Twitter proof file to objekt.sh under myname.eth with the key proof.twitter and give me back the IPFS URI and permalink."}],"resultDescription":"Returns a JSON object containing the IPFS URI (e.g. ipfs://bafybei…), the number of bytes stored, and a human-readable permalink URL formed as https://ens.objekt.sh/{name}/blob/{key} for public CDN access.","failureModes":["Invalid or unresolvable ENS name returns a 4xx error","Blob key contains illegal characters causing a routing failure","Payment of 0.25 USDC not attached results in 402 Payment Required","File too large for the tier causes a 413 or quota error","Network timeout during upload leaves the blob in an inconsistent state","Arweave/IPFS pinning backend unavailable returns a partial or degraded response"],"whenToPreferThis":"Choose this endpoint when you need to store a file under a specific ENS identity namespace with a stable, human-readable permalink, especially when permanent decentralized storage on IPFS or Arweave is required. Prefer it over generic S3-style storage when ENS-linked identity, censorship resistance, or IPFS compatibility matters. It is particularly suited to AI agents that need to publish outputs, proofs, or credentials tied to a Web3 identity.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T12:34:29.054Z","isFirstParty":false,"canonicalSlug":"objekt-sh-file-upload-ens-keyed-blob-storage-203e06d1"}