Help a n00b - Offchain Gasless DNSSEC Names in ENS

To enable just an Ethereum address:

ENS1 dnsname.ens.eth 0xcc9506Fa9c23f5f00fC6305374072862cAd57B3e


The following is a technical demo:

TOR supports this feature, however in a purely-gasless setup, it can only relay your name to another server. TOG is one possible server.

I operate a demo TOG at https://raffy.xyz/tog/. It supports many different types of routers, which you can think of as applications that translate a name into ENS.

If you resolve the name a.b.c using the mydns router, the TOG will fetch the contents of https://a.b.c/mydns.json and display it in ENS, using the human-readable format defined in resolverworks/enson.js.

It also lets you specify a basename: if base=raffy.xyz, then a.b.c will translate to https://raffy.xyz/mydns/a.b.c.json.

I created pmbug.raffy.xyz with the following DNS TXT:

ENS1 0x84c5AdB77dd9f362A1a3480009992d8d47325dc3 0x2Fc3Fd8444211091De2DF9052741f80e4d78eeee https://raffy.xyz/tog/mydns/e1?base=raffy.xyz

  • 0x84c5..5dc3 β€” TOR contract on mainnet
  • 0x2Fc3..eeee β€” the signer of my server
  • https://raffy.xyz/tog/mydns/e1?base=raffy.xyz
    • URL of my server
    • /mydns β€” which router to use
    • /e1 β€” which TOR resolver
    • ?base=raffy.eth β€” provide an alternative basename to mydns

I also created https://raffy.xyz/mydns/pmbug.raffy.xyz.json

{
	"name": "pmbug",
	"description": "TOR/TOG demo for ENS",
	"avatar": "https://discuss.ens.domains/user_avatar/discuss.ens.domains/pmbug/144/10474_2.png",
	"$eth": "0xcc9506Fa9c23f5f00fC6305374072862cAd57B3e",
	"$btc": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
	"url": "https://discuss.ens.domains/t/help-a-n00b-offchain-gasless-dnssec-names-in-ens/19137"
}

You can test this yourself:

  1. Set your DNS TXT:

ENS1 0x84c5AdB77dd9f362A1a3480009992d8d47325dc3 0x2Fc3Fd8444211091De2DF9052741f80e4d78eeee https://raffy.xyz/tog/mydns/e1

  1. Create a JSON file at https://pmbug.com/mydns.json
  2. Resolve pmbug.com in ENS