OpenAlias, the best cryptocurrency wallet feature you’ve never heard of

Justin Ehrenhofer
5 min readSep 28, 2021

--

Unstoppable Domains and ENS have gotten a lot of recent attention for many good reasons. They allow users to pay for a domain on the Ethereum blockchain.

Such domains unquestionably come with several advantages. Unstoppable has no recurring costs to hold the domain. Unstoppable and ENS domains are not easily censored, and they allow for simpler payment addresses.

OpenAlias doesn’t help with the first two. But if you already own a legacy domain, you can very easily configure a wide variety of simpler payment addresses.

Clearly OpenAlias doesn’t have VC money to waste on a logo

OpenAlias isn’t new. The original standard was created in 2014.

It’s also not a company who will sell you a domain or anything else. It’s an open standard for cryptocurrency wallets and users to follow. That’s it.

OpenAlias is beautifully simple. It allows users to say “associate this string with these addresses” through a DNS TXT record.

If you needed to pay me, I would tell you my OpenAlias address. You would then open a compatible wallet and pay that human-friendly address instead of copying/pasting a long address or scanning a QR code.

If you believe by seeing, download a compatible wallet (such as Cake Wallet) and try to send Monero to justin.ehrenhofer.org. Your wallet will perform a DNS lookup for the TXT entry “justin” to on my domain “ehrenhofer.org” to see if there is an XMR address address associated with “justin”. Shocking: there is one set up.

One of these is slightly easier to remember

The OpenAlias standard treats a period (.) and an asperand (@) as the same, so you can configure your email address (on a custom domain you have) to receive payments.

You can pick up some 2 letter domains for as cheap as $60/year. gh.hockey is yours if you can snag it fast enough; this is far more reasonable to type than a full address. 3 letter domains start at ~$12/year.

Is this just a Monero thing?

Absolutely not. But the Monero ecosystem has been the fastest to adopt this open standard.

OpenAlias is supported in nearly all Monero wallets, including the official Monero GUI/CLI, Cake Wallet, Monerujo, Feather Wallet, and MyMonero.

Cake Wallet even supports OpenAlias for Bitcoin and Litecoin. Sadly no other Bitcoin and Litecoin wallets support OpenAlias as far as I know.

What about Namecoin?

Namecoin has allowed users to register domains on their blockchain far before Unstoppable Domains, ENS, and even Ethereum have existed.

OpenAlias is compatible with Namecoin domains. Thus, you can buy a Namecoin domain for effectively nothing and add the OpenAlias records to this domain. So long as Namecoin still exists (and you renew it for a trivial fee every ~200 days), this will resolve.

The roadblock in practice is that few wallets know how to talk to the Namecoin blockchain to resolve these addresses. So in practice, this doesn’t work in most wallets :/

Resolving a legacy DNS record is far simpler.

What does the TXT record look like?

“oa1:xmr recipient_address=43gWAaBEFUkgiMLkgHy2DPE2RiaEA5XTEUcXzekCZ5VJim311kqH79gZ9ZphgYzUhFMCJeb57rcykKnMKnQ9HfY3PnXvUn4; recipient_name=Justin Ehrenhofer; tx_description=Donate to Justin Ehrenhofer;”

  • OA1: required; indicates OpenAlias use
  • XMR: the asset to return the address for
  • recipient_address: the address for all related lookups to be forwarded to
  • recipient_name: optional name to appear in most wallets
  • tx_description: optional description to appear in most wallets

TXT records can store up to 255 characters, but usually you can chain several records together if needed for one long one. Most domain registrars allow you to have unlimited TXT records.

donate.getmonero.org has 2 OpenAlias records; 1 for BTC and 1 for XMR. They are as follows:

“oa1:btc recipient_address=1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H; recipient_name=Monero Development; tx_description=Donation to Monero Core Team;”

“oa1:xmr recipient_address=888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H; recipient_name=Monero Development; tx_description=Donation to Monero Core Team;”

As you can see, a single OpenAlias (eg: donate@getmonero.org) can be associated with several different assets at the same time.

Do I need to use DNSSEC?

Yes. Without DNSSEC, someone can try to give false addresses in place of your real one. If your domain registrar doesn’t support DNSSEC, ditch them.

Does Unstoppable Domains use the OpenAlias standard?

No, by default, it does NOT use the OpenAlias standard! But they could in theory.

Instead, Unstoppable Domains made a completely new crypto field type. My Unstoppable Domain has the following record (following their default format):

crypto.XMR.address 43gWAaBEFUkgiMLkgHy2DPE2RiaEA5XTEUcXzekCZ5VJim311kqH79gZ9ZphgYzUhFMCJeb57rcykKnMKnQ9HfY3PnXvUn4

Users can optionally add their own TXT records that follow the OpenAlias standard manually, but this is much more difficult. ENS supports arbitrary text records, but it appears difficult to add a hostname to TXT records.

Benefits to using OpenAlias

  • It’s an open standard that’s been around longer than Ethereum
  • Works for existing, legacy domain infrastructure and could work on blockchain domain infrastructure as well if the standard is followed
  • DNS records reachable with any internet connection
  • Easier implementation in wallets
  • Broader array of TLDs to choose from
  • Highly configurable
  • Highly supported in some ecosystems (eg: Monero)
  • No need to pay gas fees to update address records
  • Easily add addresses for several hostnames (eg: separate XMR addresses for justin.ehrenhofer.org and nathan.ehrenhofer.org)

Benefits to using Unstoppable Domains

  • Standards are pretty easy to understand
  • Pay once, have the domain and address record forever
  • Very difficult to have the record censored/removed
  • Supported more broadly outside the Monero ecosystem, especially Bitcoin and Ethereum

How do I add my own OpenAlias record?

You need the following to create an OpenAlias record:

  • Your own domain
  • A domain registrar that supports DNSSEC
  • The ability to add TXT records
  • A strong password + 2FA on your domain registrar login :)

Fill in the following for the TXT record:

  • Host name: the prefix to the domain you want to use. If you want to tell people to pay domain.com, leave this blank. If you want to tell people to pay name@domain.com, use “name”. I do not recommend setting up OpenAlias without a subdomain if you intend to use several subdomains with OpenAlias.
  • Type: TXT
  • TTL: leave default, or set to 3600 seconds (1 hour)
  • Data: “oa1:BTC recipient_address=ADDRESS; recipient_name=NAME; tx_description=DESCRIPTION;”
I genuinely like Google Domains, sorry

Replace the capitalized part of the Data section with your own details, and include the quotes. If you want to use the same subdomain again for a different asset, make a new TXT record. There should be no limit to the number of TXT records you can create, so it’s totally fine to have many subdomains and many addresses per subdomain.

Tell your friends and family!

Tell your friends and family who already own a domain about OpenAlias. Or better yet, add them to your domain if it makes sense. That way you can pay them back far simpler!

--

--