Skip to main content

Solana Introduction

This page has not been fully updated to represent the latest state of the Helium Network following the migration to Solana on April 18, 2023.

Major Milestones

  • Available on Solana devnet for testing [Complete]
  • sec3 Smart Contract Audit [Complete]
  • Mainnet Launch [Complete]

Migration Process Steps

The migration to Solana took place on April 18, 2023, beginning at 9am PST. The team held a 48-hour window to complete the migration. Hotspots and LoRaWAN devices continued to operate throughout the migration window.

  1. The Helium blockchain officially halted.
  2. A snapshot was taken of Helium chain state.
  3. Existing $HNT and $MOBILE were mapped to Solana. Hotspots were minted as NFTs.
  4. During the Migration, PoC and Data Transfer continued to function through the off-chain Oracle, rewards were claimable after the transition phase (estimated 24-48 hours) was complete.
  5. Users and Exchanges can access their assets using the same private key on Solana (Solana and Helium blockchain use the same ed25519 encryption algorithm.)
  6. Programmatic Treasury was activated in 2023 Q2, users will be able to convert $MOBILE and $IOT into $HNT on chain at that time.

Migration Guides

As part of the Helium blockchain migration to Solana, there are some changes to existing Helium Wallets and Applications for users to be aware of.

Complete migration guides have been written for different users of Helium.

Hotspot NFTs and Token Management

The Helium Network move to the Solana blockchain will result in all Hotspots automatically becoming Solana NFTs which, along with the Helium Network Tokens (HNT, IOT, and MOBILE), can be viewed in the Helium Wallet app.


Helium Programs on Solana

The code for all of these Programs is open source, and available in the helium-program-library repository on Github.

Program Audits

The Helium Programs have been audited by sec3. The audit report was published March 20, 2023. The audit report is available from sec3 on their GitHub reports repo.

circuit_breaker

  • Program ID: circAbx64bbsscPbQzZAUvuXpHqrCe6fLMzc2uKXz9g
  • Generic program wrapping sensitive mint authorities and token accounts in the Helium system to prevent large movements in the case of an exploit or bug.

data_credits

  • Program ID: credMBJhYFzfn7NxBMdU4aUqFggAjgztaCcv2Fo6fPT
  • Manages the purchase, delegation, and burning of data credits.

helium_entity_manager

  • Program ID: hemjuPXBpNvggtaUnN1MwT3wrdhttKEfosTcc2P9Pg8
  • Handles the issuance of NFTs representing entities that are rewardable on the Helium network, such as Hotspots and mappers.

helium_sub_daos

  • Program ID: hdaoVTCqhfHHo75XdAMxBKdUqvq1i5bF23sisBqVgGR
  • Manages the DAO/subnetwork structure proposed in HIP-51, including the minting of tokens to subnetworks, HST holders, and the lazy_distributor for PoC earnings.

lazy_distributor

  • Program ID: 1azyuavdMyvsivtNxPoz6SucD18eDHeXzFCUPq5XU7w
  • Allows off-chain Oracles to distribute PoC rewards to rewardable assets (such as Hotspots) that are represented as NFTs.

lazy_transactions

  • Program ID: 1atrmQs3eq1N2FEYWu6tyTXbCjP4uQwExpjtnhXtS8h
  • Used in the initial migration to Solana, this program allows compressing many transactions into a merkle root to be executed lazily. This guarantees all transactions are executed exactly once.

treasury_management

  • Program ID: treaf4wWBBty3fHdyBpo35Mz84M8k3heKXmjmi9vFt5
  • Manages the treasury of each subnetwork as proposed in HIP-51, allowing DNT tokens to be swapped for HNT according to a formula.

voter_stake_registry

  • Program ID: hvsrNC3NKbcryqDs2DocYHZ9yPKEVzdSjQG6RVtK1s8
  • Handles voting power via veHNT in Helium Governance.

Packages (JS/Typescript)

NameDescription
@helium/circuit-breaker-sdkSDK to circuit breaker program
@helium/data-credits-sdkSDK to the data credits program
@helium/distributor-oracleSDK for interacting with the lazy-distributor oracles to claim rewards
@helium/helium-entity-manager-sdkSDK to the Helium entity manager program
@helium/helium-sub-daos-sdkSDK to Helium sub daos program
@helium/idlsIDLs containing the typescript definitions for the raw anchor SDKs of our programs
@helium/lazy-distributor-sdkSDK to the lazy distributor program
@helium/lazy-transactions-sdkSDK to lazy transactions program
@helium/spl-utilsGeneral utils for interacting with Solana, tokens, etc
@helium/treasury-management-sdkSDK to the treasury management program
@helium/voter-stake-registry-sdkSDK to the voter stake registry program

All the tokens are on the TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA Program.

The mint IDs are as follows:

NameID
HNThntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux
MOBILEmb1eu7TzEc71KxDpsmsKoucSSuuoGLv1drys1oP2jh6
IOTiotEVVZLEywoTn1QdwNPddxPWszn3zFhEot3MfL9fns
DCdcuc8Amr83Wz27ZkQ2K9NS6r8zRpf1J6cvArEBDZDmm