Skip to content
GitHub

Rafiki Admin application user guide

The Rafiki Admin application provides tools to manage peers, assets, wallet addresses, webhooks, payments, and account settings. It functions as an interface to the Rafiki backend service and all actions performed, such as fetching data or executing commands, are passed to the Rafiki backend service. The purpose of this document is to help you navigate and use the Rafiki Admin application effectively.

Getting started

Prerequisites

  • Familiarity with general Rafiki concepts. The Rafiki overview is a great place to start.
  • Running the Rafiki frontend package. See Frontend service for more information.

Identity and user management

Rafiki Admin relies on the Ory Kratos identity and user management solution to handle authentication (login) and user management (account creation and password recovery).

Login and account management

Access to Rafiki Admin is restricted to ensure that only authorized users can register. This is achieved by using an invitation-only system, where new users are invited by an administrator. The registration flow is not public, so users cannot sign up on their own. Instead, administrators create accounts using the invite-user script.

Invite a user

An administrator (someone with backend interface system access) can run the invite-user script in one of two ways: from outside the container on the host machine where Docker is running or directly inside the Rafiki Admin Docker container.

Outside container on host machine
docker exec -it <admin-container-name> npm run invite-user -- example@mail.com
Inside Rafiki Admin Docker container
npm run invite-user -- example@mail.com

After running the invite-user script, the script generates a recovery link that also serves as an invitation link. This link is output to the terminal, and the administrator can send it to the user. When the user opens the link in their browser, they are automatically logged in and taken to the account settings page where they can set a new password. Afterward, they can log in normally via the Rafiki Admin URL.

There is an automated account recovery flow which requires an SMTP mail server for sending recovery links to users. Alternatively, an administrator can generate a recovery link using the same invite-user script.

Remove a user

To remove a user, administrators can run the following script in a terminal window:

docker exec -it <admin-container-name> npm run delete-user -- example@mail.com.

Why Ory Kratos?

We chose Kratos for its open-source nature, lightweight design, and robust security features. It eliminates the need to manage password hashing, storage, or account recovery flows ourselves, allowing us to focus on what we do best.

Kratos also enhances security with features like built-in breach detection, secure session management, and regular security updates.

Ory Kratos provides frontend components (such as forms and buttons) for identity management flows like login, and account settings. These components are not fixed in design; they are fetched via API calls which allows us to match the identity management components with Rafiki Admin’s overall look and feel.

After logging in, you’ll be greeted by the main landing page with a left-hand navigation menu. This menu provides access to all of the main functionality needed to manage your Rafiki instance.

Each of the following menu items leads to a different page of the Rafiki Admin application:

Peers

The Peers page allows you to manage peering relationships in your Rafiki instance, including viewing, creating, editing, and deleting peers.

On this page, all configured peers are displayed in a table where you can view the peer name, its ILP address, asset details including the asset type and scale, and the outgoing HTTP endpoint.

Create peer

To create a new peer, select Create Peer from the main Peers page.

Fill out the following fields to configure and create your peer:

SectionFieldDescription
General InformationNameA public name for the peer to identify it on your system.
Static ILP AddressThe peer’s ILP address, obtained from the peer.
Max Packet AmountThe agreed-upon maximum number of packets a payment is split into.
HTTP InformationIncoming Auth TokensA comma-separated list of tokens accepted by your Rafiki instance from a peer for incoming requests.
Outgoing Auth TokenA single token used by your Rafiki instance for all outgoing requests to authenticate itself with the peer.
Outgoing EndpointThe URL of the peer’s server where your Rafiki instance sends outgoing requests.
Asset InformationAssetThe asset used for transactions with this peer.

After completing these fields, select Create to add the new peer.

Edit peer

To edit an existing peer, select any peer entry from the table on the main Peers page. This opens the Edit Peer page where you can view and modify peer settings.

While the Edit Peer page shares fields with the Create Peer page, it also includes additional fields and actions specific to managing an existing peer:

SectionField/ActionDescription
General InformationPeer IDA unique identifier assigned by Rafiki when the peer was created. This cannot be changed.
Asset InformationView AssetFor more information about an asset, select View asset.
Liquidity InformationAmountCurrent amount of peer liquidity available.
Deposit LiquidityTo increase the amount of liquidity available, select Deposit liquidity.
Withdraw LiquidityTo reduce the amount of liquidity available, select Withdraw liquidity.

After editing any of the above fields in the General Information or HTTP Information sections, select Save to commit those changes.

Delete peer

The final section of the Peers page is the irreversible action of deleting a peer. Select Delete peer to make this change.

A screenshot of the Rafiki Admin application user interface displaying the "Delete Peer" modal window.

Confirm the deletion by typing “delete peer” into the text field and selecting Delete this peer.

Assets

The Assets page allows you to manage assets in your Rafiki instance, including viewing, editing, and creating assets.

On this page, all configured assets are displayed in a table where you can view the asset ID, the asset code, the scale, and the withdrawal threshold.

Create asset

To create a new asset, select Add Asset from the main Assets page.

Fill out the following fields to create your new asset:

SectionFieldDescription
General InformationCodeThe asset code, generally an ISO 4217 currency code where available.
ScaleDifference in order of magnitude between the standard unit and a fractional unit.
Withdrawal ThresholdThe minimum amount of liquidity that can be withdrawn from the asset.

After completing these fields, select Create to add the new asset.

Edit asset

To edit an existing asset, select any asset entry from the table on the main Assets page. This opens the Edit Asset page where you can view and modify asset settings.

While the Edit Asset page shares fields with the Create Asset page, it also includes additional fields and actions specific to managing an existing asset:

SectionField/ActionDescription
General InformationAsset IDA unique identifier assigned by Rafiki when the asset was created. This cannot be changed.
Liquidity InformationAmountCurrent amount of asset liquidity available.
Deposit LiquidityTo increase the amount of liquidity available, select Deposit liquidity.
Withdraw LiquidityTo reduce the amount of liquidity available, select Withdraw liquidity.
Sending FeeFixed FeeFlat fee per asset, specified in the smallest unit as defined by the asset scale. In our screenshot above, a fixed fee value of 100 with a scale of 2 represents 1 USD.
Basis PointsA variable fee per asset. One basis point fee is equal to 0.01% of the total amount, 100 basis points = 1%, 10000 basis points = 100%
Fee historyTo view a list of asset fees over time, select Fee history.

After editing any of the above fields in the General Information or Sending Fee sections, select Save to commit those changes.

Wallet addresses

The Wallet Addresses page allows you to manage the wallet addresses associated with your Rafiki instance, including viewing, editing, and creating wallet addresses.

On this page, all configured wallet addresses are displayed in the table where you can view the address URL, the public name, and the wallet status.

Create wallet address

To create a new wallet address, select Create wallet address from the main Wallet Address page.

Fill out the following fields to create a new wallet address:

SectionFieldDescription
General InformationWallet address nameThe URL of the wallet. Once set, it cannot be changed.
Public nameThe name associated with the wallet that is visible to anyone with the URL.
AssetSelect an asset to associate with this wallet.

After completing this section, select Create to add the new wallet address.

Edit wallet address

To edit an existing wallet address, select any wallet address entry from the table on the main Wallet Addresses page. This opens the Edit Wallet Address page where you can view and modify wallet address details.

While the Edit Wallet Address page shares fields with the Create Wallet Address page, it also includes additional fields and actions specific to managing an existing wallet address.

SectionField/ActionDescription
General InformationIDA unique identifier assigned by Rafiki when the wallet was created. This cannot be changed.
URLThe wallet address. This cannot be changed.
StatusThe current status of the wallet, either active or inactive.
Asset InformationCodeThe asset code, generally an ISO 4217 currency code where available.
ScaleDifference in order of magnitude between the standard unit and a fractional unit.
Withdrawal thresholdThe minimum amount of liquidity that can be withdrawn from the asset.
View assetFor more information about an asset, select View asset.
Liquidity InformationAmountCurrent amount of liquidity available for this wallet.
WithdrawTo withdraw funds from this wallet, select Withdraw.

After editing any of the above fields in the General Information section, select Save to commit those changes.

Webhooks

The Webhook Events page allows you to monitor and manage webhook events within your Rafiki instance. Webhook events in Rafiki are the main communication channel between you and your Rafiki instance. See Webhook events for more information about webhook events.

All webhook events that have been triggered are displayed in the table. For each webhook event, you can see the webhook ID, the event type, and the date and time of the event. There is also a field at the top of the page allowing you to filter the table by event type, making it easier to drill down into specific events.

To view the webhook event as a JSON representation, select View data.

Payments

The Payments page allows you to view all incoming and outgoing payments in your Rafiki instance. This allows you to monitor payment activity as well as track the status of payments.

All payments are displayed in the table. For each payment, you can view the unique payment ID, type of payment, state of the payment, and the date and time the payment was created. There is also a field at the top of the page allowing you to filter the table by payment type, making it easier to drill down into specific transactions.

Account settings

The Account Settings page allows you to manage your personal account information, including updating your email address and password.

To change your email address, enter the new email address and select Save.

To change your password, enter your new password and select Save.