/
...
/
/
🚧
Universal Basic Income
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.

CLI 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

Table
Filter
Sort
Subcommand Path
CLI
DESCRIPTION
PERMISSIONS (VOTE/CREATION/SUDO)
Proposes a software upgrade to the Kira Network
Proposes to cancel a previously proposed software upgrade
Proposes to upsert a new token alias in the network
Proposes to upsert new token rates for a specific token pair
Proposes to change the whitelisted and blacklisted tokens on the network
Proposes to unjail a validator that has been jailed
Proposes to reset the ranking of all validators
Proposes to slash a validator for malicious behavior
Proposes to update the spending pool with new funds
Proposes to distribute funds from the spending pool to a specific address
Proposes to withdraw funds from the spending pool
Proposes to upsert a Universal Basic Income (UBI) for the network
Proposes to remove the UBI from the network
Proposes to reset the ranking of all councilors
Proposes to jail councilors for violating the network's rules
Proposes to whitelist an account's permission
Proposes to blacklist an account's permission
Proposes to remove a whitelisted permission from an account
Proposes to remove a blacklisted permission from an account
Proposes to assign a role to a specific account
Proposes to unassign a role from a specific account
Proposes to create a new role with specific permissions
Proposes to remove a role from the network
Proposes to blacklist a role's permission
Proposes to remove a whitelisted permission from a role
Proposes to whitelist a role's permission
Proposes to remove a blacklisted permission from a role
Proposes to set a specific network property
Proposes to upsert data to the network's data registry
Proposes to set poor network messages
Proposes to set the voting_end_time of specific proposal types
Proposes to create a new basket
Proposes to edit an existing basket
Proposes to withdraw surplus funds from a basket
Proposes to send a donation to a specific address
Proposes to update a collective account
Proposes to remove a collective account
Proposes to join a Dapp
Proposes to transition a Dapp to a new state
Proposes to upsert a new Dapp in the network

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
​
Table