🥷
Namespace
AppDev Portal
  • [ Introduction ]
    • ENS
    • Namespace
  • Official Links
  • Apps
    • Overview
    • Onchain Subnames (App)
      • Search & Register
      • Wizard
        • Listing an ENS Name
        • Features List
      • ENS Widget
      • Farcaster Frames
        • Default Frame
        • Custom Frame
    • Offchain Subnames (DevApp)
      • Subnames
      • Resolver set
      • API keys
  • How-to Guides and Demos
  • Dev Docs
    • SDK
      • Offchain Manager
        • Installation
        • Generate API key
        • Create or Update Subname
        • DeleteSubname
        • IsSubnameAvailable
        • GetFilteredSubnames
        • AddressRecords
          • ChainName
        • TextRecords
        • DataRecords
      • Indexer Manager
        • Installation
        • Fetch L2 Subnames
        • Fetch L2 Registries
      • Mint Manager
        • Installation
        • GetMintDetails
        • GetMintTransactionParameters
        • IsSubnameAvailable
        • How To Mint L1 & L2 subname via mint-manager
      • Namespace Client (deprecated)
        • Installation
        • GetListedName
        • GetMintDetails
        • GetMintTransactionParameters
        • IsSubnameAvailable
        • GenerateAuthToken
    • APIs
      • Offchain Manager
      • Mint Manager
    • Infrastructure
      • Namespace L2 Subnames
    • Subpages
  • Ecosystem
    • Use Cases
  • Jobs
    • 📌We’re Hiring 👇
    • 🧑‍💻 Full-Stack Dev
    • 🥷 DevRel Lead
    • 💼 BD Lead
    • 🐣 Intern (dev role)
Powered by GitBook
On this page
  1. Dev Docs
  2. APIs

Offchain Manager

PreviousAPIsNextMint Manager

Last updated 27 days ago

The Offchain Manager is a backend service that provides a RESTful API for managing offchain ENS subnames. It allows clients to create, update, delete, and retrieve subnames and their associated records.

Get a single subname by its full name

get
Path parameters
fullSubnamestringRequired

The full subname to retrieve (e.g., subname.eth)

Responses
200
Returns the subname details
application/json
400
Bad request - Invalid subname format or length
get
GET /api/v1/subnames/{fullSubname} HTTP/1.1
Host: 
Accept: */*
{
  "id": "text",
  "fullName": "text",
  "parentName": "text",
  "label": "text",
  "texts": {},
  "addresses": {},
  "metadata": {},
  "contenthash": "text",
  "namehash": "text"
}

Deletes an existing subname ( *Api Key Required )

delete
Authorizations
Path parameters
fullSubnamestringRequired
Responses
201
Subname deleted successfully
401
Api key not present or invalid
404
Not Found - Subname not found
delete
DELETE /api/v1/subnames/{fullSubname} HTTP/1.1
Host: 
x-auth-token: YOUR_API_KEY
Accept: */*

No content

  • GETGet a single subname by its full name
  • DELETEDeletes an existing subname ( *Api Key Required )
  • POSTQuery multiple subnames
  • POSTCreate a new subname or updates an existing subname ( *Api Key Required )

Query multiple subnames

post
Body
parentNamestringRequired

Subname parent name

labelSearchstringOptional

Search subnames by label

pagenumberOptional

Current page. Defaults to 1

sizenumberOptional

Page size. Defaults to 25

ownerstringOptional

Search by subname ownership

metadataobjectOptional

Search by metadata properties

Responses
200
Returns a paged response of subnames
application/json
post
POST /api/v1/subnames/search HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 89

{
  "parentName": "text",
  "labelSearch": "text",
  "page": 1,
  "size": 1,
  "owner": "text",
  "metadata": {}
}
200

Returns a paged response of subnames

{
  "size": 1,
  "page": 1,
  "totalItems": 1,
  "items": [
    {
      "id": "text",
      "fullName": "text",
      "parentName": "text",
      "label": "text",
      "texts": {},
      "addresses": {},
      "metadata": {},
      "contenthash": "text",
      "namehash": "text"
    }
  ]
}

Create a new subname or updates an existing subname ( *Api Key Required )

post
Authorizations
Body
parentNamestring · min: 7 · max: 255Required

Parent ENS name (e.g., oppunk.eth)

labelstring · min: 1 · max: 255Required

Subname label (e.g., alice if full name is alice.oppunk.eth)

ownerstringOptional

Address of the new subname owner (must be a valid Ethereum address)

Example: 0x1234...abcd
contenthashstringOptional

Contenthash (e.g., for IPFS/IPNS/Skynet)

Example: ipfs://0xe30101701220eec561a728cb61c29cfae...
ttlnumberOptional

TTL value in seconds

Responses
200
Subname/Updated created successfully
401
Api key not present or invalid
post
POST /api/v1/subnames HTTP/1.1
Host: 
x-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 253

{
  "parentName": "text",
  "label": "text",
  "texts": [
    {
      "key": "text",
      "value": "text"
    }
  ],
  "addresses": [
    {
      "coin": 1,
      "value": "text"
    }
  ],
  "metadata": [
    {
      "key": "text",
      "value": "text"
    }
  ],
  "owner": "0x1234...abcd",
  "contenthash": "ipfs://0xe30101701220eec561a728cb61c29cfae...",
  "ttl": 1
}

No content