Inspiration
We wanted the ability to pay a group of people using just their email addresses. This would then allow us to notify the group that a payment was available and give them a way to associate their email address with a payment address.
We want to be able to onboard people to the XRPL without having to give them a wallet address. We also want to be able to send payments to people who don't have a wallet address (yet).
What it does
This is a simple cli tool to help us implement the send-to-social idea. It takes a list of email addresses and allows you to send a payment to them. It then notifies them that a payment is available and gives them a way to associate their email address with a payment address.
How we built it
We wanted the sender of the funds to have to escrow their payment so they couldn't change their mind later. To accomplish this we use a trusted third party service (the backend system here) that will take the escrow payment as well as the fulfillment condition. This escrow payment goes to the third party service (rather than to the unknown email address)... and so when the third party service gets notified that the user now has an account they'll release the escrowed payment, first to the service, and then to the user (minus its fee).
Challenges we ran into
We spent some time with the architecture to make it easy for the end users. Ideally we want to have the ability to send one payment to many many users, so it was a common case that users wouldn't have an account yet. We still have some work to do to make it easy for everyone, and we think that we can fit this into a gui wallet which could help with the UX. ... so tl;dr we had some challenges with the interface and architecture.
Lots of fiddly bits...
Accomplishments that we're proud of
We really like the the HDWallet implementation to allow one mneumonic to be used for many wallets. We also like the idea of using a trusted third party to escrow the funds and then release them to the user once they have an account. We like using the ledger itself as a mechanism to notify one part of the architecture that the user has an account (it's done via the Memo field).
What we learned
So many things... lots of time getting the key generation right. It was a bit of an integration project with a CLI front-end, so a pretty wide blast radius.
What's next for Send to Social
We want to integrate this into our existing work with Kudos. https://github.com/loremlabs/kudos ... and flesh out more commands, get some user feedback, etc...
Built With
- cli
- graphql
- sveltekit
- xrpl.js
Log in or sign up for Devpost to join the conversation.