Please describe your proposed solution
While providing a large variety of services on Cardano over the past few years, we have found snapshots to be one of the most critical and common dependencies shared by all services. Whether a project needs to prepare a whitelist, generate an airdrop, set up a staking platform, run minting raffles, support asset-based Discord roles, provide token-gated website, show asset metadata on a website, or provide any other service based on asset metadata or asset holders, snapshots are the foundation. With that said, there are no open-source snapshot tools that are easy to use and robust enough to support all of the use cases described.
Our snapshot solution, a portable TypeScript library that can be utilized in any website or server environment, will have a feature-first design built with project owners in mind. The tool will cover all common use cases out of the box, with the ability to build upon the solution for more advanced situations. This includes, but is not limited to, holder snapshots based on policy IDs, metadata snapshots for policy IDs, snapshots for the original minters of assets based on policy IDs, and stake pool delegator snapshots including the assets held by each wallet.
The snapshots will be efficiently performed by running requests in parallel to the data source. There will be built-in protection for request failures (due to network issues, exceeding allowed request frequency, etc.) that retries the requests at safe intervals. The snapshot will not be disrupted by these issues, but will instead carry on normally as soon as the requests are successful again. There will also be several configurations available for the snapshots, relating to request frequencies, data filtering, and more. When it comes to wallet addresses, there will be advanced detection and filtering of wallet data including era (Byron vs. Shelley), payment part, and delegation part. If the address is a script (smart contract), there will even be the ability to see if the first address with the shared stake key was also a script; in other words, you can see if the wallet was originally created as a normal user payment wallet or if the wallet is only used for scripts. All of this information is essential when it comes to preparing meaningful whitelist and airdrop setups.
Obtaining the data is only one part of the solution. Once we have the data, we need to understand it and make use of it. This tool will come with support for various output granularities (some examples being asset-level, address-level, and wallet-level) to enable usage in every situation. The initial goal is to provide JSON output, however that may be expanded upon based on community feedback.
<u>Demonstrating Impact:</u>
We will track the adoption of our solutions through direct feedback, tool usage metrics, and success stories from project owners who utilize our snapshot solution. This will allow us to continuously refine our offerings and provide tangible evidence of our impact on the ecosystem.
<u>Uniqueness and Benefits:</u>
What sets our solution apart is its proven track record, ease of integration, support for any level of complexity, and robust error handling. By democratizing access to high-quality snapshot tools, we are helping to lay the technical foundation needed for rapid and valuable project growth and accomplishments.