Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

API Endpoints

api.objekt.sh — General

MethodPathDescription
PUT /{key}Upload a file
GET /{key}Download a file
POST /deployDeploy a static site
GET /pricingCurrent storage pricing

Gateways

DomainDescription
ipfs.objekt.sh/{cid}IPFS content gateway
ar.objekt.sh/{txId}Arweave content gateway
tmp.objekt.sh/{slug}Temporary deploy previews

Reveal Service

reveal.objekt.sh — Pay-to-Reveal

MethodPathAuthPaymentDescription
PUT /{name}/{key}EIP-712Deposit view key
GET /{name}/{key}x402Purchase view key
GET /{name}List keys + prices
DELETE /{name}/{key}EIP-712Remove key
GET /attestationTEE attestation proof

Deposit Request

PUT /1a35e1.eth/phone
Content-Type: application/json
 
{
  "viewKey": "objekt_vk_...",
  "price": "5.00",
  "contentUri": "ipfs://Qm...",
  "ttl": "7d",
  "sig": "0x...",
  "expiry": "1711843200000",
  "unverifiedAddress": "0x..."
}

Deposit Response

{
  "namespace": "1a35e1.eth",
  "keyName": "phone",
  "commitment": "0x...",
  "price": "5.00",
  "expiresAt": 1711929600000
}

Purchase Response

{
  "viewKey": "objekt_vk_...",
  "contentUri": "ipfs://Qm...",
  "commitment": "0x..."
}

List Response

{
  "namespace": "1a35e1.eth",
  "keys": [
    {
      "keyName": "phone",
      "price": "5.00",
      "contentUri": "ipfs://Qm...",
      "commitment": "0x...",
      "expiresAt": 1711929600000
    }
  ]
}

Authentication

All authenticated endpoints use EIP-712 typed data signatures:

  • Domain: { name: "Objekt", version: "1" }
  • Signature expiry: 60 seconds
  • Server recovers the signer address and verifies ENS ownership (for .eth names) or address match (for 0x namespaces)