D3 Documentation
  • Welcome to D3 Docs
  • Resolve D3 Names
    • DNS Connect SDK
    • DNS Connect Metamask Snap
  • Channel Partner Integrations
    • D3 Link
    • D3 Embed
    • D3 API
  • Use Cases
    • Sell Name Tokens to Users in your App
    • Send/Receive Crypto to Names in your App
    • Reverse Resolve Names in your App
  • Possible Future Use Cases
    • Fractional Ownership of Names
    • Liquidity Pool for Trading Strategies
Powered by GitBook
On this page
  1. Channel Partner Integrations

D3 API

PreviousD3 EmbedNextUse Cases

Last updated 4 months ago

D3 API Overview

D3 API allow for a fully custom integration of D3 features directly into your application. The API exposes an interface for interacting with Web3 Name Tokens on the D3 registry and allows searching, purchasing and minting, and more.

Getting Started

  • (See our github repository for an example app built using our APIs)

  • Detailed Steps 👇

Sign up at to get your own API keys today.

Swagger for these APIs can also be viewed at

Demo App
Sample Source Code
D3 Developer Dashboard
https://api-public.d3.app/swagger#/

Get supported payment methods for name tokens

get

Returns the supported payment options (contract and token addresses) for the provided TLDs.

Authorizations
Query parameters
tldstringOptional

Top-level domain (TLD) of the name token to fetch payment options (comma separated list). Leave empty to fetch for all available TLDs.

Example: com
Responses
200
Returns payment options for name tokens.
application/json
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing PURCHASE permission.
get
GET /v1/partner/payment/options HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Accept: */*
{
  "options": [
    {
      "chainId": "1",
      "chainName": "Ethereum",
      "addressType": "EVM",
      "contractAddress": "0x46A7bEA3dBb87522834c8b24FA14D051893deE8a",
      "tokenAddress": "0x0000000000000000000000000000000000000000",
      "symbol": "BTC",
      "icon": "https://cdn.d3.app/assets/tokens/token_image_BTC.png",
      "price": "0.3983550997142373"
    }
  ]
}

Get name recommendations

get

Returns name recommendations based on the provided SLDs and TLDs

Authorizations
Query parameters
tldstringOptional

Top-level domain (TLD) of the name token to recommend (comma separated list). Leave empty to recommend all available TLDs.

Example: com
sldstringRequired

Second-level domain (SLD) of the name token to recommend (comma separated list). Maximum of 5 SLDs allowed.

Example: example
Responses
200
Successful name recommendations
application/json
400
Invalid TLDs or other request issues
403
Forbidden. API Key is missing necessary permissions.
get
GET /v1/partner/recommendations?sld=text HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Accept: */*
[
  {
    "sld": "example",
    "tld": "com",
    "status": "available",
    "isListed": true,
    "registrationExpiresAt": "2025-05-15T00:00:00.000Z",
    "reservationExpiresAt": "2025-05-15T00:00:00.000Z",
    "usdPrice": "9.99",
    "nativeAmount": "1.23456",
    "nativeCurrency": "ETH",
    "clickUrl": "https://d3.app/search?sld=example&product=example.com&partner=com&utm_source=developer&utm_medium=api",
    "lockExpiresAt": "2025-05-15T00:00:00.000Z"
  }
]

Get name token metadata

get

Returns metadata and registration status of a name token.

Authorizations
Path parameters
tldanyRequired

Top-level domain (TLD) of the name token.

Example: com
sldanyRequired

Second-level domain (SLD) of the name token.

Example: example
Responses
200Success
application/json
400
Bad Request. Wrong SLD or TLD format.
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing NON_PREMIUM_MINT permission.
404
Not Found. Name token is not registered and mint is not in progress.
get
GET /v1/partner/token/{sld}/{tld} HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Accept: */*
{
  "status": "registered",
  "sld": "example",
  "tld": "com",
  "expirationDate": "2025-05-15T00:00:00.000Z",
  "owner": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
  "tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
  "contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
  "chainId": "1",
  "txHash": "2sXoUFPpgFXRKiAXYUWkwtAEQd46azUEFwoebcYQbN6s",
  "imageURL": "https://cdn.d3.app/tokens/1234567890abcdf123467890.png"
}

Get name token metadata by token ID

get

Returns metadata of a name token by token ID.

Authorizations
Path parameters
chainIdstringRequired

Chain ID of the blockchain network.

Example: 1
contractAddressstringRequired

NFT Smart Contract address.

Example: 0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8
tokenIdstringRequired

Minted Token ID.

Example: 20719405654568256184282804044567699961418926341258048728655171573148113774124
Responses
200Success
application/json
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing SEARCH permission.
404
Not Found. Name token does not exist for this contract on this chain or contract not found.
get
GET /v1/partner/token/{chainId}/{contractAddress}/{tokenId} HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Accept: */*
{
  "status": "registered",
  "sld": "example",
  "tld": "com",
  "expirationDate": "2025-05-15T00:00:00.000Z",
  "owner": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
  "tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
  "contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
  "chainId": "1",
  "txHash": "2sXoUFPpgFXRKiAXYUWkwtAEQd46azUEFwoebcYQbN6s",
  "imageURL": "https://cdn.d3.app/tokens/1234567890abcdf123467890.png"
}

Get name tokens for a wallet address

get

Returns registered name tokens for a wallet address

Authorizations
Path parameters
addressanyRequired

Wallet address.

Example: 0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532
addressTypestring · enumRequired

Wallet address type.

Example: EVMPossible values:
Query parameters
limitany · min: 1 · max: 100Optional

Number of records to return for pagination.

Default: 25Example: 100
skipanyOptional

Number of records to skip for pagination.

Default: 0Example: 0
Responses
200Success
application/json
400
Bad Request. Wrong address or address type format.
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing SEARCH permission.
get
GET /v1/partner/tokens/{addressType}/{address} HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Accept: */*
{
  "total": 42,
  "pageItems": [
    {
      "sld": "example",
      "tld": "com",
      "expirationDate": "2025-05-15T00:00:00.000Z",
      "tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
      "contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
      "chainId": "1"
    }
  ]
}

Mint a name token

post

Accepts mint name request. Only allows minting of non-premium name tokens (requires NON_PREMIUM_MINT permission).Token is not minted immediately but is scheduled for minting. Mint status could be checked using token status endpoint.

Authorizations
Body
sldstringRequired

Second-level domain (SLD) of the name to mint.

Example: example
tldstringRequired

Top-level domain (TLD) of the name to mint.

Example: com
userall ofRequired

User information required to mint the name.

Responses
202Success
application/json
400
Bad Request. Unable to mint the requested name token.
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing NON_PREMIUM_MINT permission.
409
Conflict. Name token is already minted.
post
POST /v1/partner/mint HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 119

{
  "sld": "example",
  "tld": "com",
  "user": {
    "wallet": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
    "email": "partner@d3.email"
  }
}
{
  "tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
  "contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
  "chainId": "1"
}

Create a partner order for name token purchase

post

Creates a new order for name token purchase. The response includes a payment voucher and details necessary to complete the purchase.

Authorizations
Body
paymentOptionsall ofRequired

The payment options for the transaction

Responses
201
The order has been successfully created.
application/json
400
Bad Request. Some names are not available for purchase.
403
Forbidden. API Key is missing necessary permissions.
post
POST /v1/partner/order HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 280

{
  "paymentOptions": {
    "contractAddress": "0x46A7bEA3dBb87522834c8b24FA14D051893deE8a",
    "tokenAddress": "0x0000000000000000000000000000000000000000",
    "buyerAddress": "0x65d90DBa570408f8D512c91556d8E405acd99EE2"
  },
  "names": [
    {
      "sld": "example1",
      "tld": "shib",
      "autoRenew": false,
      "domainLength": 1
    }
  ]
}
{
  "voucher": {
    "buyer": "0x0FB3F00e792F17B7D45611932ac72FcD4cdFfE6E",
    "token": "0x0000000000000000000000000000000000000000",
    "amount": "23295578965024017037",
    "voucherExpiration": 1727104758,
    "paymentId": "47cbbdaa-0a3c-4e80-94e9-139415e86fdd",
    "orderId": "3434-3675-5844-7264",
    "names": [
      {
        "registry": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
        "label": "example",
        "tld": "tst",
        "expirationTime": 1758585600,
        "owner": "0x0FB3F00e792F17B7D45611932ac72FcD4cdFfE6E",
        "renewal": false
      }
    ]
  },
  "signature": "0x57235cf3bc5d305cc1dc4b040ae3b1dd34ade899ecc97d33e2167346c05f217348f80012d8081bdfaeed3f02a81e12483fdf12afd6715f5c5c1f322c390defc61c"
}

Get name token metadata by multiple token IDs at once

post

Returns metadata of multiple name tokens by their token IDs.

Authorizations
Path parameters
chainIdstringRequired

Chain ID of the blockchain network.

Example: 1
contractAddressstringRequired

NFT Smart Contract address.

Example: 0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8
Body
tokenIdsstring[]Required

List of token ids to lookup for

Responses
200Success
application/json
400
Bad Request. Wrong address or address type format.
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing SEARCH permission.
404
Not Found. Chain or Contract not found.
post
POST /v1/partner/tokens/{chainId}/{contractAddress} HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 21

{
  "tokenIds": [
    "text"
  ]
}
[
  {
    "status": "registered",
    "sld": "example",
    "tld": "com",
    "expirationDate": "2025-05-15T00:00:00.000Z",
    "owner": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
    "tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
    "contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
    "chainId": "1",
    "txHash": "2sXoUFPpgFXRKiAXYUWkwtAEQd46azUEFwoebcYQbN6s",
    "imageURL": "https://cdn.d3.app/tokens/1234567890abcdf123467890.png"
  }
]
  • D3 API Overview
  • Getting Started
  • GETSearch name tokens returning availability and pricing
  • GETGet name recommendations
  • POSTMint a name token
  • GETGet supported payment methods for name tokens
  • POSTCreate a partner order for name token purchase
  • GETGet name token metadata
  • GETGet name token metadata by token ID
  • POSTGet name token metadata by multiple token IDs at once
  • GETGet name tokens for a wallet address

Search name tokens returning availability and pricing

get

Provides search, combining availability information and pricing, both in native token and USD.

Authorizations
Query parameters
limitany · min: 1 · max: 100Optional

Number of records to return for pagination.

Default: 25
skipanyOptional

Number of records to skip for pagination.

Default: 0
tldstringOptional

Top-level domain (TLD) of the name token to search for (comma separated list). Leave empty to search all available TLDs.

Example: com
sldstringRequired

Second-level domain (SLD) of the name token to search for (comma separated list)

Example: example
Responses
200Success
application/json
401
Unauthorized. API Key is missing or invalid.
403
Forbidden. API Key is missing SEARCH permission.
get
GET /v1/partner/search?sld=example HTTP/1.1
Host: 
Api-Key: YOUR_API_KEY
Accept: */*
{
  "total": 100,
  "pageItems": [
    {
      "sld": "example",
      "tld": "com",
      "status": "available",
      "isListed": true,
      "registrationExpiresAt": "2025-05-15T00:00:00.000Z",
      "reservationExpiresAt": "2025-05-15T00:00:00.000Z",
      "registryUsdPrice": "9.99",
      "registryNativePrice": "1.23456",
      "listNativePrice": "1.23456",
      "listUsdPrice": "1.23456",
      "nativeCurrency": "ETH",
      "clickUrl": "https://d3.app/search?sld=example&product=example.com&partner=com&utm_source=developer&utm_medium=api",
      "lockExpiresAt": "2025-05-15T00:00:00.000Z"
    }
  ]
}