Skip to main content

Contract Info

PropertyValue
AddressPer-token (check token’s community page on kas.fun)
NetworkKasplex (see Addresses for chain details)
Each graduated token has its own Council contract address. The address is not global — query it from the token’s community page.

Election Functions

startElection

Start a council election. Requires platform EIP-712 signature.

voteElection

Vote for candidates. Tokens are locked until the election ends.
ElectionVoteEntry:
FieldTypeDescription
candidateaddressCandidate address
amountuint256Token amount to allocate (wei)

claimElectionTokens

Claim locked tokens after election ends. First caller triggers finalization.

Election Read Functions

getElectionState

Returns:
FieldTypeDescription
activeboolElection is running
endTimeuint256End timestamp (unix seconds)
lastElectionEnduint256Previous election end time
finalizedboolResults have been finalized
councilSizeuint256Number of seats
epochuint256Election epoch counter

getCouncilMembers


isCouncilMember


getTop20Candidates

Returns candidates sorted by votes descending. Empty entries padded with address(0).

getCandidateVotes


Governance Functions

startGovernance

Start a governance round. Only callable by contract owner/manager.

createProposal

Create a proposal. Requires platform EIP-712 signature.
ParameterTypeDescription
tokenaddressToken address
noncebytes32Unique nonce
signaturebytesPlatform signature
optionCodesuint256[]Option identifiers
endTimeuint256Voting end timestamp
proposalTypeuint80 = General, 1 = Tax

voteProposal

Vote on a proposal by locking tokens.
VoteEntry:
FieldTypeDescription
targetaddressaddress(0) for general proposals
optionIndexuint8Option index to vote for
amountuint256Token amount to allocate (wei)

finalizeProposal

Finalize a proposal after voting ends.

claimProposalTokens

Claim locked tokens after proposal ends. First caller triggers finalization.

Governance Read Functions

getCouncilState

Returns:
FieldTypeDescription
currentProposalIduint256Latest proposal ID
treasuryBalanceuint256Treasury balance (wei)
governancePhaseuint80 = Idle, 1 = Proposal, 2 = Voting
proposalPhaseEnduint256Proposal phase end timestamp
votingPhaseEnduint256Voting phase end timestamp
roundFirstProposalIduint256First proposal ID in current round

getProposal

Returns:
FieldTypeDescription
startTimeuint256Start timestamp
endTimeuint256End timestamp
finalizedboolWhether finalized
executedboolWhether executed
proposalTypeuint80 = General, 1 = Tax
noncebytes32Unique nonce
optionCountuint256Number of options
winningOptionuint256Winning option index
optionCodesuint256[]Option code identifiers

getProposalOptionVotes

Returns vote counts per option (array index = option index).

getVoterOptionVotes

Returns a voter’s allocated tokens per option.

getVoterLockedAmount

Returns total tokens locked by a voter in a proposal. Claimable after proposal ends.

Tax Functions

setTaxConfig

Only callable by owner/manager. Purpose: 0=None, 1=Burn, 2=Transfer, 3=CouncilTreasury.

getTaxConfig

Returns:
FieldTypeDescription
rateuint256Tax rate (basis points)
purposeuint80=None, 1=Burn, 2=Transfer, 3=Treasury
targetaddressTax recipient address

isTaxExempt


Events

Election Events

Proposal Events

Full ABI (JSON)