Rafiki
What is Rafiki?
Rafiki is open source software that allows an Account Servicing Entity to enable Interledger functionality on its users' accounts.
This includes
- sending and receiving payments (via SPSP and Open Payments)
- allowing third-party access to initiate payments and view transation data (via Open Payments)
❗ Rafiki is intended to be run by Account Servicing Entities only and should not be used in production by non-regulated entities.
Rafiki is made up of several components including an Interledger connector, a high-throughput accounting database called TigerBeetle, and several APIs:
- the Admin API to create peering relationships, add supported assets, and issue payment pointers
- the Open Payments API to allow third-parties (with the account holder's consent) to initiate payments and to view the transaction history
- the SPSP API for simple Interledger Payments
Additionally, this package also includes a reference implementation of a GNAP authorization server which handles the access control for the Open Payments API. For more information on the architecture, check out the Architecture documentation.
New to Interledger?
Never heard of Interledger before, or you would like to learn more? Here are some good places to start:
- Interledger Website
- Interledger Docs
- Interledger Explainer Video
- Payment pointers
- Open Payments
- Web monetization
Contributing
Please read the contribution guidelines before submitting contributions. All contributions must adhere to our code of conduct.
Planning Calls
Our planning calls are open to our community. We have them every Monday at 16:00 GMT, via Google Meet.
Google Meet joining info
Video call link: https://meet.google.com/rdx-xoqn-iiq
Or dial: (US) +1 408-831-2432 PIN: 472 676 485#
More phone numbers: https://tel.meet/rdx-xoqn-iiq?pin=3263008843276
Local Development Environment
Prequisites
Environment Setup
# install node 18
nvm install lts/hydrogen
nvm use lts/hydrogen
# install pnpm
corepack enable
# if moving from yarn run
pnpm clean
# install dependencies
pnpm i
Local Development
# build all the packages in the repo:
pnpm -r build
# build specific package (e.g. backend):
pnpm --filter backend build
# generate types from specific package GraphQL schema:
pnpm --filter backend generate
# run individual tests (e.g. backend)
pnpm --filter backend test
# run all tests
pnpm -r --workspace-concurrency=1 test
# format and lint code:
pnpm format
# check lint and formatting
pnpm checks
# verify code formatting:
pnpm check:format
# verify lint
pnpm check:lint
The localenv directory contains resources for setting up Rafiki in common configurations.