Prompt: register brand-protection variants of your .ro domain
Have an agent turn a brand name into look-alike .ro candidates —
typos, plurals, hyphenations, diacritics-stripped spellings and the
second-level .ro forms (com.ro and friends, where the availability
check accepts them) — check them in bulk, price the shortlist,
register only the ones you confirm, park each on ird DNS pointing at
the main site, and leave auto-renew on.
Needs: ird access (MCP server or the ird CLI, logged in); the main site's zone on ird DNS; whatever serves the main site able to answer for extra hostnames
Costs: the registration fee per variant (credits_prices → domains.register.per_year × years); bulk checks a negligible per-check fee (jobs.domain-availability-bulk); each zone a tiny hourly fee (recurring.dns-zone-hourly)
Group: domains & dns
Paste everything below the line into a fresh conversation. Fill in the
FILL IN block first.
Task
Find the .ro look-alikes of BRAND worth owning, register the ones I
confirm, and point every one at MAIN_DOMAIN. Nothing is charged until
I confirm the exact list, years and total.
FILL IN
BRAND: example # the brand as people type it, no TLD
MAIN_DOMAIN: example.ro # the real site; its zone must be on ird DNS
MAIN_IP: 203.0.113.10 # IPv4 the main site answers on (an apex cannot be a CNAME)
POINT_WWW: cname # cname = www.<variant> CNAME MAIN_DOMAIN. | a = A MAIN_IP
KINDS: typo, plural, hyphen, diacritics, sld # sld = com.ro, org.ro, info.ro …; add "prefix" for my-/the-
MAX_DOMAINS: 10 # never register more than this many
YEARS: 1 # 1-10
Non-negotiable rules
- Confirm the exact list. Show the shortlist with per-domain and
total price, then register only the names I say back — never more
than MAX_DOMAINS.
- Balance first.
credits_balance must cover the total; if not,
say what is missing and propose a smaller set. Don't register a
partial list unless I pick it.
- One call per name, once.
register_domain blocks until the
registry answers, charges immediately and refunds only on failure.
On an error report it verbatim, do not retry that name, and ask
before continuing with the rest.
.ro only. ird registers .ro. List look-alikes under other
TLDs for my information only.
- DNS does not redirect. Records send visitors to MAIN_IP; the
server there must recognise each variant hostname (alias + 301 +
certificate). If MAIN_DOMAIN is on the ird IPFS gateway, each
variant must be attached with
ipfs_domain_add — read its
description — or it won't be served.
Steps
A. Generate. From BRAND, per KINDS: typo (adjacent-key
substitution, dropped letter, doubled letter, swapped neighbours),
plural (Romanian -uri/-e/-i, English -s), hyphen (a hyphen
at each word boundary; the hyphen removed if BRAND has one),
diacritics (ă/â→a, î→i, ș→s, ț→t, plus the typed
forms sh, tz), sld (BRAND.com.ro, .org.ro, .info.ro,
.nom.ro, .nt.ro, .tm.ro, .firm.ro, .store.ro, .www.ro,
.arts.ro, .rec.ro — whether ird registers a given second-level
form is for step B to answer, promise nothing), prefix (my, the,
www). Dedupe, drop MAIN_DOMAIN, rank: one-keystroke typos and
plurals first, sld next, cosmetic forms last.
B. Check. bulk_check_domains(domains=[...]) (CLI:
ird jobs check-bulk --file names.txt) — up to 100 per call, blocks
until done; split larger lists. A name the check rejects (unsupported
form, bad syntax) is dropped, not retried. Table: name, kind,
available / taken / rejected, rank. For taken names that look like
squats, ird domains info <name> --whois (CLI-only, small
domains.info fee) shows the holder.
C. Price. credits_prices → domains.register.per_year × YEARS
per name; shortlist the best available up to MAX_DOMAINS; total;
credits_balance; balance after.
D. Wait for my confirmation.
E. Register, one at a time, in my order:
register_domain(domain, years=YEARS, use_our_dns=true, auto_renew=true)
(CLI: ird domains register <name> --years N --auto-renew). Report
each result before the next call.
F. Point. Per registered variant: dns_get_zone(variant) — leave
any apex SOA/NS records already there. Then
dns_set_record(domain=variant, name="<variant>.", type="A", data={address: MAIN_IP})
and, per POINT_WWW, dns_set_record(domain=variant, name="www.<variant>.",
type="CNAME", data={name: "MAIN_DOMAIN."}) or the same A (CLI:
ird dns set <variant> @ A MAIN_IP, ird dns set <variant> www CNAME
MAIN_DOMAIN). No AAAA unless MAIN_DOMAIN has one. If MAIN_DOMAIN is on
the IPFS gateway, use ipfs_domain_add(domain=<variant>, ipns_name=…)
instead — it writes the records itself.
G. Verify. list_domains: each variant active, auto_renew
true, expiry a YEARS away — if any came back false,
ird domains auto-renew <variant> on (CLI-only). dig +short A <variant>
@<ns> and dig +short CNAME www.<variant> @<ns> against the zone's
nameservers. curl -sI http://<variant>/ should answer a redirect to
MAIN_DOMAIN once the server side is set; if not, list what it still
needs.
Deliverable
One table: variant, kind, availability, registered, expiry, auto-renew,
records set, dig result. Then credits spent and balance left, the
taken look-alikes with holder info, and the hostnames the main server
(or gateway) still has to accept.