Search
Duplicate
Try Notion
🚧🚧

Universal Basic Income

Concept

The Universal Basic Income (UBI) module in the KIRA network is designed to incentivize non-sybil network participants, such as validators and governance members, through the distribution of a fixed amount of the native KEX token on a regular basis. This helps to ensure the long-term maintenance of network operations and enables these actors to perform their roles effectively. The UBI module uses spending pools to distribute the funds to eligible beneficiaries, who can then claim their allotted tokens. The supply of KEX tokens is inflated by a fixed amount at regular intervals, and these tokens are deposited into the designated spending pool(s) for distribution.
To prevent potential abuse or faults, a ubi-hard-cap is set in the network properties, limiting the maximum amount of additional KEX that can be created per year (6000000 KEX by default). Governance members are not allowed to create or modify UBI records in a way that would exceed this hard cap.

Dynamic mode

Similar to the spending pool, the UBI module provides two modes: dynamic and static, which use the dynamic field. In dynamic mode, the total amount distributed per period decreases by the amount left in the pool. In other words, if some users don't claim their UBI during a particular period, the unclaimed tokens are lost and redistributed in the next period. This is done to limit token inflation and ensure that users are actively claiming their tokens. If the dynamic parameter is set to false, the spending pool operates in static mode and distributes a fixed amount of tokens every time period. This way, users can be sure of the amount of tokens they will receive during each period, provided they still respect the target spending pool’s claim-expiry.

Parameters

NAME
TYPE
EXAMPLE
DESCRIPTION
name
string
KEX-UBI
The name of the UBI contract.
distribution_start
uint64
1643577600
Unix timestamp of the start of the distribution period.
distribution_end
uint64
1675113600
Unix timestamp of the end of the distribution period.
distribution_last
uint64
1651401600
Unix timestamp of the last distribution.
pool
string
"community"
The spending pool name where the exact amount of KEX should be deposited.
amount
uint64
1000
The amount of KEX tokens to be minted and distributed every period into pool.
period
uint64
86400
Time in seconds that must elapse since distribution_last for the funds to be distributed automatically into the pool.
dynamic
bool
true
A boolean field that defines if UBI is dynamic true or static false.

CLIs syntax & examples

Callout icon
Each CLI command and proposal process in KIRA requires specific permissions. These permissions must be added to the account's whitelist or obtained as sudo permissions for direct changes. Refer to the Roles & Permissions documentation for more details. $SIGNER represents the transaction signer's account name or address. For instructions on setting common flags as environment variables, such as $FLAGS_TX and $FLAGS_QR, see the CLI flags configuration section

Governance

Only whitelisted accounts with the necessary permissions 53 55 to create or remove UBI proposals or 54 56 to vote on them, are authorized to engage with the UBI module.

Transactions

N/A

Queries

List all existing UBI records

Bash
Copy
sekaid query ubi ubi-records $FLAGS_QR | jq
​

Query a specific UBI by its name

Bash
Copy
sekaid query ubi ubi-record-by-name $NAME $FLAGS_QR | jq
​