# Test with .example domains

import {Head} from "zudoku/components";

<Head>
  <title>Test with .example domains | Domain Chief</title>
</Head>

Use `.example` domains to test registration, transfers, DNS, contacts, nameservers, and lock settings without registering a public domain. They exist only inside Domain Chief and have no registration or renewal cost.

## Basic use

Search for any name ending in `.example`, then register it through the Domain Chief UI or API.

```text
project-lab.example
api-client.example
training-site.example
```

Domain Chief runs its normal application workflows for these domains. Its test registry supplies simulated responses, so no request reaches a public registry and the domain will not resolve on the public internet.

## Scenario inputs

The `.example` test registry recognizes these reserved inputs:

| Input | Where to use it | Result |
| --- | --- | --- |
| `premium` | Anywhere in the domain name | Marks the domain as premium and charges ten times the standard registration and renewal price. |
| `transfer` | Anywhere in the domain name | Reports the domain as registered, so Domain Chief starts an incoming transfer instead of a registration. |
| `fail` | Anywhere in the domain name | Ends a registration or transfer with a generic registry failure. |
| `invalid-auth-code` | The authorization-code field of a transfer | Rejects the transfer as an incorrect authorization code. Retry with another value to complete the transfer. |

Domain-name keywords use lowercase substring matching. The `invalid-auth-code` value is exact and case-sensitive.

### Premium pricing

These names return premium pricing:

```text
premium-brand.example
catalog-premium.example
```

### Incoming transfers

Include `transfer` in a name that does not already exist in Domain Chief:

```text
transfer-sandbox.example
portfolio-transfer.example
```

The availability check reports the name as active. Start the transfer through the normal Domain Chief form and provide an authorization code.

### Generic failures

Include `fail` to test a failure without a known corrective action:

```text
registration-fail.example
transfer-fail.example
```

Use `registration-fail.example` for a failed registration. Because `transfer-fail.example` also contains `transfer`, it starts as a transfer and then fails.

### Test an incorrect authorization code

Use the reserved code on a synthetic incoming transfer to test the full failure and recovery flow:

1. Start a transfer for `transfer-recovery.example`.
2. Submit `invalid-auth-code` as the authorization code.
3. Wait for the domain page to report that the authorization code is incorrect.
4. Retry from the domain page with another authorization code.

The retry then succeeds and Domain Chief clears the submitted code from the domain.

The incorrect-code rule runs before the generic `fail` rule. If a transfer name contains `fail` and uses `invalid-auth-code`, the first failure reports the incorrect code. A retry with a different code then reaches the generic failure rule.

### Transfer an existing domain between teams

An existing `.example` domain uses its generated authorization code instead of the reserved test value. This path checks the code before it creates the incoming transfer.

1. Unlock the domain in its current team.
2. Request its authorization code from the domain page.
3. Switch to the destination team and start a transfer for the same domain.
4. Submit the generated code.

The domain moves to the destination team. A different code returns an incorrect authorization-code response without moving the domain.

### Renewal and expiration

New `.example` registrations receive a renewal date one month in the future. The next update from the test registry after that date moves the renewal date forward one month when auto-renew is enabled. If auto-renew is disabled, it marks the domain as expired instead.

## Limitations

- `.example` domains do not resolve through public DNS.
- No object exists at a real registry or registrar.
- Provider-specific data and responses are simulated.
- Use these domains for development, automated tests, training, and demos. Do not use them for production traffic.
