Documentation
  • INTRODUCTION
    • What is ENS?
    • What is a dWebsite?
    • What is IPFS/IPNS?
    • What is eth.limo?
      • Gateway Basics
        • DNS over HTTPS
  • Beginner
    • How to register an ENS domain/name
    • Setting up a GitHub Repository
    • How To Install IPFS Locally
      • IPFS Desktop (Windows)
      • IPFS Desktop (Linux)
      • IPFS Desktop (Mac)
    • How to use IPFS/IPNS
      • Uploading to IPFS
        • Self-Hosting Instructions for IPFS and IPNS
        • Hosting using a pinning service
    • Setting Up Your ENS Name/Domain
      • Updating Your ENS Content Records
      • Content Hash Overview
        • Understanding Content Hashes, IPNS, and IPFS for ENS
        • Understanding IPFS Content Identifiers (CIDs)
  • IPFS Pinning Providers
    • Filebase
      • Using the Filebase Public IPFS Gateway
      • Filebase IPFS Pinning
  • STATIC SITE BUILDERS/TEMPLATES
    • -
  • Intermediate
    • Using eth.limo with IPFS (Kubo)
    • -
    • -
    • -
  • .ART Resolution
  • .gno Resolution
Powered by GitBook
On this page
  • Response formats
  • JSON
  • DNS Wireformat
  • .ART Support
  • HTTP Response Codes
  1. INTRODUCTION
  2. What is eth.limo?
  3. Gateway Basics

DNS over HTTPS

PreviousGateway BasicsNextHow to register an ENS domain/name

Last updated 1 year ago

Endpoint

eth.limo provides an RFC 8484 comptaible public DoH API which can be accessed at this endpoint:

Currently we only support DNSLink TXT records due to client limitations for handling other record types which are dervied from an ENS contenthash.

What is DNSLink?

DNSLink provides an application friendly specification for linking content between services. Please refer to for a detailed explanation.


Response formats

The eth.limo DoH resolver supports both JSON and DNS Wireformat responses. Please see below for more information.

JSON

GET

The GET verb is reserved for use with JSON replies only. The URL must be constructed with these query strings:

  • name= (Required) - ENS domain name to resolve, i.e. vitalik.eth

  • type=TXT (Required) - At the moment the only supported value for the type= parameter is TXT

  • dns=<base64 encoded DNS message> (Optional) - Send a base64 encoded DNS message instead of relying upon name.

An example query would be:

$ curl 'https://dns.eth.limo/dns-query?name=vitalik.eth&type=TXT'

Which returns the following payload:

{
  "Status": "0",
  "RD": false,
  "RA": false,
  "AD": false,
  "CD": false,
  "TC": false,
  "Question": [
    {
      "type": 16,
      "name": "vitalik.eth"
    }
  ],
  "Answer": [
    {
      "type": 16,
      "name": "vitalik.eth",
      "data": "dnslink=/ipfs/QmQhCuJqSk9fF58wU58oiaJ1qbZwQ1eQ8mVzNWe7tgLNiD/",
      "ttl": 600
    }
  ]
}

The content path is available in .Answer[0].data.

DNS Wireformat

POST

If your application needs support for binary data, please use the POST method along with the Content-Type: application/dns-message header in your request. All data must be binary encoded. Please refer to the documentation of your DoH client for more information on how to properly construct requests.

$ doh -tTXT vitalik.eth https://dns.eth.limo/dns-query
[vitalik.eth]
TTL: 600 seconds
TXT: dnslink=/ipfs/QmQhCuJqSk9fF58wU58oiaJ1qbZwQ1eQ8mVzNWe7tgLNiD/

.ART Support

Our DoH API also supports .art domains. For example:

$ curl 'https://dns.eth.limo/dns-query?name=limo.art&type=TXT'

{"Status":"0","RD":false,"RA":false,"AD":false,"CD":false,"TC":false,"Question":[{"type":16,"name":"limo.art"}],"Answer":[{"type":16,"name":"limo.art","data":"dnslink=/ipfs/bafybeico3uuyj3vphxpvbowchdwjlrlrh62awxscrnii7w7flu5z6fk77y/","ttl":600}]}

HTTP Response Codes

200 - The request was processed successfully

422 - We don't support the contenthash type or are otherwise unable to process the request.

451 - The content is unavailable due to legal reasons.

5xx - Something catastrophic has happened.

In this example, we'll use as our client.

https://dns.eth.limo/dns-query
https://dnslink.dev/
https://github.com/curl/doh