Package tardigrades is a single-collection GRC721 NFT minter realm.
Minting is public and free — anyone can call Mint, no allowlist, no payment. Metadata is predetermined: the owner curates an ordered queue of preset tokens (AddPresetToken), and Mint just hands out the next unclaimed one — the caller supplies no metadata and cannot influence or later change what they receive (metadata-editing functions are collection-owner-only, not token-owner). Metadata is stored fully on-chain per token, following the OpenSea metadata standard.
The realm's public functions deliberately mirror the standard GRC721 shape (Mint/OwnerOf/TokenURI/SafeTransferFrom/BalanceOf/...) so that tooling built against any GRC721 collection — a marketplace, an explorer/observer — can interact with this one without special-casing it. See gno.land/p/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/grc721 for the underlying token implementation.
AddPresetToken queues one predetermined token's metadata for a future Mint call to hand out, in the order added. Owner-only — this is the only way preset metadata enters the collection; nothing else can influence what an eventual Mint call produces.
attributesCSV packs an arbitrary number of traits into one primitive string argument — see parseAttributesCSV for the format. Required for this to stay callable via a real gnokey/MsgCall transaction: a \[]Trait parameter isn't an option (see Mint's doc comment on why struct/slice arguments make a function uncallable from a real transaction).
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "AddPresetToken" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "AddPresetToken" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
AddTokenAttribute
func AddTokenAttribute(cur realm, tid grc721.TokenID, traitType, value, displayType string)
AddTokenAttribute appends one trait to a token's on-chain metadata. Owner-only (see tokenOwnerAsCaller).
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "AddTokenAttribute" -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "AddTokenAttribute" -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
Approve
func Approve(cur realm, to address, tid grc721.TokenID)
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "Approve" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "Approve" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
Burn destroys a token. Caller must be its current owner.
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "Burn" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "Burn" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
ClearPresetQueue
func ClearPresetQueue(cur realm)
ClearPresetQueue discards every not-yet-minted preset, resetting the queue to empty. Owner-only. Already-minted tokens are unaffected — this only touches what Mint would hand out next.
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "ClearPresetQueue" -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "ClearPresetQueue" -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
ClearTokenAttributes
func ClearTokenAttributes(cur realm, tid grc721.TokenID)
ClearTokenAttributes removes all traits from a token's on-chain metadata. Owner-only (see tokenOwnerAsCaller).
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "ClearTokenAttributes" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "ClearTokenAttributes" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
CollectionSummary
func CollectionSummary() string
CollectionSummary returns one TokenSummary line per currently-existing token (burned tokens are silently skipped), newline-separated, in mint order.
Getter returns a reader-only view of the collection, safe to register with cross-realm aggregators (marketplace, observer) without risking a captured cur.
Mint creates a new token owned by \`to\`, assigns it the next not-yet-claimed preset in the queue (see AddPresetToken), and returns its token ID. Public — anyone can call this, no authorization check, no payment. Panics if the preset queue is empty — queue more with AddPresetToken first.
Deliberately takes no metadata of any kind from the caller: the point of the preset queue is that whoever ends up minting a token can't choose or influence what it looks like.
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "Mint" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "Mint" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
PresetQueueLength reports how many not-yet-minted preset tokens are queued up — i.e. how many more times Mint can succeed before it needs AddPresetToken to be called again.
# 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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "SetApprovalForAll" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "SetApprovalForAll" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
SetTokenMetadata
func SetTokenMetadata(cur realm, tid grc721.TokenID, metadata grc721.Metadata)
SetTokenMetadata overwrites a token's on-chain metadata wholesale. Owner-only (see tokenOwnerAsCaller) — not callable by whoever holds the token. Takes the full grc721.Metadata struct, so — unlike UpdateTokenMetadata below — it can only be invoked programmatically (e.g. from another realm), not via a plain gnokey/MsgCall transaction; see Mint's doc comment.
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "SetTokenMetadata" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "SetTokenMetadata" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
SetTokenURI
func SetTokenURI(cur realm, tid grc721.TokenID, uri string)
SetTokenURI sets an (optional) off-chain pointer alongside the on-chain metadata. Owner-only (see tokenOwnerAsCaller).
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "SetTokenURI" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "SetTokenURI" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
TokenSummary returns tid, its current owner, and its metadata's name/description/image/externalURL/attributes as one line: fields separated by "|", each value (other than the plain tokenID/owner) base64-encoded. Base64 rather than plain text specifically so a description or name containing "|", a newline, or anything else can never be mistaken for a field boundary — a plain-text delimited format would be one user-supplied "|" away from corrupting whatever parses it. Meant for simple off-chain UIs (this project's own web/ console) to build a gallery view without decoding Gno's own struct value syntax.
func TransferFrom(cur realm, from, to address, tid grc721.TokenID)
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "TransferFrom" -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "TransferFrom" -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
UpdateTokenMetadata
func UpdateTokenMetadata(cur realm, tid grc721.TokenID, name, description, image, externalURL string)
UpdateTokenMetadata rewrites the name/description/image/externalURL fields of a token's on-chain metadata, preserving its Attributes and other fields. Owner-only (see tokenOwnerAsCaller).
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/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "UpdateTokenMetadata" -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast -chainid "gnoland1" -remote "https://rpc.betanet.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.betanet.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1w93f099t4pp9jamyghp88p60fvkg39dxz2qzrc/tardigrades" -func "UpdateTokenMetadata" -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.betanet.testnets.gno.land" call.tx
WalletSummary
func WalletSummary(owner address) string
WalletSummary is CollectionSummary filtered to tokens currently owned by owner.