On-Chain Maker Creation
On Solana, the issuance of Hotspots requires that an approved maker be created on-chain. This happens in 3 steps:
- Creation of a maker in the onboarding server.
- Approval of the
MakerV0
on-chain. - Creation of the
MakerV0
on-chain.
First, you will need a working Solana wallet with the Solana CLI. Follow this guide https://docs.solanalabs.com/cli/wallets/file-system.
You will need to fund this wallet with Sol to create the maker.
Getting a Maker in the Onboarding Server
Contact the Helium Foundation to have an API key and maker public key created on the onboarding server. For the rest of this guide, the maker public key will be referred to as the Issuing Authority. This is the Solana public key that has the authority to create Hotspots for this maker.
Installing the Helium Admin CLI
The helium-admin-cli
is a very minimal command line interface for performing administrative
operations on the Solana blockchain. Its target is mainly developers and contains minimal help or
documentation. For this guide, you will only need to run one specific command which will be
documented here.
If you do not already have nodejs installed on your system, you will need to install it.
Then,
npm install -g @helium/helium-admin-cli
You will be using the create-maker
command with the following args:
-k, --wallet Anchor wallet keypair
[default: "/Users/noahprince/.config/solana/id.json"]
-u, --url The solana url [default: "http://127.0.0.1:8899"]
-n, --name The name of the maker [string] [required]
--issuingAuthority Key that can issue hotspots on behalf of this maker
[string] [required]
--updateAuthority Key that can update the maker's issuing authority
[string] [required]
--metadataUrl URL to metadata for this maker. Should be JSON with at
least { name, image, description } [string] [required]
-c, --makerCount Estimated number of hotspots this maker will have
[number] [required]
Onboarding yourself as a maker will require paying for a merkle tree to store the Hotspot NFTs
created under your maker account. You should use the flag -c
to estimate the count of Hotspots you
plan to eventually onboard. If this limit is reached, your maker wallet will be charged an equal
amount of sol to create another tree.
The --metadataUrl
flag should be used to set the collection metadata for your maker. Every Hotspot
issued is an NFT, and it will belong to an NFT collection defined by the JSON at this URL. Ideally,
it should have the following fields:
name
- The name of the makerdescription
- A short description of the makerimage
- A recognizable image for the maker, likely a logo.
To create the maker:
helium-admin create-maker -u <your-rpc-url> \
-k path/to/your/solana/wallet.json \
-n <your maker name> \
--issuingAuthority <your issuing authority> \
--updateAuthority <the pubkey you will use as an admin for this maker> \
-c <your estimated hotspot count> \
--metadataUrl <your-metadata-url>
You should see some output like:
Creating maker with address: 4nUkTv8wcE6taMwPthp1HoDgiykkTdmceArj1u1xsLTY
Issuing Authority: devXCnFPU71StPEFNnGRf4iqXoRpYkNsGEg9m757ktP.
Capacity: 2^5, buffer: 8, canopy: 2.
Space: 2072 bytes
Cost: ~0.0153 Sol
txid 29mCMni21nmbsqyw7Z5rnLp2u3URWKB4xF8dzN2fAWK7V8xZYrm33KbujasEwbVkvRxzUEeSVVCgyEwtSvF92gFz
Latency 29mCMni21nmbsqyw7Z5rnLp2u3URWKB4xF8dzN2fAWK7V8xZYrm33KbujasEwbVkvRxzUEeSVVCgyEwtSvF92gFz 0.6640000343322754
Total sol needed: 0.0153
txid xByfLKdF2J5W9XZaU3dKjRePw3D5pewiHBz2jNUwJMBMFemxPix57zof99Hb9MXzssieiALbhSpGV1a5VSWpRNa
Latency xByfLKdF2J5W9XZaU3dKjRePw3D5pewiHBz2jNUwJMBMFemxPix57zof99Hb9MXzssieiALbhSpGV1a5VSWpRNa 0.7189998626708984
MOBILE Maker
Mobile makers are required to stake 50m MOBILE. To do this, transfer 50m MOBILE tokens to the maker
address listed above when creating the maker (the text after Creating maker with address:
).
Maker Approval
Once your maker has been created on-chain, and all other maker requirements have been fulfilled, the
Helium Foundation multisig will need to approve the maker. Please contact the Helium Foundation and
provide the exact name you used with the -n
flag.