Inspiration
address-pass was probably inspired by my experiences using crypto for in-person transactions being a bit tedious. What currency am I receiving? Where is my wallet/account located? Is my account/public key compatible with other networks? Is my receiving address an exchange address? These questions can be answered by recipients integrating their addresses in places that are accessible as possible.
Mobile wallets are already used to check in to flights, redeem memberships, and it seems more merchants accept taps than ones that don’t. Why do I need to pull out my wallet or credit card when I can tap on my phone? Mobile wallets have proven in practice to make digital transactions convenient which is much needed for the future integration of on-chain payments, hence I’ve created this concept.
What it does
address-pass takes a recipients' XRP address, verifies the address, then generates an Apple Wallet pass, encoding the recipient address onto the pass. The recipient can then add the pass to their iPhone by scanning the QR code generated and receive payments easily with their mobile device.
Integrating mobile wallet(s) enables the recipient to receive transactions easily as possible. Furthermore, payment streaming can be leveraged to create interoperability between CeFi and DeFi.
How we built it
I started development for this app in early August by first exploring the prerequisite for creating mobile passes (Google wallet, Apple wallet, PayPal, etc). I decided to focus on an implementation with Apple because it's widely adopted. (I'm not against the idea of issuing Google passes as well)
After applying for an apple dev account, I explored the XRP documentation for the different ways we can authenticate users/accounts/wallets, cloned the repo for the xrp-wallet
Using pass-js I formed an API in TypeScript/SvelteKit that generates an Apple Wallet pass using my credentials. Made a basic frontend with user inputs.
After generating a working pass, I uploaded the pass on an S3 bucket (Which is where the pass is currently stored, to access from a mobile device (backblaze)) Once a pass could be generated, uploaded, and accessed, user/account params from the frontend were integrated to the formation of the pass (address, checksum, name)
I then created a QR code to access the S3 link, and before generating a pass the XRP account needs to be validated as real, so I created an endpoint for verifying the XRP address is valid, and returning account_data before calling the pass generation endpoint.
Challenges we ran into
Creating an Apple developer account - took over 4 days and contacting apple support several times
Getting tooling / SDK for generating passes
Actually getting pass on my iPhone, and the user experience of it seamless
Validating XRPL client / accounts to ensure only valid accounts are made as passes
Accomplishments that we're proud of
- Developed this concept in a short time
- Created a ready, practical solution / method for receiving transactions / payments
- Wide value proposition (provides value to both DeFi / CeFi)
What we learned
- How to integrate Apple Developer Tools
- A practical payment streaming solution for crypto accounts
- Sharpened my skills creating backends in Svelte
- Learned about the XRP ecosystem and development tools
What's next for address-pass - receive XRP & payments via Apple Wallet
I believe a long-term vision and possible opportunity for address-pass (CBDC stuff) is to be launched as a prototype or product, to explore new means of interacting on-chain, and provide payment streaming for both crypto and traditional services. Mobile wallets are widely adopted by merchants & users globally which could be leveraged for services on-chain.
Short term vision would be to make this tool more accessible & chain agnostic - address-pass on EVM would work well too; as accounts addresses are transferrable across chains. I think there's a lot to explore in terms of what is the best direction. Excited to see what the Ripple ecosystem thinks of my concept.
Built With
- node.js
- pass-js
- passkit
- ripple
- sveltekit
- tailwind
- typescript
- vercel
- xrpl


Log in or sign up for Devpost to join the conversation.