PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/r/g17khqpukees4237dtn3astzapmp462vjhsz6st4/settlers/nft

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
nft
Namespace
g17khqpukees4237dtn3astzapmp462vjhsz6st4 / settlers
Files
6 (README)(gnomod.toml)
Exported functions
27
Module
gno.land/r/g17khqpukees4237dtn3astzapmp462vjhsz6st4/settlers/nft
gno
0.9

Files (6)

  • README.mdmarkdown
  • gnomod.tomltoml
  • grc721.gnogno
  • metadata.gnogno
  • nft.gnogno
  • render.gnogno
README.mdPreviewRaw
# Gno.land Settlers

Settlers are small pixel-art gnomes, and each one belongs to a single Gno.land account, forever. A Settler
can't be sold, traded, or given to anyone else. Once it's yours, it stays yours.

## Why they exist

Settlers are a thank-you to the people who were part of Gno.land from the very beginning. Anyone whose
account already held at least 15 GNOT when the `gnoland-1` chain launched can claim one Settler. It's a
simple, permanent way of saying "this account was here at the start."

## No two are alike

Nobody picks how their Settler looks. Its skin tone, hat, beard, clothes, glasses and background are all
worked out automatically from the account that claims it and the moment it's claimed, and the collection
makes sure the same combination is never drawn twice. So every Settler is one of a kind, and it's a little
surprise to see which one you get.

## One per account

Each eligible account can claim exactly one Settler, on a first-come, first-served basis, until all of them
are gone (there are 3,000 in total). There's no cost beyond the usual cost of sending a transaction.

## How to get one

If your account was eligible, you can claim your Settler from the mint page at
[jeronimoalbi.github.io/gnoland-settlers](https://jeronimoalbi.github.io/gnoland-settlers/). Once claimed, you
can look up any Settler, and see who it belongs to, right here in this realm.

The mint page is also the quickest way to get the proof for the
[`Mint`](/r/g17khqpukees4237dtn3astzapmp462vjhsz6st4/settlers/nft$help&func=Mint) call, type your address there and it shows both the proof
and the exact `gnokey` command, ready to copy.

## A friendly word of caution

This project is made by one person, for fun. It has not been audited by anyone. Everything here is open source,
so please have a look yourself, or ask someone you trust to, before connecting a wallet or signing anything.
Nobody involved in this project is responsible for what happens to your account or your funds; using it is
entirely your own choice and your own responsibility.

## Minting without the web page

If you'd rather not use the mint page at all, or just want to see everything for yourself first, you can do
the whole thing by hand with a terminal. Nothing here needs trusting a website: the list of eligible accounts
and your proof are both worked out from the public genesis of `gnoland-1`, and you can check every step
following the instructions you can find in [jeronimoalbi/gnoland-settlers](https://github.com/jeronimoalbi/gnoland-settlers)
repository.

## See your Settler as a picture

Once you have your Settler, a separate [avatar realm](/r/g17khqpukees4237dtn3astzapmp462vjhsz6st4/settlers/avatar) can draw it as a picture
whenever it's asked to, so you, or any other realm or web app, can show it next to your address, as profile
picture, in forum post, a leaderboard row, wherever you like.

Functions

  • Admin() string

  • Approve(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, to string, tid string)

  • BalanceOf(owner string) (int64, interface {Error func() string})

  • Cap() int

  • ClearNotice(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string})

  • ExternalURL(tid string) string

  • GetApproved(tid string) (string, interface {Error func() string})

  • GetName() string

  • GetSymbol() string

  • ID() string

  • IsApprovedForAll(owner string, operator string) bool

  • MerkleRoot() string

  • Mint(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, proof string) string

  • OwnerOf(tid string) (string, interface {Error func() string})

  • Render(path string) string

  • SetApprovalForAll(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, operator string, approved bool)

  • SetNotice(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, alertType string, msg string)

  • SetSnapshot(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, rootHex string, count int)

  • Token() interface {Approve func(int, .uverse.realm, .uverse.address, gno.land/p/nt/grc721/v0.TokenID) .uverse.error; BalanceOf func(.uverse.address) (int64, .uverse.error); GetApproved func(gno.land/p/nt/grc721/v0.TokenID) (.uverse.address, .uverse.error); GetName func() string; GetSymbol func() string; ID func() string; IsApprovedForAll func(.uverse.address, .uverse.address) bool; OwnerOf func(gno.land/p/nt/grc721/v0.TokenID) (.uverse.address, .uverse.error); SetApprovalForAll func(int, .uverse.realm, .uverse.address, bool) .uverse.error; TotalSupply func() int64; TransferFrom func(int, .uverse.realm, .uverse.address, .uverse.address, gno.land/p/nt/grc721/v0.TokenID) .uverse.error}

  • TokenMetadata(tid string) (string, interface {Error func() string})

  • TokenOf(addr string) string

  • TokenURI(tid string) (string, interface {Error func() string})

  • Total() int

  • TotalSupply() int64

  • TraitsOf(tid string) (struct{Skin uint8; Hat uint8; BeardColor uint8; Tunic uint8; Background uint8; HatShape uint8; Flip uint8; Glasses uint8; Beard uint8}, interface {Error func() string})

  • TransferAdmin(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, newAdmin string)

  • TransferFrom(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, from string, to string, tid string)

Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.

Rendered

RenderedRawgnoweb ↗

vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.