Ecosystem projects need to be able to integrate .avax into their application with as little friction as possible. Less integration friction leads to more integrations, ultimately growing the use-cases of the .avax system.
Until now, we have provided client libraries in various programming languages for projects to integrate. The client libraries have handled the complexities of the Avvy contracts, taking care of encodings & providing the Poseidon hashing libraries.
To simplify the process of integrating the Avvy Domains system, we are moving to contract-based resolution. Integrators can call a single contract, passing in the domain name or value in plaintext, and receiving a domain name or value in plaintext. This moves all complexity related to encodings & hashing to the RPC level, eliminating the need for custom libraries.
The tradeoff is a minor privacy leak to the RPC: instead of keeping names private on the client side, these names get leaked to the RPC. Since this is a soft privacy layer anyways, it seems like a reasonable tradeoff to stimulate growth of the project. Users can maintain the same level of privacy by selecting an RPC that they trust with their private information.
For more information, Read the docs on the Resolution Utils contract.