ModeDirectFixed
untyped stringValue
"direct_fixed"
ModeDirectCap
untyped stringValue
"direct_capped"
ModeFairSale
untyped stringValue
"fairsale"
maxPublicID
untyped bigint// T plus ten decimal digits: GRC20 MaxSymbolLen is 11.
Value
(9999999999 <untyped> bigint)
Metadata
typeMetadata is editable only by the original creator until frozen.
Value
v1.Metadata
createSpec
typecreateSpec is assembled within this realm: a foreign Gno realm cannot allocate a struct declared here, so the crossing interface uses scalars.
Value
v1.createSpec
Info
typeInfo excludes the private ledger capability and can be returned safely.
Value
v1.Info
entry
typeValue
v1.entry
nextID
v0.IDTokens live in an AVL tree: creating one touches its own entry and the path to it, whatever the number of tokens. A Go map, or a slice of their ids, would be rewritten whole on every creation. Ids are T1, T2, ... in creation order and no token is ever removed, so a page of the list is a range of ids.
Value
<zero>
entries
*v0.Tree// token id -> \*entry
- OID
- 0d3ee9…1dbf:5
entries details
requireIssuer
func() .uverse.address- OID
- 0d3ee9…1dbf:7
requireIssuer details
check
func(err .uverse.error)- OID
- 0d3ee9…1dbf:9
check details
caller
func() .uverse.address- OID
- 0d3ee9…1dbf:10
caller details
requireAddress
func(a .uverse.address)The ledger keys balances and allowances by the address text, so an address in any spelling but the one the chain gives a caller would hold something no caller can reach.
- OID
- 0d3ee9…1dbf:11
requireAddress details
validateMetadata
func(m v1.Metadata)- OID
- 0d3ee9…1dbf:12
validateMetadata details
protectedTicker
func(ticker string) boolThe founding names remain unavailable even if governance globally clears a config reservation. A creator-specific grant needs its own reviewed proof.
- OID
- 0d3ee9…1dbf:13
protectedTicker details
validateSpec
func(s v1.createSpec)- OID
- 0d3ee9…1dbf:14
validateSpec details
laneForMode
func(mode string) string- OID
- 0d3ee9…1dbf:15
laneForMode details
nextPublicID
func() (string, v0.ID)- OID
- 0d3ee9…1dbf:16
nextPublicID details
Create
func(creator .uverse.address, mode string, name string, ticker string, decimals int, initialSupply int64, maxSupply int64, currencyKey string, expectedVersion int64, description string, image string, website string, xHandle string, telegram string) stringCreate registers exactly one new GRC20 for a listed issuer, which must authenticate the creator, reserve the launch terms and collect payment before this crossing call. The currency key names the config action currency: creation-fee currency for a direct token, quote currency for a fair sale; the issuer binds it to the corresponding payment route. The public symbol T\<n> is distinct from the nonunique creator-selected ticker. The whole initial mint lands in the issuer's custody for atomic allocation and escrow setup, and the token stays bound to that issuer.
- OID
- 0d3ee9…1dbf:17
Create details
mustEntry
func(id string) *v1.entry- OID
- 0d3ee9…1dbf:18
mustEntry details
GetInfo
func(id string) v1.Info- OID
- 0d3ee9…1dbf:19
GetInfo details
Count
func() int64Count is the number of tokens created: ids are T1 to T\<Count>, none removed.
- OID
- 0d3ee9…1dbf:20
Count details
RegistryKeyOf
func(id string) string- OID
- 0d3ee9…1dbf:21
RegistryKeyOf details
BalanceOf
func(id string, owner .uverse.address) int64- OID
- 0d3ee9…1dbf:22
BalanceOf details
TotalSupply
func(id string) int64- OID
- 0d3ee9…1dbf:23
TotalSupply details
MintCapped
func(id string, authority .uverse.address, amount int64)MintCapped can only be reached through the issuer that created the token. That issuer authenticates the live caller as the current mint authority and must partition the newly minted balance into recorded allocations in this same transaction. The ledger independently rechecks the authority and the immutable cap, and takes no mint while the direct lane is closed: the pauser stops every issuer here, whatever each one checks by itself.
- OID
- 0d3ee9…1dbf:24
MintCapped details
Allowance
func(id string, owner .uverse.address, spender .uverse.address) int64- OID
- 0d3ee9…1dbf:25
Allowance details
Transfer
func(id string, to .uverse.address, amount int64)Standard wrappers operate only on the immediate caller's balance or allowance, accept no coins, and take an address only as the chain writes one. A realm can also move its own balance, or an allowance it holds, through the token in the registry, where the GRC20 library alone checks the receiver. A script an account runs is such a realm with the account's address, so these wrappers are an account's only way in only while the chain does not let that account submit scripts.
- OID
- 0d3ee9…1dbf:26
Transfer details
Approve
func(id string, spender .uverse.address, amount int64)- OID
- 0d3ee9…1dbf:27
Approve details
TransferFrom
func(id string, from .uverse.address, to .uverse.address, amount int64)- OID
- 0d3ee9…1dbf:28
TransferFrom details
Burn
func(id string, amount int64)- OID
- 0d3ee9…1dbf:29
Burn details
SetMetadata
func(id string, description string, image string, website string, xHandle string, telegram string)- OID
- 0d3ee9…1dbf:30
SetMetadata details
FreezeMetadata
func(id string)- OID
- 0d3ee9…1dbf:31
FreezeMetadata details
ProposeMintAuthority
func(id string, next .uverse.address)A capped token's authority moves only through its own two-step handoff. The issuer checks this live authority before each later mint.
- OID
- 0d3ee9…1dbf:32
ProposeMintAuthority details
CancelMintAuthority
func(id string)- OID
- 0d3ee9…1dbf:33
CancelMintAuthority details
AcceptMintAuthority
func(id string)- OID
- 0d3ee9…1dbf:34
AcceptMintAuthority details
RenounceMintAuthority
func(id string)- OID
- 0d3ee9…1dbf:35
RenounceMintAuthority details
Render
func(path string) string- OID
- 0d3ee9…1dbf:36
Render details
infoJSON
func(e *v1.entry) stringint64 amounts and versions are decimal strings so JSON clients cannot round a valid value above JavaScript's exact integer range.
- OID
- 0d3ee9…1dbf:37
infoJSON details
TokenJSON
func(id string) string- OID
- 0d3ee9…1dbf:39
TokenJSON details
ListTokensJSON
func(page int64, size int64) stringListTokensJSON returns a zero-based page; page size is strictly 1..100.
- OID
- 0d3ee9…1dbf:40