CollectionName
untyped stringValue
"GnoBuilders Badges"
CollectionSymbol
untyped stringValue
"GNOBADGE"
MaxAdmins
untyped bigintValue
(10 <untyped> bigint)
Badge
typeValue
gnobuilders_badges_v2.Badge
badges
*avl.Tree// tokenID -> \*Badge
- OID
- 064918…0d48:54
badges details
ownerIndex
*avl.Tree// address -> comma-separated tokenIDs (secondary index)
- OID
- 064918…0d48:56
ownerIndex details
balances
*avl.Tree// address -> int (badge count)
- OID
- 064918…0d48:58
balances details
approvals
*avl.Tree// tokenID -> approved address
- OID
- 064918…0d48:60
approvals details
opApprove
*avl.Tree// "owner:operator" -> bool (approval for all)
- OID
- 064918…0d48:62
opApprove details
admins
*avl.Tree// address -> bool
- OID
- 064918…0d48:64
admins details
owner
.uverse.addressValue
<gnolang.StringValue>
totalMinted
uint64Value
0
paused
boolValue
false
init.13
func()- OID
- 064918…0d48:12
init.13 details
assertNotPaused
func()- OID
- 064918…0d48:14
assertNotPaused details
Pause
func()- OID
- 064918…0d48:15
Pause details
Unpause
func()- OID
- 064918…0d48:16
Unpause details
IsPaused
func() bool- OID
- 064918…0d48:17
IsPaused details
Name
func() string- OID
- 064918…0d48:18
Name details
Symbol
func() string- OID
- 064918…0d48:19
Symbol details
TotalSupply
func() uint64- OID
- 064918…0d48:20
TotalSupply details
BalanceOf
func(addr .uverse.address) uint64- OID
- 064918…0d48:21
BalanceOf details
OwnerOf
func(tokenID string) .uverse.address- OID
- 064918…0d48:22
OwnerOf details
TokenURI
func(tokenID string) string- OID
- 064918…0d48:23
TokenURI details
Approve
func(approved .uverse.address, tokenID string)- OID
- 064918…0d48:24
Approve details
SetApprovalForAll
func(operator .uverse.address, approved bool)- OID
- 064918…0d48:25
SetApprovalForAll details
IsApprovedForAll
func(ownerAddr .uverse.address, operator .uverse.address) bool- OID
- 064918…0d48:26
IsApprovedForAll details
GetApproved
func(tokenID string) .uverse.address- OID
- 064918…0d48:27
GetApproved details
TransferFrom
func(from .uverse.address, to .uverse.address, tokenID string)- OID
- 064918…0d48:28
TransferFrom details
MintQuestBadge
func(to .uverse.address, questID string, tokenURI string) stringMintQuestBadge mints a quest completion badge to a user. Token ID is "{address}:{questId}" to enforce one badge per quest per user. Quest badges are transferable by default.
- OID
- 064918…0d48:29
MintQuestBadge details
MintRankBadge
func(to .uverse.address, tier int, tokenURI string) stringMintRankBadge mints a soulbound rank badge to a user. Token ID is "{address}:rank:{tier}" to enforce one rank badge per tier per user. Rank badges are NON-transferable (soulbound).
- OID
- 064918…0d48:30
MintRankBadge details
UpdateTokenURI
func(tokenID string, newURI string)UpdateTokenURI allows an admin to update the metadata URI of a badge. This is critical because realm code is immutable once deployed — if badge metadata needs correction (e.g., broken IPFS CID), this is the only mechanism.
- OID
- 064918…0d48:31
UpdateTokenURI details
BurnBadge
func(tokenID string)BurnBadge permanently removes a badge. Admin-only for soulbound badges, owner or admin for transferable badges.
- OID
- 064918…0d48:32
BurnBadge details
AddAdmin
func(addr .uverse.address)- OID
- 064918…0d48:33
AddAdmin details
RemoveAdmin
func(addr .uverse.address)- OID
- 064918…0d48:34
RemoveAdmin details
TransferOwnership
func(newOwner .uverse.address)TransferOwnership transfers realm ownership. The old owner remains as admin (the new owner can call RemoveAdmin to revoke). This is intentional to prevent accidental lockout during multi-step ownership transfers.
- OID
- 064918…0d48:35
TransferOwnership details
IsAdmin
func(addr .uverse.address) bool- OID
- 064918…0d48:36
IsAdmin details
GetOwner
func() .uverse.address- OID
- 064918…0d48:37
GetOwner details
GetBadge
func(tokenID string) stringGetBadge returns badge info as a pipe-delimited string.
- OID
- 064918…0d48:38
GetBadge details
GetUserBadges
func(addr .uverse.address) stringGetUserBadges returns all badge token IDs for a user as comma-separated string. Uses the ownerIndex for O(1) lookup instead of full table scan.
- OID
- 064918…0d48:39
GetUserBadges details
GetUserBadgeDetails
func(addr .uverse.address) stringGetUserBadgeDetails returns full badge details for a user as a multi-line string. Each line: tokenID|owner|questID|tokenURI|soulbound|mintedAt This avoids N+1 queries from the frontend — one call returns all badge data.
- OID
- 064918…0d48:40
GetUserBadgeDetails details
Render
func(path string) string- OID
- 064918…0d48:41
Render details
renderHome
func() string- OID
- 064918…0d48:42
renderHome details
renderBadge
func(tokenID string) string- OID
- 064918…0d48:43
renderBadge details
renderUserBadges
func(addr string) string- OID
- 064918…0d48:44
renderUserBadges details
assertCallerIsAdmin
func()- OID
- 064918…0d48:45
assertCallerIsAdmin details
assertCallerIsOwner
func()- OID
- 064918…0d48:46
assertCallerIsOwner details
incBalance
func(addr .uverse.address)- OID
- 064918…0d48:47
incBalance details
decBalance
func(addr .uverse.address)- OID
- 064918…0d48:48
decBalance details
truncAddr
func(addr .uverse.address) string- OID
- 064918…0d48:49
truncAddr details
truncStr
func(s string, maxLen int) string- OID
- 064918…0d48:50
truncStr details
addToOwnerIndex
func(addr .uverse.address, tokenID string)- OID
- 064918…0d48:51
addToOwnerIndex details
containsChar
func(s string, ch int32) bool- OID
- 064918…0d48:52
containsChar details
removeFromOwnerIndex
func(addr .uverse.address, tokenID string)- OID
- 064918…0d48:53