A decentralized Universal Basic Income (UBI) system implemented as a smart contract, allowing for automated distribution of regular payments to verified participants. The protocol is built with governance features and safety mechanisms to ensure sustainable and secure operation.
-
Participant Management
- User registration system
- Verification process for eligible participants
- Tracking of claim history and participant status
-
UBI Distribution
- Automated periodic distributions
- Configurable distribution amounts
- Cooldown periods between claims
- Treasury management with minimum balance requirements
-
Governance System
- Proposal submission and voting mechanism
- Configurable protocol parameters
- Democratic decision-making process
- Time-bound voting periods
-
Safety Features
- Emergency pause/unpause functionality
- Treasury balance checks
- Owner-only administrative functions
- Value limits and validation checks
- Distribution Interval: 144 blocks (~1 day)
- Minimum Treasury Balance: 10,000,000 microSTX
- Maximum Proposal Value: 1,000,000,000,000 microSTX
100
: Owner-only operation101
: Already registered102
: Not registered103
: Ineligible for claim104
: Cooldown period active105
: Insufficient funds106
: Invalid amount107
: Unauthorized operation108
: Invalid proposal109
: Expired proposal110
: Invalid value
- Registration
(contract-call? .ubi-protocol register)
- Claiming UBI
(contract-call? .ubi-protocol claim-ubi)
- Contributing to Treasury
(contract-call? .ubi-protocol contribute)
- Submit Proposal
(contract-call? .ubi-protocol submit-proposal "distribution-amount" u1000000)
- Vote on Proposal
(contract-call? .ubi-protocol vote u1 true)
- Verify Participant
(contract-call? .ubi-protocol verify-participant 'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7)
- Emergency Controls
(contract-call? .ubi-protocol pause)
(contract-call? .ubi-protocol unpause)
The following parameters can be modified through governance proposals:
- Distribution amount
- Distribution interval
- Minimum treasury balance
get-participant-info
: Retrieve participant detailsget-treasury-balance
: Check current treasury balanceget-proposal
: View proposal detailsget-distribution-info
: Get current distribution parameters
- All monetary operations include balance checks and overflow protection
- Administrative functions are protected by owner-only access
- Participant verification prevents fraudulent claims
- Cooldown periods prevent abuse of the distribution system
- Emergency pause functionality for crisis management
- Participants must be verified before claiming UBI
- Claims are subject to cooldown periods
- Treasury must maintain minimum balance
- Governance proposals expire after 1440 blocks
- Contract can be paused in emergency situations
Contributions to improve the protocol are welcome. Please ensure all proposed changes:
- Include appropriate test coverage
- Maintain existing security measures
- Follow the established error handling patterns
- Include documentation updates
This protocol is released under the MIT License. See the LICENSE file for details.