For Whirled Labs, the inspiration for this project was to develop an open-source tool for the XRPL community capable of making a real-world impact. We saw an opportunity to co-develop a solution by partnering with the developers of the Give XRP charitable crypto donations app.

For CFCE, this project was inspired by the desire to leverage blockchain technology to solve real-world problems by empowering nonprofit organizations to integrate cryptocurrency donations and charitable NFT fundraising into their revenue stream. We are translating this vision into reality through our Xumm xApp Give XRP, which provides the XRPL community with a simple, secure way to make tax-deductible donations to registered charitable organizations.

What it does


For this hackathon, Whirled Labs provided technical support to the Center for Collaborative Economics. This meant developing a functional NFT minting platform called Bettermint from scratch, and then integrating with Give XRP’s existing donation framework to enable NFT functionality.

Give XRP Customer Experience

When users make a donation through Give XRP, two things happen. First, users receive an emailed donation receipt enabling them to claim the donation on their taxes. Second, they can elect to receive an XRPL NFT containing the data from their transaction. It is important to note that these NFTs are not bought or sold, but rather minted automatically when a donation is made. The end goal is for these charitable donation NFTs to act as tax credits, similar to carbon credits.

Backend Overview

TheBettermint’s back-end platform enables automated and programmable NFT services, capable of generating unique tokens representing donations and awarding them when certain conditions are met, such as specific donation amounts, fundraising initiatives and causes, or which of the 17 UN 2030 Sustainable Development Goal categories the donation aligns with. TheBettermint’s open-source codebase and registry enables similar application architectures, providing unparalleled opportunities for synergistic collaboration in the developer space.

How we built it

Give XRP

The Give XRP xApp was built using nextjs, tailwinds, and vercel auto-deployment.

Bettermint Backend

TheBettermint backend was built using a series of typescript packages, a nodejs backend framework, and docker containers for deployment.

registry ( github | npm ) A package was created to store all nonprofit information including wallet address, ein, initiatives, etc. See here for more information.
Technologies used: typescript, npm, xrpl.js, jest

xrpl-tx-parser ( github | npm ) A package was created to listen for incoming payments made to our registered organizations on the XLS20 devnet. These transactions are then parsed and passed back. See here for more information.
Technologies used: typescript, npm, xrpl.js, jest

xrpl-xaddress-manager ( github ) A package was created to tracked xrpl account balances that are using destination tags. This package comes in handy for nonprofit organizations that would like to manage multiple donation initiatives using the same xrpl address. See here for more information.
Technologies used: typescript, npm, xrpl, jest, mongdb, xrpl-tx-parser

xrpl-pay-bot ( github ) A package was created to send payments to our registry walls as a means of testing the mint-bot. See here for more information.
Technologies used: typescript, npm, xrpl.js, jest, xrpl-accountlib

xrpl-auto-funder ( github | npm ) A package was created to auto-fund all wallets within the registry. The package uses the publicly provided faucets to programmatically create a new funded account and then send the fund to our wallets. The package supports the following faucets: testnet, devnet, xls20 devnet, hooksv2. See here for more information.
Technologies used: typescript, npm, xrpl.js, jest

xrpl-mint-bot ( github ) A package was created to auto-mint nft receipts for payments sent to the wallets within the registry. The package will only mint an nft if the destination tag matches within our registry. Payments are categorized by their amount, and tiered ( bronze, silver, gold) nft is automatically minted and offered to the donors account. See here for more information.
Technologies used: typescript, npm, xrpl.js, jest, mongodb, express, ipfs, docker, xrpl-tx-parser

Challenges we ran into

Building a functional app in a month is not a simple task. When the app incorporates innovative functionalities (such as NFTs representing charitable donations) the task becomes more complex. When the project is a collaboration between two teams who have never worked together, the complexity increases yet further. However, complex challenges often provide the most rewarding results, and this was the case for this hackathon’s collaboration between Whirled Labs and the Center for Collaborative Economics.

Ryan Molley, Whirled Labs Founder and CTO, said something in a team meeting which describes this well. He said, “I wanted to build one thing, but in order to get that thing to work, I had to build about ten other things.” Julian Kingman, Lead Developer for Give XRP, faced a similar situation when creating the architecture for claiming and viewing the minted charitable NFTs within the GiveXRP xApp.

In more concrete terms, hammering out issues like whether to use centralized or decentralized hosting services for our NFT metadata, navigating the already-very-full schedules of 5 team members to schedule meetings, zeroing in on individual and team goals, and figuring out the details of the integration between Give XRP (a CFCE product) and TheBettermint (a Whirled Labs product) kept us busy. But it was fun.

Accomplishments that we're proud of

-The automated, programmable NFT minting utility of TheBettermint open-source platform, allowing the XRPL developer community to leverage this project

-The various other useful open-source tools, such as the XRPL PayBot, AutoFunder, Address Manager - all potentially useful for the XRPL developer community, which were built as subsidiary projects to get the NFT functionality working

-The integration of TheBettermint into the Center for Collaborative Economics ecosystem via the nonprofit registry

-The ability of our teams to come together and collaborate on bringing a shared vision to life, showcasing a model which could be replicated elsewhere in the XRPL developer community

-The way Give XRP empowers the XRPL community to make a real world impact through tax-deductible charitable donations

-Charitable donation NFTs as tax credits (i.e. tokenized, exchangeable tax documents) is an idea with wide-ranging implications, and this hackathon submission represents a concrete step towards that endpoint.

What we learned

-Focus small while thinking big, keeping a grand vision for an interconnected and sustainable future while tackling immediate steps one at a time.

-For the XLS-20d XRPL NFT standard, NFTs cannot be force-sent directly to a public address, they must be claimed/signed by the recipient. Whirled Labs overcame this via proprietary database integration into the Give XRP xApp.

-There isn't native support on the XRPL for destination tag management. We overcame this by creating an open-source wallet management tool.

-Funding XRPL testnet wallets isn't necessarily a simple process. Whirled Labs addressed this issue by creating an open-source "testnet wallet auto-funding" tool from scratch.

What's next for Give XRP xAPP integrates TheBettermint for NFT automation


In Q3/Q4 2022, we are preparing Give XRP for deployment in time for the 2023 tax season. Current tasks include working with legal professionals to ensure regulatory compliance, onboarding additional nonprofit partners, and expanding the functionality of the app.

Projects within Give XRP include enabling recurring donations using automated payments, integration with GlobalID for optional user KYC authorization, and creating user profiles to display NFTs and start building a community.

We're also looking to expand our model to include legacy payment systems for enterprise adoption by banks and corporations seeking ESG certification.

Inspired by this hackathon, we look forward to continuing our collaboration with Whirled Labs and also to pursuing new partnerships both within and outside the XRPL ecosystem.

For Whirled Labs

We will be focusing on strengthening our automated minting service, TheBettermint, by adding an on-demand tokenization API. We look forward to continuing our partnership with the Center for Collaborative Economics, helping to build out their platform and curating partnerships with artists and nonprofit organizations in the future.

TheBetterMint also has a website link. Whirled Labs encourages any projects interested in their open-source NFT automation platform to reach out and contact them directly. Our founder has also been working on a Metamask alternative for the XRPL called CrossMark, and it is set for a public beta release in the fall.

Built With

Share this project: