# Domain Verification

### Overview

Novel sends wallet pass emails to your customers (for example, pass delivery and updates). To improve inbox placement and brand trust, we recommend verifying a dedicated subdomain rather than using your root domain.

#### Recommended setup

Use a dedicated subdomain such as:

```
pass.yourbrand.com
```

Examples:

```
pass.nike.com
wallet.allbirds.com
member.liquiddeath.com
```

This keeps your primary domain protected and makes DNS configuration cleaner.

***

### Before You Start

You’ll need:

* Access to your DNS provider (Cloudflare, GoDaddy, Shopify, Route53, Squarespace, etc.)
* Admin access to your Novel account
* A dedicated subdomain you want to use for wallet pass emails

***

## Step 1 — Open Domain Verification in Novel

In Novel Admin:

```
Configure → Domain Verification
```

Enter your desired subdomain:

```
pass.yourbrand.com
```

Then click:

```
Verify
```

Novel will generate DNS records for you to install.

***

## Step 2 — Download Your DNS Records

Click:

```
Download Novel DNS Records
```

You’ll receive the required DNS records for:

* Receiving records (MX)
* Sending records (TXT or CNAME)
* DKIM authentication

***

## Step 3 — Add the DNS Records to Your DNS Provider

Add each record exactly as provided by Novel.

### Important

Many DNS providers automatically append your root domain.

This means:

#### Correct

If your domain is:

```
pass.yourbrand.com
```

And Novel asks for:

```
Host: pass
```

You should enter:

```
pass
```

NOT:

```
pass.yourbrand.com
```

***

## Common DNS Mistakes

### Incorrect Hostname Formatting

This is the most common issue preventing verification.

#### Example 1 — Subdomain duplication

#### Incorrect

```
Host: pass.yourbrand.com
```

This may become:

```
pass.yourbrand.com.yourbrand.com
```

#### Correct

```
Host: pass
```

***

### DKIM / Sending Record Formatting

Some records may look like:

```
mx._domainkey.mg.yourbrand.com
```

Depending on your DNS provider, the hostname should often only be:

```
mx._domainkey.mg
```

Or if using a `pass` subdomain:

```
mx._domainkey.pass
```

NOT:

```
mx._domainkey.mg.yourbrand.com
```

Your DNS provider will automatically append:

```
.yourbrand.com
```

***

## Example Configuration

### Recommended Domain

```
pass.acme.com
```

***

### Receiving Record Example

| Type | Host | Value           |
| ---- | ---- | --------------- |
| MX   | pass | mxa.mailgun.org |

***

### Sending Record Example

| Type | Host | Value                            |
| ---- | ---- | -------------------------------- |
| TXT  | pass | v=spf1 include:mailgun.org \~all |

***

### DKIM Example

| Type | Host                | Value           |
| ---- | ------------------- | --------------- |
| TXT  | mx.\_domainkey.pass | k=rsa; p=MIG... |

***

## Step 4 — Wait for DNS Propagation

DNS changes may take time to propagate.

Typical timing:

* Usually: 5–30 minutes
* Occasionally: up to 24 hours

After adding the records, return to Novel and click:

```
Check Verification
```

***

## Verification Statuses

### Verified

Your domain is fully authenticated and ready to send wallet pass emails.

### Pending

DNS changes are still propagating.

### Failed

One or more records may be incorrect.

Most failures are caused by:

* Full domains entered instead of hostnames
* Extra `.yourdomain.com` appended
* Incorrect MX priority
* DNS provider formatting differences

***

## Troubleshooting

### My domain won’t verify

Check the following:

#### 1. Are you using a subdomain?

{% hint style="success" %}
**Recommended:** pass.yourbrand.com
{% endhint %}

{% hint style="danger" %}
**Avoid:** yourbrand.com
{% endhint %}

***

#### 2. Did you enter only the hostname?

{% hint style="success" %}
**Many providers expect:** pass
{% endhint %}

instead of:

{% hint style="danger" %}
pass.yourbrand.com
{% endhint %}

***

#### 3. Did your DNS provider auto-append the domain?

Some providers automatically add:

{% hint style="success" %}
.yourbrand.com
{% endhint %}

This can accidentally create:

{% hint style="danger" %}
pass.yourbrand.com.yourbrand.com
{% endhint %}

***

#### 4. Are your DKIM records shortened correctly?&#x20;

#### Correct example

{% hint style="success" %}
mx.\_domainkey.pass
{% endhint %}

#### Incorrect

{% hint style="danger" %}
mx.\_domainkey.pass.yourbrand.com
{% endhint %}

***

## Provider-Specific Notes

### Cloudflare

Cloudflare automatically appends your root domain in the Host field.

Use shortened hostnames only.

***

### GoDaddy

GoDaddy may trim or auto-format records after saving. Double-check the final saved value.

***

### Shopify Domains

If your domain is managed through Shopify, DNS propagation may take slightly longer.

***

## Best Practices

We recommend:

* Using a dedicated subdomain
* Keeping wallet pass email traffic separate from your primary sending domain
* Avoiding root-domain verification
* Using the exact DNS values generated by Novel

Recommended examples:

```
pass.yourbrand.com
wallet.yourbrand.com
member.yourbrand.com
```

***

{% hint style="danger" %}
After your domain is verified, update your sending email under `Configure → Pass Email Editor → Sending Email Address` to use the verified domain (example: `passes@pass.yourbrand.com`).
{% endhint %}

## Need Help?

If your domain still won’t verify after 24 hours:

Please contact Novel support with:

* Your domain provider
* Screenshots of your DNS records
* The exact subdomain you’re attempting to verify
* Any verification errors shown in Novel


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.novel.com/start-guide/domain-verification.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
