What is myaddr.tools and what does it do?

Updated

myaddr.tools is a minimalist dynamic DNS (DDNS) service that maps a changing IP address to a fixed subdomain name. You claim a name, receive a secret key, and then use an HTTP-based API to point that name at whatever IPv4 or IPv6 address you currently have. It is aimed at people who need a stable hostname for a machine on a dynamic connection — a home server, a router, a small VPS — without creating an account or dealing with a traditional DNS control panel.

What problem it solves

Most ISPs hand out IP addresses that change. If you want to reach a device at home from elsewhere, you need a name that always resolves to the current address. myaddr.tools provides that name and lets you update the address programmatically, so a scheduled script or a router's DDNS client can keep it current.

The service is deliberately small in scope. According to its own description, it is "no ads, no tracking, no nonsense," and you can get a subdomain in seconds with no account required.

Key features

  • No account required. You claim a name and get a secret key. The key is the only credential — whoever holds it controls the name.
  • HTTP-based update API. Updates work over plain HTTP requests, which makes them easy to call from scripts, cron jobs, or router firmware.
  • IPv4 and IPv6 support. You can set either address type, and they are tracked independently.
  • ACME dns-01 support. You can serve the TXT record needed for a dns-01 challenge, which lets you obtain TLS certificates from CAs like Let's Encrypt for a name that has no public web server.
  • Multiple suffixes. A single claimed name resolves across your-name.myaddr.tools, your-name.myaddr.dev (on the HSTS preload list), your-name.myaddr.io, and all subdomains of those.
  • Public Suffix List. The suffixes are added to the Public Suffix List, which matters for cookie isolation and for services that treat each subdomain as a separate registrable domain.

How the update API works

The update endpoint is at https://myaddr.tools/update. It is intentionally forgiving:

  • GET, POST, and PUT are treated as equivalent update requests.
  • Parameters can come from the URL query string or from POST/PUT bodies.
  • Bodies can be application/x-www-form-urlencoded or application/json.
  • Success returns body OK with status code 200; errors return a helpful message with a 4xx status.

Add or update an IP address

Send a request to /update with key and ip parameters. Set ip to any valid IPv4 or IPv6 address, or use ip=self to use the requester's own IP address. To force a specific protocol, use the hosts ipv4.myaddr.tools or ipv6.myaddr.tools.

Adding an IPv4 address replaces any existing IPv4 address, and the same applies to IPv6 — so each address family holds one value at a time.

Add an ACME challenge

Send a request to /update with key and acme_challenge parameters. The challenge value is served as a TXT record on all _acme-challenge subdomains. These TXT records are automatically removed after a few minutes, which matches the short lifetime of an ACME challenge.

Delete an IP address

A DELETE request to /update with key removes both the IPv4 and IPv6 addresses. This always responds with status code 204.

Registration management

The registration endpoint is at https://myaddr.tools/reg. To immediately and permanently delete your registration and release your name, send a DELETE request to /reg with your key.

Things to know before you rely on it

Two expiry rules matter if you plan to depend on the service:

Rule Detail
Per-IP activity Each IP address (IPv4 and IPv6 tracked separately) must be updated at least once every 90 days to stay active.
Registration activity If no updates are made to your name for 120 days, the registration is deleted and the name is released.

The practical consequence: an unattended device that stops reporting will eventually lose its name. If you are setting this up for a remote machine, make sure whatever updates the record runs on a schedule well inside these windows.

When it fits and when it doesn't

myaddr.tools is a good fit if you want a free-of-frills hostname for a dynamic IP, you are comfortable calling an HTTP API or configuring a DDNS client, and you want to avoid account signup. It is a poor fit if you need a full DNS management interface, many records per name, or a guarantee of long-term persistence without ongoing updates — the 90/120-day rules mean the service expects you to keep it informed.

Because the secret key is the sole credential, treat it like a password: anyone who has it can repoint your name. Store it wherever your update script runs, and use the /reg delete endpoint if you ever want to release the name permanently.