Retrieves a list of addresses that hold the badge
Profile API (1.0.0)
The Profile API allows clients to retrieve and update domain profile details. There are both public and authenticated endpoints available for domain profiles. For authenticated endpoints, the API requires request signatures generated using the domain owner's private key.
These endpoints are available without any authentication.
- Retrieve public profile data associated with a domain
- Domain owner controls which fields are public or private
- Private data is always the default
- Retrieve NFTs for addresses associated with domain
- Domain can have any number of blockchain addresses associated for resolution services
- Resolution addresses are stored on-chain
- Query on-chain data for NFTs
- Retrieve badges data for addresses associated with domain
- Retrieve the following status of two domains
The owner of a domain may use this API to view or edit their private profile data. When managing profile data, authentication headers must be provided using the approach described below.
- Determine the message that must be signed through the message generator endpoint
- Request GET /api/user/{domain}/signature?device=true&expiry={timestamp}
- Replace '{domain}' with desired domain
- Replace '{expiry}' with desired Unix epoch timestamp
- Response contains the message that must be signed
- Message is a unique hash value
- Represents combination of provided request parameters
- Includes an expiration timestamp
- Request GET /api/user/{domain}/signature?device=true&expiry={timestamp}
- User must sign the message returned by the message generator API
- For example, the Metamask wallet could be used to sign the message
- Generated signature is used in header of subsequent GET or POST request
- Construct a request to the desired endpoint that requires user authentication
- Must include headers
- x-auth-domain - Must equal the {domain} in context
- x-auth-expiration - Must equal the {expiry} timestamp in the signed message
- x-auth-signature - Must be set to the value of the user generated signature
- Must include headers
Languages
Servers
Production
https://api.unstoppabledomains.com/profile/
Staging
https://api.ud-staging.com/profile/
- Productionhttps://api.unstoppabledomains.com/profile/badges/{badge}/holders
- Staginghttps://api.ud-staging.com/profile/badges/{badge}/holders
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X GET \
https://api.unstoppabledomains.com/profile/badges/whale/holders \
-H 'x-api-key: my-api-key'- Productionhttps://api.unstoppabledomains.com/profile/badges/{badge}
- Staginghttps://api.ud-staging.com/profile/badges/{badge}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X GET \
https://api.unstoppabledomains.com/profile/badges/whaleResponse
application/json
{ "badge": { "name": "World of Women", "code": "WoWHolder", "active": true, "logo": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/ud-logo.svg", "linkUrl": "https://badge.io/info", "videoUrl": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/unstoppabledomains.mp4", "coverImage": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/bayc-cover-image.png", "type": "default", "count": 3, "description": "Holds World of Women NFT.", "gallery": { … }, "marketplace": { … } }, "sponsorship": { "max": 10, "count": 5, "latest": "latest.crypto", "authorizedAddresses": [ … ], "domains": [ … ] }, "usage": { "holders": 10000, "domains": 10000, "featured": [ … ], "rank": 1 } }
- Productionhttps://api.unstoppabledomains.com/profile/badges/{badge}/validate/{address}
- Staginghttps://api.ud-staging.com/profile/badges/{badge}/validate/{address}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X GET \
https://api.unstoppabledomains.com/profile/badges/whale/validate/74565- Productionhttps://api.unstoppabledomains.com/profile/badges/claim
- Staginghttps://api.ud-staging.com/profile/badges/claim
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X POST \
https://api.unstoppabledomains.com/profile/badges/claim \
-H 'Content-Type: application/json' \
-d '{
"link": "https://opensea.io/collection/unstoppable-domains-polygon"
}'Badge pending payment
Badge logo, could be url or emoji
Example: "https://storage.googleapis.com/unstoppable-client-assets/images/badges/ud-logo.svg"
Link to video
Example: "https://storage.googleapis.com/unstoppable-client-assets/images/badges/unstoppabledomains.mp4"
Link to cover image
Example: "https://storage.googleapis.com/unstoppable-client-assets/images/badges/bayc-cover-image.png"
Response
application/json
{ "name": "World of Women", "code": "WoWHolder", "active": true, "logo": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/ud-logo.svg", "linkUrl": "https://badge.io/info", "videoUrl": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/unstoppabledomains.mp4", "coverImage": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/bayc-cover-image.png", "type": "default", "count": 3, "description": "Holds World of Women NFT.", "gallery": { "enabled": true, "featured": [ … ], "tier": 1 }, "marketplace": { "listings": [ … ], "avgPrice": { … }, "floorPrice": { … }, "supply": 10000, "holders": 1000, "sales": 3, "volume": 3 } }
- Productionhttps://api.unstoppabledomains.com/profile/badges/rankings/domains
- Staginghttps://api.ud-staging.com/profile/badges/rankings/domains
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X GET \
https://api.unstoppabledomains.com/profile/badges/rankings/domainsResponse
application/json
[ { "domain": "matt.crypto", "rank": 1, "count": 100 } ]
- Productionhttps://api.unstoppabledomains.com/profile/badges/rankings
- Staginghttps://api.ud-staging.com/profile/badges/rankings
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X GET \
https://api.unstoppabledomains.com/profile/badges/rankingsResponse
application/json
[ { "badge": { … }, "sponsorship": { … }, "usage": { … } } ]
- Productionhttps://api.unstoppabledomains.com/profile/badges/rankings/sponsors
- Staginghttps://api.ud-staging.com/profile/badges/rankings/sponsors
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X GET \
https://api.unstoppabledomains.com/profile/badges/rankings/sponsorsResponse
application/json
[ { "domain": "matt.crypto", "rank": 1, "count": 100 } ]
- Productionhttps://api.unstoppabledomains.com/profile/user/{address}/badges
- Staginghttps://api.ud-staging.com/profile/user/{address}/badges
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
curl -i -X POST \
'https://api.unstoppabledomains.com/profile/user/{address}/badges' \
-H 'Content-Type: application/json' \
-H 'x-auth-domain: mydomain.tld' \
-H 'x-auth-expires: 1765522015090' \
-H 'x-auth-signature: b62348775da58077591e2d20506371e8d94a5a83031f34b9ac85845d3463e73b0f0a500875830785c093515806e354cda6c217acab0fce5245d662eff4105f5e1c' \
-d '[
{
"code": "badge1",
"active": true
}
]'List of badges
Badge logo, could be url or emoji
Example: "https://storage.googleapis.com/unstoppable-client-assets/images/badges/ud-logo.svg"
Link to video
Example: "https://storage.googleapis.com/unstoppable-client-assets/images/badges/unstoppabledomains.mp4"
Link to cover image
Example: "https://storage.googleapis.com/unstoppable-client-assets/images/badges/bayc-cover-image.png"
Response
application/json
[ { "name": "World of Women", "code": "WoWHolder", "active": true, "logo": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/ud-logo.svg", "linkUrl": "https://badge.io/info", "videoUrl": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/unstoppabledomains.mp4", "coverImage": "https://storage.googleapis.com/unstoppable-client-assets/images/badges/bayc-cover-image.png", "type": "default", "count": 3, "description": "Holds World of Women NFT.", "gallery": { … }, "marketplace": { … } } ]