# How it works

### On-ramp

An on-ramp allows a user to exchange their local currency for cryptocurrency. How it works for end users:

1. A customer selects his funds source (Airtime, Mobile Money, Bank, etc.) and the amount of crypto he would like to receive
2. Customer provides his wallet details
3. Customer transfers funds to an agent we found for him and confirms the order
4. An agent confirms the order and the system sends crypto to a customer's wallet

{% @mermaid/diagram content="sequenceDiagram
User->>Widget: Specify the amount of crypto to buy
Widget->>User: Show the best offer
User->>Widget: Specify wallet details
User->>Widget: Verify email
User->>Widget: Create order
Widget->>User: Provide transfer funds instructions
Note over User: Send funds to an agent
User->>Widget: Confirm that funds are sent
Note over Agent: Check if funds are received
Agent->>Widget: Confirm that funds are received
Widget->>User: Send crypto to user wallet" %}

Example of Nigeria bank on-ramp:

{% embed url="<https://gumlet.tv/watch/696784c6b25141dfa4cca3f0/>" %}

### Off-ramp

An off-ramp allows a user to exchange their cryptocurrency for their country's local currency . How it works for end users:

1. Customer selects off-ramp type and specifies the amount of crypto he wants to exchange. System displays how much local currency he will receive.
2. Customer verifies his email by entering a code sent to him.
3. Customer provides his account details such as bank account number, bank name, etc.
4. System returns a wallet address where customer should send his crypto.
5. Customer sends crypto to the provided address and provides a transaction hash to the system.
6. System checks if the transaction is received and sends local currency to the customer's account.

{% @mermaid/diagram content="sequenceDiagram
User->>Widget: Specify amount of crypto to exchange
Widget->>User: Show the best offer
User->>Widget: Verify email
User->>Widget: Provide account details
User->>Widget: Create order
Widget->>User: Wallet address to send crypto
Note over User: Send crypto to the wallet
User->>Widget: Send transaction hash
Note over Widget: Check if funds are received
Widget->>User: Send local currency to the user account
" %}

Example of the Kenya Mobile Money off-ramp:

{% embed url="<https://gumlet.tv/watch/69678576b25141dfa4ccb1ef/>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fonbnk.com/how-it-works.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
