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, andPUTare 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-urlencodedorapplication/json. - Success returns body
OKwith status code200; errors return a helpful message with a4xxstatus.
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.