Detailed documentation of all TrueRepublic blockchain modules.
Creates a new governance domain with initial treasury.
| Field | Type | Description |
|---|---|---|
name |
string | Unique domain name |
admin |
AccAddress | Initial admin address |
initial_coins |
Coins | Initial treasury funding |
Cost: fee * CDom * CEarn = fee * 2000 (eq.1)
Submits an issue with a suggestion for evaluation.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Submitter address |
domain_name |
string | Target domain |
issue_name |
string | Issue title |
suggestion_name |
string | Suggestion title |
creator |
AccAddress | Creator address |
fee |
Coins | PayToPut fee |
external_link |
string | Optional URL |
Cost: PayToPut fee = min(reward * 15, reward * members) (eq.3)
Registers as a PoD validator.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Operator address |
operator_addr |
AccAddress | Validator operator |
pub_key |
string | Ed25519 public key (hex) |
stake |
Coins | Stake amount (min 100,000 PNYX) |
domain_name |
string | Domain membership |
Withdraws staked PNYX (capped at 10% of domain payouts).
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Operator address |
operator_addr |
AccAddress | Validator operator |
amount |
Coins | Amount to withdraw |
Removes a validator from the set.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Operator address |
operator_addr |
AccAddress | Validator to remove |
Unjails a validator after the jail period expires.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Operator address |
operator_addr |
AccAddress | Validator to unjail |
Registers a domain key pair for anonymous voting (WP S4).
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Member address |
domain_name |
string | Domain name |
member_addr |
AccAddress | Member address |
domain_pub_key |
string | Domain Ed25519 public key (hex) |
Purges the permission register (admin only).
| Field | Type | Description |
|---|---|---|
caller |
AccAddress | Admin address |
domain_name |
string | Domain name |
Places a stone on an issue (earns VoteToEarn reward).
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Voter address |
domain_name |
string | Domain name |
issue_name |
string | Issue name |
member_addr |
AccAddress | Member placing stone |
Places a stone on a suggestion with systemic consensing.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Voter address |
domain_name |
string | Domain name |
issue_name |
string | Issue name |
suggestion_name |
string | Suggestion name |
member_addr |
AccAddress | Member placing stone |
Places a stone on a member for admin election.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Voter address |
domain_name |
string | Domain name |
target_member |
AccAddress | Target member |
voter_addr |
AccAddress | Voter address |
Votes to exclude a member (requires 2/3 majority).
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Voter address |
domain_name |
string | Domain name |
target_member |
AccAddress | Member to exclude |
voter_addr |
AccAddress | Voter address |
Votes to fast-delete a suggestion (requires 2/3 majority).
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Voter address |
domain_name |
string | Domain name |
issue_name |
string | Issue name |
suggestion_name |
string | Suggestion name |
member_addr |
AccAddress | Voter address |
Creates a new PNYX/asset liquidity pool.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Pool creator |
asset_denom |
string | Asset denomination |
pnyx_amt |
Int | PNYX amount |
asset_amt |
Int | Asset amount |
Initial shares = sqrt(pnyx_amt * asset_amt)
Swaps tokens via the AMM (0.3% fee, 1% PNYX burn).
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | Trader address |
input_denom |
string | Input token denom |
input_amt |
Int | Input amount |
output_denom |
string | Output token denom |
Output formula: (outReserve * input * 9970) / (inReserve * 10000 + input * 9970)
Adds liquidity and receives LP shares.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | LP provider |
asset_denom |
string | Pool asset denom |
pnyx_amt |
Int | PNYX to add |
asset_amt |
Int | Asset to add |
Removes liquidity by burning LP shares.
| Field | Type | Description |
|---|---|---|
sender |
AccAddress | LP provider |
asset_denom |
string | Pool asset denom |
shares |
Int | Shares to burn |
| Equation | Function | Formula |
|---|---|---|
| eq.1 | CalcDomainCost(fee) |
fee * CDom * CEarn (= fee * 2000) |
| eq.2 | CalcReward(treasure) |
treasure / CEarn (= treasure / 1000) |
| eq.3 | CalcPutPrice(treasure, n) |
min(reward * CPut, reward * n) |
| eq.4 | CalcDomainInterest(...) |
treasure * 0.25 * T * decay |
| eq.5 | CalcNodeReward(...) |
stake * 0.10 * T * decay |
Where decay = 1 - canonicalBankSupply / 21,000,000. Validator and domain
inflation is minted through the cap-checked token.IssuanceService into module
escrow before matching claims commit.
| Constant | Value | Description |
|---|---|---|
CDom |
2 | Domain creation multiplier |
CPut |
15 | Put price cap |
CEarn |
1000 | Reward divisor |
StakeMin |
100,000 | Minimum validator stake |
SupplyMax |
21,000,000 | Maximum PNYX supply |
ApyDom |
0.25 | 25% domain interest APY |
ApyNode |
0.10 | 10% staking reward APY |
SecondsPerYear |
31,557,600 | 365.25 days |