We built gold.xyz in order to facilitate treasury bootstrapping, fundraising and community building for anyone. The main goal was to build something that helps DAOs, NFT artists and community managers kickstart their project. Once a user creates an auction/fundraiser in our web application (mainnet: https://alpha.gold.xyz), they can auction off NFTs or SPL tokens through multiple auction rounds. These rounds are time limited and an NFT or an amount of SPL tokens are minted to the highest bidder after each cycle. The incoming winning bids accumulate in the auction owner's treasury. We are planning to incorporate this project in a wider set of tools aimed mainly at DAOs. gold.xyz would provide the backbone of governance, as only the most determined bidders would receive NFTs/tokens that would make them eligible for voting. Furthermore, the treasury functionalities will be extended to allow airdrop splits and token vesting. In a sense, gold.xyz is already a token vesting primitive, as new tokens are minted only after an auction round is finished. Last but not least, we were putting great effort in trying to bridge the gap between programs written in Rust and webapps using TypeScript. We managed to build a system that ports most of our program to Wasm which can be directly called in the webapp code. For us, Anchor seemed a bit too restrictive, thus we made our own alternative. It still needs some more macros to make it easier to use, but it gets the job done. More details about this journey can be found in the Mirror article that we published, however, since then the code has been reworked to be even more clear and easy to use.
mainnet demo: https://alpha.gold.xyz/ program: https://github.com/agoraxyz/gold-rust webapp: https://github.com/agoraxyz/gold.xyz docs: https://app.gitbook.com/o/-Mfx7J6iJaWmiLjXXzi5/s/o1ekWZfhTQ0jbxZVfWCB/ mirror: https://mirror.xyz/goldxyz.eth