This project is a Decentralized Name Service (DNS), enabling users to register, manage, and resolve ids on the blockchain. The project leverages blockchain technology to provide a decentralized, secure, and transparent naming system.
It consists of three main components:
- Contract: The smart contract
BuidlDomains.solmanages name registration and ownership on the blockchain. - Backend: A GraphQL server built with Node.js and TypeScript provides an API layer for interacting with the contract data that is indexed and managing metadata.
- Frontend: A React application built with Vite serves as the user interface for interacting with the decentralized name service, using Privy smart wallets.
Backend: https://buidl-domains.aditipolkam.me/
Frontend: https://buidl-domains.vercel.app/
Contract: https://sepolia.basescan.org/token/0x53bd9bdff89037a97375e33ae1c412e94d7f2c6c
API Docs: /backend/README.md
Claim Name: Users can register and claim a unique name on the blockchain, ensuring ownership and decentralization.
Setup Profile: Once a name is claimed, users can set up their profile by adding personal information, bio, and other details.
View Profile: Users can view their own profile or the profiles of others, showcasing their claimed name and associated details.
Discover People: Users can explore and discover other profiles on the platform, fostering connections within the decentralized network.
Ensure you have the following installed on your system:
- Node.js (v20 or higher)
- Yarn or npm
- Hardhat (for smart contract development)
- A blockchain node (e.g., Hardhat local node or any testnet)
git clone https://github.com/aditipolkam/buidl-domains
cd buidl-domainsNavigate to the contract folder to set up the smart contract.
-
Install dependencies:
cd contract yarn install -
Compile the contract:
npx hardhat compile
-
Deploy the contract:
- Start a local blockchain node:
npx hardhat node
- Deploy the contract to the local node:
npx hardhat ignition deploy ignition/modules/buidl.ts --network localhost
- Start a local blockchain node:
-
(Optional) Deploy to a testnet - Configure your
.envfile with the necessary keys (e.g.,PRIVATE_KEY,ALCHEMY_KEY):.- Deploy:
npx hardhat ignition deploy ignition/modules/buidl.ts --network <testnet-name>
- Deploy:
Navigate to the backend folder to set up the GraphQL server.
- Install dependencies:
cd ../backend yarn install - Create a
.envfile:DATABASE_URL=<database connection string> CONTRACT_ADDRESS=<deployed_contract_address> RPC=<blockchain_node_url> - Start the server:
yarn start
Navigate to the frontend folder to set up the user interface.
- Install dependencies:
cd ../frontend yarn install - Create a
.envfile: - Add the necessary environment variables:VITE_PRIVY_APP_ID=<privy app id> VITE_GRAPHQL_ENDPOINT=http://localhost:4000 VITE_CONTRACT_ADDRESS=<deployed_contract_address> - Start the development server:
yarn dev
- Start the blockchain node: Ensure the Hardhat node is running if using a local network.
- Deploy the contract: Make sure the smart contract is deployed.
- Run the backend: Start the GraphQL server.
- Run the frontend: Launch the React development server.
You can now access the frontend at http://localhost:5173 and interact with the decentralized name service!





