Implementation of a .algo domain


I want to create NFTs on Algorand that represent .algo domains.

When a user wants to send algos or ASAs to another account, he/she can type in the .algo domain instead of the address.

I want to create a smart contract that takes care of the underlying logic (resolving a .algo domain to an actual Algorand address).

Brainstorming: the smart contract can hash the .algo domain.

For example, a user might send 10 algos to the smart contract and “google.algo” as an argument to the transaction. The smart contract hashes “google.algo” and out comes an Algorand address. The smart contract then sends the 10 algos to that address through an inner transaction.

Question: how could this be implemented with NFTs such that a user can purchase a domain as an NFT and have the ownership to the underlying Algorand account that gets hashed from the domain name?

Brainstorming again: maybe the smart contract can receive the NFT in a grouped transaction and check for the AssetName of the NFT (which would be the domain), and hash that instead? The problem is that two assets on Algorand could share the same AssetName so I could hash the asset id which is unique, but then how can the asset id be mapped to the domain?

Any ideas/suggestions are welcome.

Not a direct answer to your question but there’s a cool team working on this already.
They got a grant from Algorand Foundation and also raised a round from Borderless Capital recently.

Check them out:


Take a look at as well. They are on TESTNET but going with speed of light toward MAINNET