Skip to content

Commit 6e7e2af

Browse files
committed
advancing guide4 of web-ubi
1 parent b1b41e7 commit 6e7e2af

File tree

2 files changed

+172
-37
lines changed

2 files changed

+172
-37
lines changed

resources/en/web3-and-ubi/guide4.md

Lines changed: 47 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
Needs to be improved to reflect really how the user interaction is with
2-
stable-sl.pdJ.app with screenshots. Include the video
3-
4-
https://youtube.com/shorts/Gy9Fgruebx0
51

62
# Guide 4: Your Bridge to Cash - Using On-Ramps & Off-Ramps
73

84
### **Introduction**
5+
96
To use your digital UBI in daily life, you need to convert it into your local
10-
currency. This is done through specialized services called **on-ramps** and
11-
**off-ramps**, which act as bridges between the traditional financial world and
12-
the blockchain.
7+
currency. This can be done through services called **on-ramps** and **off-ramps**,
8+
which act as bridges between the traditional financial world and the blockchain,
9+
or depending on your country there could be exchanges that can interact with your
10+
bank (like Coinbase in USA) or you could buy and sell to people specialized
11+
using the P2P market of exchanges like OKX and Binance (see the
12+
course about OKX at https://learn.tg/en/save-in-dollars-on-OKX).
1313

1414
* **On-Ramp:** A service that converts your local currency (like USD, EUR, or
1515
SLE) **into** cryptocurrency.
@@ -18,8 +18,7 @@ the blockchain.
1818

1919
**Your First Task:** Search online for "buy crypto [Your Country]" or "sell
2020
crypto for [Your Local Currency]" to find a platform that operates in your
21-
region. Popular global examples include Binance, Kraken, or local exchanges.
22-
Always verify the platform's legitimacy before use.
21+
region. Popular global exchanges are OKX and Binance.
2322

2423
The following section provides specific instructions for users in **Sierra
2524
Leone** using our local partner.
@@ -33,37 +32,49 @@ This service is designed to work directly with Sierra Leonean Leones and mobile
3332
money.
3433

3534
> **Future Note:** stable-sl.pdJ.app will soon partner with learn.tg to verify
36-
> that UBI distributions are exclusively for Sierra Leone nationals, ensuring
37-
> the benefits stay within our community.
35+
> that UBI distributions are exclusively for Sierra Leone nationals
36+
37+
We invite you the check the following video
3838

39-
#### **Step-by-Step Guide:**
39+
[![Video showing operation of stable-sl.pdJ.app](https://youtube.com/shorts/Gy9Fgruebx0)](https://youtube.com/shorts/Gy9Fgruebx0)
40+
41+
#### **Step-by-Step Guide to change crypto for SLE:**
4042

4143
**Step 1: Access and Connect**
4244
1. Go to **[stable-sl.pdJ.app](https://stable-sl.pdj.app/)**.
4345
2. Click "Connect Wallet" and select your OKX Web3 Wallet to link it securely.
4446

4547
**Step 2: Send Your UBI Tokens**
46-
1. On the platform, find your unique **deposit address**.
47-
2. Open your OKX Wallet, select the UBI tokens (G$ or TLG) you wish to cash
48-
out, and send them to the provided deposit address.
49-
50-
**Step 3: Convert to Leones**
51-
1. Once the tokens arrive, use the platform's interface to sell them. You will
52-
likely convert them first to a stablecoin like cUSD, then to **Sierra
53-
Leonean Leones (SLL)**.
54-
2. Review the final exchange rate and amount in Leones before confirming.
55-
56-
**Step 4: Withdraw to Your Account**
57-
1. Enter your local bank account details or mobile money number (e.g., Orange
58-
Money, Afrimoney).
59-
2. Initiate the withdrawal. Funds typically arrive within minutes to a few
60-
hours.
48+
1. Type your name and Orange phone number (at the moment of this writing this
49+
service supports only Orange Money).
50+
2. Select the crypto that you are going to change to SLE (e.g CELO)
51+
3. Push the button **Sell**
52+
53+
**Step 3: Type the amount and continue
54+
1. Type the amount of crypto you want to sell and wait some seconds to see
55+
a quote informing how much SLE you will receive
56+
2. If you agree with the price push the Continue button
57+
58+
**Step 4: Confirm the transaction**
59+
1. Review the details, check that you typed correctly your phone number
60+
and that it is regisgtered on your name
61+
(because the SLE will be sent to that number if it matches your name).
62+
2. Push the Confirm button
63+
64+
**Step 5: Wait for your SLE or communicate with the support team**
65+
1. Take a screenshot that shows details of the operation and the transaction
66+
number
67+
2. Wait some minutes for your SLE
68+
3. If you have any issue please contact +232 75 343 641 or with
69+
Telegram contact +57 3165383162
70+
6171

6272
---
6373

6474
### **Important Considerations**
6575
* **Fees:** Small transaction fees apply for the network and conversion
66-
services.
76+
services, you need to have CELO (1 will be enough for more than 10
77+
transactions) in your wallet to pay for them.
6778
* **Rates:** Exchange rates vary. Always check the final amount you will
6879
receive.
6980
* **Security:** Only use reputable services. Double-check website URLs and
@@ -72,11 +83,12 @@ Leonean Leones (SLL)**.
7283
---
7384

7485
### **Comprehension Questions**
75-
1. What is the main function of an **off-ramp** service?
76-
2. What is the recommended off-ramp service for users in Sierra Leone?
77-
3. What is the future goal of the partnership between stable-sl.pdJ.app and
78-
learn.tg?
86+
1. An off-ramp service allows you to ___ your crypto and receive fiat money
87+
of your country. (sell)
88+
2. An **on-ramp** service allows you to ___ crypto with the
89+
fiat money of your country (buy)
90+
3. stable-sl.pdJ.app is the recommended on-ramp and off-ramp ___ in
91+
Sierra Leone. (service)
92+
4. It is also possible to buy and sell crypto for fiat using the P2P market
93+
of ___ like OKX and Binance. (exchanges)
7994

80-
---
81-
*(Answer all questions correctly to qualify for this lesson's scholarship vault
82-
and complete the course.)*

servidor/db/structure.sql

Lines changed: 125 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,35 @@ CREATE PROCEDURE public.cor1440_gen_recalcular_poblacion_actividad(IN par_activi
193193
$$;
194194

195195

196+
--
197+
-- Name: course_usuario_timestamps(); Type: FUNCTION; Schema: public; Owner: -
198+
--
199+
200+
CREATE FUNCTION public.course_usuario_timestamps() RETURNS trigger
201+
LANGUAGE plpgsql
202+
AS $$
203+
BEGIN
204+
-- Para inserciones (INSERT)
205+
IF TG_OP = 'INSERT' THEN
206+
-- Si created_at no fue proporcionado, establecer a ahora
207+
IF NEW.created_at IS NULL THEN
208+
NEW.created_at = NOW();
209+
END IF;
210+
-- Siempre establecer updated_at a ahora en inserción
211+
NEW.updated_at = NOW();
212+
213+
-- Para actualizaciones (UPDATE)
214+
ELSIF TG_OP = 'UPDATE' THEN
215+
-- Nunca modificar created_at en actualizaciones
216+
-- Solo actualizar updated_at
217+
NEW.updated_at = NOW();
218+
END IF;
219+
220+
RETURN NEW;
221+
END;
222+
$$;
223+
224+
196225
--
197226
-- Name: f_unaccent(text); Type: FUNCTION; Schema: public; Owner: -
198227
--
@@ -204,6 +233,35 @@ CREATE FUNCTION public.f_unaccent(text) RETURNS text
204233
$_$;
205234

206235

236+
--
237+
-- Name: guide_usuario_timestamps(); Type: FUNCTION; Schema: public; Owner: -
238+
--
239+
240+
CREATE FUNCTION public.guide_usuario_timestamps() RETURNS trigger
241+
LANGUAGE plpgsql
242+
AS $$
243+
BEGIN
244+
-- Para inserciones (INSERT)
245+
IF TG_OP = 'INSERT' THEN
246+
-- Si created_at no fue proporcionado, establecer a ahora
247+
IF NEW.created_at IS NULL THEN
248+
NEW.created_at = NOW();
249+
END IF;
250+
-- Siempre establecer updated_at a ahora en inserción
251+
NEW.updated_at = NOW();
252+
253+
-- Para actualizaciones (UPDATE)
254+
ELSIF TG_OP = 'UPDATE' THEN
255+
-- Nunca modificar created_at en actualizaciones
256+
-- Solo actualizar updated_at
257+
NEW.updated_at = NOW();
258+
END IF;
259+
260+
RETURN NEW;
261+
END;
262+
$$;
263+
264+
207265
--
208266
-- Name: msip_agregar_o_remplazar_familiar_inverso(); Type: FUNCTION; Schema: public; Owner: -
209267
--
@@ -2725,7 +2783,9 @@ CREATE TABLE public.course_usuario (
27252783
points integer NOT NULL,
27262784
guidespoints numeric,
27272785
amountscholarship numeric,
2728-
percentagecompleted numeric
2786+
percentagecompleted numeric,
2787+
created_at timestamp without time zone,
2788+
updated_at timestamp without time zone
27292789
);
27302790

27312791

@@ -2738,7 +2798,9 @@ CREATE TABLE public.guide_usuario (
27382798
actividadpf_id integer NOT NULL,
27392799
amountpaid integer NOT NULL,
27402800
profilescore integer NOT NULL,
2741-
points integer NOT NULL
2801+
points integer NOT NULL,
2802+
created_at timestamp without time zone,
2803+
updated_at timestamp without time zone
27422804
);
27432805

27442806

@@ -4753,6 +4815,38 @@ CREATE SEQUENCE public.ubitransactions_id_seq
47534815
ALTER SEQUENCE public.ubitransactions_id_seq OWNED BY public.ubitransactions.id;
47544816

47554817

4818+
--
4819+
-- Name: userevent; Type: TABLE; Schema: public; Owner: -
4820+
--
4821+
4822+
CREATE TABLE public.userevent (
4823+
id bigint NOT NULL,
4824+
usuario_id integer,
4825+
event_type character varying(30) NOT NULL,
4826+
event_data jsonb,
4827+
created_at timestamp without time zone NOT NULL
4828+
);
4829+
4830+
4831+
--
4832+
-- Name: userevent_id_seq; Type: SEQUENCE; Schema: public; Owner: -
4833+
--
4834+
4835+
CREATE SEQUENCE public.userevent_id_seq
4836+
START WITH 1
4837+
INCREMENT BY 1
4838+
NO MINVALUE
4839+
NO MAXVALUE
4840+
CACHE 1;
4841+
4842+
4843+
--
4844+
-- Name: userevent_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
4845+
--
4846+
4847+
ALTER SEQUENCE public.userevent_id_seq OWNED BY public.userevent.id;
4848+
4849+
47564850
--
47574851
-- Name: usuario_id_seq; Type: SEQUENCE; Schema: public; Owner: -
47584852
--
@@ -5351,6 +5445,13 @@ ALTER TABLE ONLY public.religion ALTER COLUMN id SET DEFAULT nextval('public.rel
53515445
ALTER TABLE ONLY public.ubitransactions ALTER COLUMN id SET DEFAULT nextval('public.ubitransactions_id_seq'::regclass);
53525446

53535447

5448+
--
5449+
-- Name: userevent id; Type: DEFAULT; Schema: public; Owner: -
5450+
--
5451+
5452+
ALTER TABLE ONLY public.userevent ALTER COLUMN id SET DEFAULT nextval('public.userevent_id_seq'::regclass);
5453+
5454+
53545455
--
53555456
-- Name: cor1440_gen_actividad_rangoedadac actividad_rangoedadac_pkey; Type: CONSTRAINT; Schema: public; Owner: -
53565457
--
@@ -6231,6 +6332,14 @@ ALTER TABLE ONLY public.ubitransactions
62316332
ADD CONSTRAINT ubitransactions_pkey PRIMARY KEY (id);
62326333

62336334

6335+
--
6336+
-- Name: userevent userevent_pkey; Type: CONSTRAINT; Schema: public; Owner: -
6337+
--
6338+
6339+
ALTER TABLE ONLY public.userevent
6340+
ADD CONSTRAINT userevent_pkey PRIMARY KEY (id);
6341+
6342+
62346343
--
62356344
-- Name: usuario usuario_nusuario_key; Type: CONSTRAINT; Schema: public; Owner: -
62366345
--
@@ -6604,6 +6713,20 @@ CREATE TRIGGER cor1440_gen_recalcular_tras_cambiar_asistencia AFTER INSERT OR DE
66046713
CREATE TRIGGER cor1440_gen_recalcular_tras_cambiar_persona AFTER UPDATE ON public.msip_persona FOR EACH ROW EXECUTE FUNCTION public.cor1440_gen_persona_cambiada();
66056714

66066715

6716+
--
6717+
-- Name: course_usuario course_usuario_timestamps_trigger; Type: TRIGGER; Schema: public; Owner: -
6718+
--
6719+
6720+
CREATE TRIGGER course_usuario_timestamps_trigger BEFORE INSERT OR UPDATE ON public.course_usuario FOR EACH ROW EXECUTE FUNCTION public.course_usuario_timestamps();
6721+
6722+
6723+
--
6724+
-- Name: guide_usuario guide_usuario_timestamps_trigger; Type: TRIGGER; Schema: public; Owner: -
6725+
--
6726+
6727+
CREATE TRIGGER guide_usuario_timestamps_trigger BEFORE INSERT OR UPDATE ON public.guide_usuario FOR EACH ROW EXECUTE FUNCTION public.guide_usuario_timestamps();
6728+
6729+
66076730
--
66086731
-- Name: msip_centropoblado msip_antes_de_eliminar_centropoblado; Type: TRIGGER; Schema: public; Owner: -
66096732
--

0 commit comments

Comments
 (0)