One payment, priced by length.

Shorter names cost more. Pay once, in USDC, and the name is yours for good — no renewals. A .arc or .circle name is half the price of the matching @handle.

  1. 2 characters
    @handle
    2,500.00 USDC
    full 10,000.00 USDC
    .arc
    1,250.00 USDC
    full 5,000.00 USDC
    .circle
    1,250.00 USDC
    full 5,000.00 USDC
  2. 3 characters
    @handle
    250.00 USDC
    full 1,000.00 USDC
    .arc
    125.00 USDC
    full 500.00 USDC
    .circle
    125.00 USDC
    full 500.00 USDC
  3. 4 characters
    @handle
    50.00 USDC
    full 200.00 USDC
    .arc
    25.00 USDC
    full 100.00 USDC
    .circle
    25.00 USDC
    full 100.00 USDC
  4. 5 characters
    @handle
    10.00 USDC
    full 40.00 USDC
    .arc
    5.00 USDC
    full 20.00 USDC
    .circle
    5.00 USDC
    full 20.00 USDC
  5. 6–9 characters
    @handle
    5.00 USDC
    full 20.00 USDC
    .arc
    2.50 USDC
    full 10.00 USDC
    .circle
    2.50 USDC
    full 10.00 USDC
  6. 10+ characters
    @handle
    2.50 USDC
    full 10.00 USDC
    .arc
    1.25 USDC
    full 5.00 USDC
    .circle
    1.25 USDC
    full 5.00 USDC
Single characters (all 26) are treasury-held and reserved names are not sold at these prices. Names are plain letters, digits and hyphens — no lookalikes.

The launch price is 25 % of the full price. It is a time ramp (50 % at launch, +12.5 points every 91 days, full after one year) times a volume ramp (50 % at zero sold, +12.5 points every 500 paid registrations of that namespace, full at 2,000). Early registrations lock in the lower price, and a name registered once never costs more later.

Making a wallet or explorer? Resolve names in one call.

The open @arcns/resolve SDK (TypeScript, MIT) turns any of the three shapes into labelled records — or call the REST API, or read the contracts on Arc in any language. No server of ours in the path. The SDK ships as 0.1.0-testnet.N on the npm dist-tag testnet.

The one rule: namespace and registry, every time

const r = await arcns.resolve("alice.arc");
// {
//   name: "alice.arc",
//   namespace: "arc",
//   registry: "0xc3…3a01",
//   product: "arcns",
//   address: "0x4a…F1c9",
//   verification: "verified",
// }
await arcns.resolve("@alice.arc"); // throws: ambiguous

No call returns a bare address. A mixed shape is refused rather than guessed; two registries that disagree are refused rather than picked between.