Search Apps Documentation Source Content File Folder Download Copy Actions Download

vestoken package

Overview

Package vestoken is a fungible token where new supply is never handed out instantly — it ports the idea behind Solidity's VestingWallet / linear token-streaming contracts (e.g. Sablier) into a single gno.land realm.

MintVested opens a linear vesting grant instead of crediting a balance directly. The beneficiary calls Claim over time to pull whatever has unlocked so far into their liquid, transferable balance. State is package-level and persistent; state-mutating functions are crossing functions (`cur realm`) per the gno 0.9 interrealm convention.

Functions

BalanceOf

func BalanceOf(holder address) uint64

BalanceOf returns the liquid (claimed, transferable) balance of holder.

Param

Command

gnokey query vm/qeval -remote "https://rpc.test13.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken.BalanceOf()"

Result

Claim

func Claim(cur realm) uint64

Claim pulls whatever has unlocked so far from the caller's grant into their liquid balance, and returns how much was claimed. Crossing function.

Command

# 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/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken" -func "Claim" -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "test-13" -remote "https://rpc.test13.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.test13.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken" -func "Claim" -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test-13" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test13.testnets.gno.land" call.tx
  

GrantOf

func GrantOf(beneficiary address) (total uint64, claimed uint64, claimable uint64)

GrantOf returns the beneficiary's active grant, if any: total amount, amount claimed so far, and the amount currently claimable.

Param

Command

gnokey query vm/qeval -remote "https://rpc.test13.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken.GrantOf()"

Result

MintVested

func MintVested(cur realm, to address, amount uint64, durationBlocks int64)

MintVested opens a new linear vesting grant for `to`: `amount` tokens unlock block-by-block over the next `durationBlocks` blocks, starting now. A beneficiary may only hold one active grant at a time. Crossing function.

Params

Command

# 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/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken" -func "MintVested" -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "test-13" -remote "https://rpc.test13.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.test13.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken" -func "MintVested" -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 "test-13" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test13.testnets.gno.land" call.tx
  

Name

func Name() string

Name returns the token name.

Command

gnokey query vm/qeval -remote "https://rpc.test13.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken.Name()"

Result

Render

func Render(path string) string

Render produces the gnoweb Markdown view: metadata, active vesting grants, and liquid balances — both tables sorted by address for deterministic output. Render is NOT a crossing function.

Param

Command

gnokey query vm/qeval -remote "https://rpc.test13.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken.Render()"

Result

Symbol

func Symbol() string

Symbol returns the token symbol.

Command

gnokey query vm/qeval -remote "https://rpc.test13.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken.Symbol()"

Result

TotalSupply

func TotalSupply() uint64

TotalSupply returns every token ever minted, vesting or liquid.

Command

gnokey query vm/qeval -remote "https://rpc.test13.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken.TotalSupply()"

Result

Transfer

func Transfer(cur realm, to address, amount uint64)

Transfer moves `amount` of the caller's liquid (already-claimed) balance to `to`. Crossing function.

Params

Command

# 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/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken" -func "Transfer" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "test-13" -remote "https://rpc.test13.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.test13.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/vestoken" -func "Transfer" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test-13" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test13.testnets.gno.land" call.tx