Validator Management Contract
endrmng.sat
Actions
Add evm proxy account
Delete evm proxy account
Add whitelist (
proxyreg
orevmcaller
)Delete whitelist (
proxyreg
orevmcaller
)Staking, unstaking, changing staking, and claiming rewards on native chains and EVM
Validator claiming rewards
Batch allocation of validator rewards from rwddist.xsat
Quickstart
Table Information
TABLE globalid
globalid
scope
endrmng.sat
params
{uint64_t} staking_id
- the latest staking id
example
TABLE config
config
scope
endrmng.sat
params
{string} donation_account
- the account designated for receiving donations{binary_extension<uint16_t>} min_donate_rate
- minimum donation rate
example
TABLE whitelist
whitelist
scope proxyreg
or evmcaller
proxyreg
or evmcaller
params
{name} account
- whitelist account
example
TABLE evmproxies
evmproxies
scope
whitelist of type evmcaller
params
{uint64_t} id
- evm proxy id{checksum160} proxy
- evm proxy account
example
TABLE creditproxy
creditproxy
scope
the account whose scope is evmcaller in the whitelist
table
params
{uint64_t} id
- evm proxy id{checksum160} proxy
- evm proxy account
example
TABLE evmstakers
evmstakers
scope
endrmng.sat
params
{uint64_t} id
- evm staker id{checksum160} proxy
- proxy account{checksum160} staker
- staker account{name} validator
- validator account{asset} quantity
- total number of staking{asset} xsat_quantity
- the amount of XSAT tokens staked{asset} total_donated
- the total amount of XSAT that has been donated{uint64_t} stake_debt
- amount of requested stake debt{asset} staking_reward_unclaimed
- amount of stake unclaimed rewards{asset} staking_reward_claimed
- amount of stake claimed rewards{uint64_t} consensus_debt
- amount of requested consensus debt{asset} consensus_reward_unclaimed
- amount of consensus unclaimed rewards{asset} consensus_reward_claimed
- amount of consensus claimed rewards
example
TABLE stakers
stakers
scope
endrmng.sat
params
{uint64_t} id
- staker id{name} staker
- staker account{name} validator
- validator account{asset} quantity
- total number of staking{asset} xsat_quantity
- the amount of XSAT tokens staked{asset} total_donated
- the total amount of XSAT that has been donated{uint64_t} stake_debt
- amount of requested stake debt{asset} staking_reward_unclaimed
- amount of stake unclaimed rewards{asset} staking_reward_claimed
- amount of stake claimed rewards{uint64_t} consensus_debt
- amount of requested consensus debt{asset} consensus_reward_unclaimed
- amount of consensus unclaimed rewards{asset} consensus_reward_claimed
- amount of consensus claimed rewards
example
TABLE validators
validators
scope
endrmng.sat
params
{name} owner
- staker id{name} reward_recipient
- receiving account for receiving rewards{string} memo
- memo when receiving reward transfer{uint16_t} commission_rate
- commission ratio, decimal is 10^4{asset} quantity
- the amount of BTC staked by the validator{asset} qualification
- the qualification of the validator{asset} xsat_quantity
- the amount of XSAT tokens staked by the validator{uint16_t} donate_rate
- the donation rate, represented as a percentage, ex: 500 means 5.00%{asset} total_donated
- the total amount of XSAT that has been donated{uint128_t} stake_acc_per_share
- staking rewards earnings per share{uint128_t} consensus_acc_per_share
- consensus reward earnings per share{asset} staking_reward_unclaimed
- unclaimed staking rewards{asset} staking_reward_claimed
- amount of stake claimed rewards{asset} consensus_reward_unclaimed
- amount of consensus unclaimed rewards{asset} consensus_reward_claimed
- amount of consensus claimed rewards{asset} total_consensus_reward
- total consensus rewards{asset} consensus_reward_balance
- consensus reward balance{asset} total_staking_reward
- total staking rewards{asset} staking_reward_balance
- staking reward balance{time_point_sec} latest_staking_time
- latest staking or unstaking time{uint64_t} latest_reward_block
- latest reward block{time_point_sec} latest_reward_time
- latest reward time{bool} disabled_staking
- whether to disable staking{checksum160} stake_address
- stake address{checksum160} reward_address
- reward address{uint64_t} consecutive_vote_count
- consecutive vote count{uint64_t} latest_consensus_block
- latest consensus block{uint8_t} active_flag
- active flag{uint8_t} role
- role
example
TABLE stat
stat
scope
endrmng.sat
params
{asset} total_staking
- btc total staking amount{asset} xsat_total_staking
- the total amount of XSAT staked{asset} xsat_total_donated
- the cumulative amount of XSAT donated
example
ACTION setdonateacc
setdonateacc
authority: endrmng.sat
Update donation account.
params
{string} donation_account
- account to receive donations{uint16_t} min_donate_rate
- minimum donation rate
example
ACTION addwhitelist
addwhitelist
authority: endrmng.sat
Add whitelist account
params
{name} type
- whitelist type @seeWHITELIST_TYPES
{name} account
- whitelist account
example
ACTION delwhitelist
delwhitelist
authority: endrmng.sat
Delete whitelist account
params
{name} type
- whitelist type @seeWHITELIST_TYPES
{name} account
- whitelist account
example
ACTION addevmproxy
addevmproxy
authority: endrmng.sat
Add evm proxy account
params
{name} caller
- caller account{checksum160} proxy
- proxy account
example
ACTION delevmproxy
delevmproxy
authority: endrmng.sat
Delete evm proxy account
params
{name} caller
- caller account{checksum160} proxy
- proxy account
example
ACTION addcrdtproxy
addcrdtproxy
authority: endrmng.sat
Add credit proxy account
params
{checksum160} proxy
- proxy account
example
ACTION delcrdtproxy
delcrdtproxy
authority: endrmng.sat
Delete credit proxy account
params
{checksum160} proxy
- proxy account
example
ACTION setstatus
setstatus
authority: endrmng.sat
Set validator staking status
params
{name} validator
- validator account{bool} disabled_staking
- whether to disable staking
example
ACTION regvalidator
regvalidator
authority:
validator
Registering a validator
params
{name} validator
- validator account{name} financial_account
- financial accounts{uint16_t} commission_rate
- commission ratio, decimal is 10^4
example
ACTION proxyreg
proxyreg
authority:
proxy
Proxy account registration validator
params
{name} proxy
- proxy account{name} validator
- validator account{string} financial_account
- financial accounts{uint16_t} commission_rate
- commission ratio, decimal is 10^4
example
ACTION config
config
authority:
validator
Validator sets commission ratio and financial account
params
{name} validator
- validator account{optional<uint16_t>} commission_rate
- commission ratio, decimal is 10^4{optional<string>} financial_account
- financial accounts
example
ACTION setdonate
setdonate
authority:
validator
Configure donate rate.
params
{name} validator
- synchronizer account{uint16_t} donate_rate
- the donation rate, represented as a percentage, ex: 500 means 5.00%
example
ACTION stake
stake
authority:
staking.xsat
Staking BTC to validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- staking amount
example
ACTION unstake
unstake
authority:
staking.xsat
Unstaking BTC from a validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- cancel staking amount
example
ACTION newstake
newstake
authority:
staker
Staking BTC to a new validator
params
{name} staker
- staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- the amount of stake transferred to the new validator
example
ACTION claim
claim
authority:
staker
Claim staking rewards
params
{name} staker
- staker account{name} validator
- validator account
example
ACTION evmstake
evmstake
authority:
caller
Staking BTC to validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
ACTION evmunstake
evmunstake
authority:
caller
Unstake BTC from validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
ACTION evmnewstake
evmnewstake
authority:
caller
Staking BTC to a new validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- staking amount
example
ACTION evmclaim
evmclaim
authority:
caller
Claim staking rewards through evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account
example
ACTION evmclaim2
evmclaim2
authority:
caller
Claim staking rewards through evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{uint16_t} donate_rate
- the donation rate, represented as a percentage, ex: 500 means 5.00%
example
ACTION vdrclaim
vdrclaim
authority:
validator->reward_recipient
orevmutil.xsat
Validator Receive Rewards
params
{name} validator
- validator account
example
STRUCT reward_details_row
reward_details_row
params
{name} validator
- validator account{asset} staking_rewards
- staking rewards{asset} consensus_rewards
- consensus rewards
example
ACTION distribute
distribute
authority:
rwddist.xsat
Distributing validator rewards
params
{uint64_t} height
- validator account{vector<reward_details_row>} rewards
- validator account
example
ACTION stakexsat
stakexsat
authority:
xsatstk.xsat
Staking XSAT to validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- staking amount
example
ACTION unstakexsat
unstakexsat
authority:
xsatstk.xsat
Unstaking XSAT from a validator
params
{name} staker
- staker account{name} validator
- validator account{asset} quantity
- cancel staking amount
example
ACTION restakexsat
restakexsat
authority:
staker
Staking XSAT to a new validator
params
{name} staker
- staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- the amount of stake transferred to the new validator
example
ACTION evmstakexsat
evmstakexsat
authority:
caller
Staking XSAT to validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
ACTION evmunstkxsat
evmunstkxsat
authority:
caller
Unstake XSAT from validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount
example
ACTION evmrestkxsat
evmrestkxsat
authority:
caller
Staking XSAT to a new validator via evm
params
{name} caller
- caller account{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} old_validator
- old validator account{name} new_validator
- new validator account{asset} quantity
- staking amount
example
ACTION creditstake
creditstake
authority:
custody.xsat
Unstake BTC from validator via credit
params
{checksum160} proxy
- evm proxy account{checksum160} staker
- evm staker account{name} validator
- validator account{asset} quantity
- staking amount{checksum160} stake_address
- stake address{checksum160} reward_address
- reward address{uint64_t} consecutive_vote_count
- consecutive vote count{uint64_t} latest_consensus_block
- latest consensus block{uint8_t} active_flag
- active flag (0: inactive, 1: active, 2: credit staking validator){uint32_t} role
- role (0: BTC, 1: XSAT)
example
ACTION newregvldtor
newregvldtor
authority:
validator
Register a new validator with additional parameters
params
{name} validator
- validator account{uint32_t} role
- role (0: BTC, 1: XSAT){checksum160} stake_addr
- stake address{optional<checksum160>} reward_addr
- reward address{optional<uint16_t>} commission_rate
- commission ratio, decimal is 10^4
example
ACTION evmconfigvald
evmconfigvald
authority:
validator
Configure validator commission and donate rates
params
{name} validator
- validator account{optional<uint16_t>} commission_rate
- commission ratio, decimal is 10^4{optional<uint16_t>} donate_rate
- the donation rate, represented as a percentage
example
ACTION evmsetstaker
evmsetstaker
authority:
validator
Set validator stake address
params
{name} validator
- validator account{checksum160} stake_addr
- stake address
example
ACTION setrwdaddr
setrwdaddr
authority:
validator
Set validator reward address
params
{name} validator
- validator account{checksum160} reward_addr
- reward address
example
ACTION setstakebase
setstakebase
authority: endrmng.sat
Set base stake amounts for validators
params
{asset} xsat_base_stake
- XSAT base stake amount{asset} btc_base_stake
- BTC base stake amount
example
ACTION updcreditstk
updcreditstk
authority: endrmng.sat
Update credit staking settings
params
{bool} is_close
- whether to close credit staking
example
ACTION endorse
endorse
authority:
BLOCK_ENDORSE_CONTRACT
Endorse a validator for a specific block height
params
{name} validator
- validator account{uint64_t} height
- block height
example
ACTION setdepproxy
setdepproxy
authority: endrmng.sat
Set deposit proxy accounts
params
{checksum160} btc_deposit_proxy
- BTC deposit proxy{checksum160} xsat_deposit_proxy
- XSAT deposit proxy
example
Last updated