Doma Smart Contracts API
Protocol Overview
Below is a brief overview of the Smart Contracts that form Doma Protocol.
Doma Record: Main contract that holds information about a domain and issues Name Tokens. Serves as a coordination point for cross-chain operations. Exposes a Registrar-facing API that provides a full suite of operations to manage domains.
Doma Forwarder: EIP-2771 Trusted Forwarder, that relays meta transactions from a Registrar to Doma Record contract. Optional, since Registrars can submit transactions directly to the Doma Record contract.
Doma Gateway: ERC-7786 Gateway Source, deployed on each supported chain. This contract allows sending messages to contracts on other chains.
Proxy Doma Record: Supporting contract, facilitates communication between users and contracts on each tokenization chain with the Doma Record contract. Used to abstract Doma Chain from end-users and provides core domain-management operations (like claiming and bridging).
Ownership Token: Regular ERC-721 NFT contract (or equivalent on non-EVM chains), with some modifications to support expiration and compliance operations:
Additional
expirationOffunction is provided to check expiration date. After expiration, token will become non-transferrable, and could either be renewed or deleted by the Registrar.Additional
registrarOffunction is provided to get sponsoring Registrar's IANA ID.Token could be burned by the Registrar, if conditions are met (domain is claimed by a current token owner).
Registrar retains the right to burn the token even if conditions are not met (domain is not claimed by a current token owner) for compliance reasons (e.g. in case of lost UDRP dispute over the domain).
Registrar can lock token transfer for compliance reasons (e.g. in case of UDPR dispute in progress).
ERC-2981 standard is used to configure royalties information.
EVM-compatible chains
Proxy Doma Record Contract API - documentation for user-facing methods.
Name Token Contract API - documentation for non-standard methods of Ownership Token Contract.
Solana
On Solana, Doma Protocol integrates with Solana Records Service (SRS) program to issue and tokenize domains.
Doma Protocol owns a Permissioned Class on the SRS program, which is used to issue and manage tokenized domains.
Token 22 is used as an underlying NFT standard.
SRS Program retains full control over minted NFTs (since it can sign on behalf of mint account, which has full authority delegation), so compliance operations are performed through SRS, using Proxy Doma Record PDA as a Class Authority to authorize operations.
Doma Gateway exists as part of Proxy Doma Record Program.
Last updated