Docs / Data & markets / Names & registrars

dogecoinnames.com · p:dns

Names & registrars

On-chain Dogecoin names at dogecoinnames.com: p:dns envelope, registrar tags (dogesoft.io, dogefeed.app), 5-minute soft holds, Pay/URL records, marketplace and public API.

Search & resolve: live Registration: live Marketplace: live

registrar.dogesoft.io is the public Doge Soft Names surface: search endings, register on Dogecoin, manage Pay/URL records, and browse the peer-to-peer market. Names are original Doginals p:dns inscriptions held in the buyer's wallet. Approved registrar tags share one index. dogesoft.io is the finished example. dogefeed.app is active and set up on the same body.

Overview

A name like dogesoft.doge is a text inscription on Dogecoin. Whoever holds the inscription owns the name. There are no accounts, no renewals and no expiry. The chain is the authority: the Names index reads every valid p:dns claim, and anyone can rebuild the same list from public chain data.

  • The first valid reg for a name wins, ordered by block height then position in the block. Later claims are ignored.
  • Ownership follows the inscription. Holders are re-checked against the unspent coin set before any sale or record update.
  • Doge Soft never holds names, keys or coins for you.
  • Explorer search surfaces Names alongside collections and coins (dns-face previews + registrar labels).

Registrar network

Every registration body can carry a registrar tag. The shared index recognizes approved tags and shows them on name pages. As of the live GET /api/config response:

TagRole
dogesoft.ioDoge Soft Names checkout at dogecoinnames.com. Always written by Soft registration flows.
dogefeed.appActive. Same inscription, with registrar set to dogefeed.app and sig from the dogefeed.app key. Registers in its own product; same endings index and shared soft holds.

Tags are a label on the inscription, not a separate chain. Names from either registrar (and self-registered names without a recognized tag) resolve through the same public APIs. Live list: approvedRegistrars on GET /api/config.

Soft holds (5 minutes)

Before checkout, a registrar can place an off-chain hold so the same name is not sold twice while a cart is open. Holds stay inside the Doge Soft names service. They never go on Dogecoin. Default duration is holdMinutes: 5.

  • GET /api/check returns status: "reserved" when a hold is active. It does not say who holds it.
  • GET /api/holds is not public. A registrar reads only its own hold times with its hold token (Authorization: Bearer).
  • Placing or releasing a hold uses that same registrar token, or a wallet session for the names site itself.
  • Chain still decides ownership: the first valid on-chain reg wins even if a hold was active.

Endings and fees

Ending4+ characters1–3 characters (× shortMult)
.doge (flagship)69 DOGE690 DOGE
.dogecoin42 DOGE420 DOGE
.doginals42 DOGE420 DOGE
.soft6.9 DOGE69 DOGE
.𝕏Ð6.9 DOGE69 DOGE
.dogefeed6.9 DOGE69 DOGE

One payment, once, plus the network fee. Live values always come from GET /api/config (tiers, shortMult). Labels for new names use a–z, 0–9 and hyphens, 1–63 characters, with no hyphen at the start or end. Other endings may be indexed and shown but not offered for sale.

Envelope format

Registrations use the original Doginals name format. Full spec: Inscription standard · Names (p:dns). The operation for a domain is reg. This is the finished dogesoft.doge inscription, and the standard for every signed registration. Key order is p, op, sig, name, registrar:

{"p":"dns","op":"reg","sig":"mFiLnFlOROLHqge1nwmrMCe/fpZ0c1qTlcvjIYGIPZJZJB1QaOYw44u4AQX9M4tKbsSYkm5lPjOv5b89NWfPAQ==","name":"dogesoft.doge","registrar":"dogesoft.io"}

It rides in the standard positional Doginals envelope with no ACTION push, the same layout as DRC-20:

"ord" OP_1 <text/plain;charset=utf8> OP_0 <body>

Soft registration builds this through the inscriber's registrar mode (wallet-signed commit + reveal). Outside builders use Origin requestInscription. The P2SH is locked to the buyer's public key; the reveal sends the 0.001 DOGE inscription carrier to the buyer.

Pay and URL

Pay and URL are not written into the inscription. The holder of the name coin signs a Dogecoin message, and the registrar stores that signature with the address and the website. Every registrar that checks the same signature against the same name coin serves the same delivery.

dogesoft-dns-delivery-v1
name=dogesoft.doge
pay=D…
url=https://dogesoft.io/
holder=D…

An empty side is a single -. The wallet signs that text with signMessage. Signing does not move coins and does not inscribe. Manage flow: connect the holding wallet → /manage/<name> → edit → the server live-checks https:// → the wallet signs the message above.

GET /api/resolve/:name answers one question. kind is url, pay, or none. value is the website or the Dogecoin address for that one side. address is the signed pay address while that holder still has the coin, otherwise the coin holder. A sale moves the name coin. The seller's signature stops counting. The buyer signs a new message to set their own Pay or URL.

Use it in a build

Name Delivery is a paid Origin plug (10 DOGE, once). A build asks the name which side is active, then acts on that one value. Managing uses the same two calls: prepare the message, then store the holder's signature. Pay and URL are never both set.

const spot = await ask('invite.doge');
if (spot.kind === 'url') location.assign(spot.value);   // open the invite
if (spot.kind === 'pay') sendDoge(spot.value);          // pay the inviter

An invite program is the straightforward use: the person grabs a .doge in the app. If they set a URL, the invite opens that site. If they set Pay, the invite pays that address. The full ask and manage calls are on the plug page, and the build Invite with a .doge name stacks them with login.

Self-registered names

Every valid name counts. Names inscribed before Soft, or without a recognized registrar tag, appear as self-registered and remain fully valid. Anyone running a node can inscribe the same body and pay only network fees. Older names with emoji or special characters stay valid but carry a lookalike warning.

Marketplace

Resale is peer to peer and non-custodial. The seller signs only the name coin input and their payout output with SIGHASH_SINGLE|ANYONECANPAY (0x83). The buyer completes the purchase in one broadcast that pays the seller, delivers the name and pays a 1% marketplace fee (minimum 0.001 DOGE). If the seller moves the name first, the listing stops working. Offers, watchlists and auctions are off-chain coordination; settlement always goes through a signed listing. After the name coin moves, the buyer's wallet is the one that can sign a new Pay/URL delivery.

API endpoints

Base URL: https://registrar.dogesoft.io. dogecoinnames.com redirects there. Write endpoints need a wallet session from POST /api/auth/challenge and /api/auth/verify (sign-in never moves coins), or a registrar hold token on hold routes.

EndpointWhat it does
GET /api/configLive flags, holdMinutes, endings, tiers, short multiplier, marketplace fee, fee address, approvedRegistrars.
GET /api/check?q=Availability and price across endings (or one full name). Up to 50 names. Status includes available, taken, reserved.
GET /api/holdsRegistrar hold token only. That registrar's own hold times. No public list, no wallet addresses.
GET /api/hold/:nameOne hold; with auth, hold.mine when it is yours.
POST /api/holdPlace or refresh a hold (auth). Body: name or names[].
GET /api/name/:nameFull record: winner, registrar, holder, records, claims, listings, offers, sales, Origin links.
GET /api/resolve/:namekind is url, pay, or none. value is that one side. address falls back to the coin holder when Pay is not set.
POST /api/delivery/prepare · /api/deliveryHolder session. Prepare the delivery message, then store it with the Dogecoin message signature. Does not inscribe.
GET /api/address/:address/namesNames registered by or held at an address.
GET /api/recentRecently registered names on offered endings.
GET /api/statsIndexed names and claims, by ending.
GET /api/market · /api/market/browseListings and browse (ending, q, sort, pagination).
POST /api/quotePrice and inscription bodies for a cart.
POST /api/market/template · /list · /buy · /confirmNon-custodial list / buy / confirm (marketplace live).
ℹ️

CORS. Browser reads from explorer.dogesoft.io, diggydoge.com and dogesoft.io are allowed on public GETs. Prefer server-side calls for write paths and hold tokens.