Unstoppable Domains
You can associate an Unstoppable Domain (e.g.brad.crypto) with your DEMOS address. The SDK supports both EVM (MetaMask) and Solana (Phantom) signing flows: you sign a challenge with one of the domain’s authorized addresses, and that signature is submitted to the DEMOS network for verification.
The end-to-end flow:
- Resolve the domain to fetch its authorized addresses and metadata.
- Generate a challenge that includes your Demos public key and the chosen signing address.
- Sign the challenge externally with the user’s wallet (MetaMask
personal_signfor EVM, Phantom for Solana). - Submit the signature, challenge, and resolution data to link the identity.
1. Connect your wallet
2. Resolve the Domain
UseresolveUDDomain to fetch the unified resolution result for the domain. The returned UnifiedDomainResolution contains the network, registry type, and the list of authorizedAddresses that can sign the linking challenge.
resolutionData.authorizedAddresses; otherwise addUnstoppableDomainIdentity will throw.
3. Generate a Challenge and Sign It
Generate a challenge string that ties the signing address to your Demos public key, then have the user sign it with their wallet. For EVM, this is typically a MetaMaskpersonal_sign call; for Solana, use Phantom.
challenge with Phantom and pass the resulting signature in the next step.
4. Send an Identity request
Submit the signing address, signature, challenge, and the resolution data returned in step 2. An optionalreferralCode may be passed as the final argument.
5. Getting linked UD identities
After the confirmation block has been forged, you can list the Unstoppable Domain identities linked to an address. Pass anaddress to query a specific account, or omit it to use the connected wallet’s address.