ConstantsJSON
ConstantsJSON returns the fixed policy: durations in seconds, roster bounds.
Command
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.ConstantsJSON()"
Result
Package memba_gov is the Memba DAO governance core. It holds the roster, proposals and votes, and grants nothing by itself: a governed realm asks for an approval by crossing-calling Consume before a privileged step, and the core checks that the caller is exactly the realm the proposal names, with exactly the arguments members voted on. The core never calls another realm.
Rules (design note GOV-1, approved 2026-10-06):
ConstantsJSON returns the fixed policy: durations in seconds, roster bounds.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.ConstantsJSON()"
Consume is crossing-called by a governed realm right before the step a proposal approved. It panics unless the caller is exactly the proposal's target, the action, arguments and scope are the voted ones byte for byte, the class is at least minClass, the proposal is ready, and executor, the account that called the target directly, is a seated member. It marks the proposal used and invalidates the other open proposals of (target, scope).
# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Consume" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "https://rpc.gno.land" ADDRESSgnokey query -remote "https://rpc.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Consume" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.gno.land" call.tx
Execute runs a ready roster action of this realm. The roster it was checked against at Propose is unchanged: any change would have invalidated it.
# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Execute" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "https://rpc.gno.land" ADDRESSgnokey query -remote "https://rpc.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Execute" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.gno.land" call.tx
IsMember reports whether addr is a seated member's current key.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.IsMember()"
Join seats the caller's invitation: a new person, or a recovered key.
# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Join" -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "https://rpc.gno.land" ADDRESSgnokey query -remote "https://rpc.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Join" -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.gno.land" call.tx
PersonOf returns the id of the seated member whose current key is addr, or "". The id survives a key recovery.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.PersonOf()"
ProposalJSON returns one proposal with its ballots and current status, or null for an unknown id.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.ProposalJSON()"
ProposalsJSON lists up to limit proposals (at most MaxListed) with ids below before, newest first; before = 0 starts from the newest.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.ProposalsJSON(,)"
Propose files one action. target is the realm that will consume it, or this realm for a roster action; scope is the invalidation key that realm computes for the action; class is at least the class it requires.
# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Propose" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "https://rpc.gno.land" ADDRESSgnokey query -remote "https://rpc.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Propose" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.gno.land" call.tx
Render shows the roster and the latest proposals. Each proposal's line holds only fields the realm sets (id, status, class, proposer id); every value a proposer wrote follows as its own labelled, escaped item, so none can forge a field.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.Render()"
RosterJSON lists seated members and open invitations.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/samcrew/memba_gov.RosterJSON()"
Vote records yes, no or abstain until the voting deadline. After it, a YES can still be withdrawn while the proposal is not executed or expired, so members can stop an approval they no longer back.
# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Vote" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "https://rpc.gno.land" ADDRESSgnokey query -remote "https://rpc.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/samcrew/memba_gov" -func "Vote" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.gno.land" call.tx