Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updates maker guide #709

Merged
merged 6 commits into from
Dec 10, 2021
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,9 @@ $ helium-wallet burn --amount 10,000 --payee 138LbePH4r7hWPuTnK6HXVJ8ATM2QU71iVH
```

When this runs, you'll be asked to supply the passphrase for your HNT wallet. If this is correct, and you have enough HNT to pay for the specified burn amount, it will succeed.

:::warning

Do not send HNT into your Maker accounts. Doing so may result in lost funds. All Makers are required to pay for the onboarding fees for their customers.

:::
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,47 @@ slug: /mine-hnt/full-hotspots/become-a-maker/hotspot-integration-testing

import useBaseUrl from "@docusaurus/useBaseUrl";

This guide is intended for companies that have been approved via HIP19, or are considering submitting an application.
This guide is intended for companies that have been approved via HIP19 and successfully passed the hardware audit stage.

## Hotspot App Compatibility
(New) By March 1, 2022, all Makers and prospective makers are required to develop and make available to their customers, their own mobile app. This allows Makers to create new and differentiating features for their customers and Hotspots. Examples can include detailed diagnostics reports, notifications of status changes, peer address reporting, Proof-of-Coverage tips and improvements, and better troubleshooting and customer support access.
cokes518 marked this conversation as resolved.
Show resolved Hide resolved

**Makers actively going through the HIP-19 process can continue to use the Helium app but are expected to develop their own Maker app by March 1, 2022.**

To make the transition easier, a [Maker Starter App](https://github.com/helium/maker-starter-app) is available for anyone to fork and modify.

The Helium app will continue to support HNT / Wallet functions, such as sending payments, receiving payments, and burn HNT.

## Starter App features
* Supports deeplinking and transaction signing through the Helium app
* Simply put: users of the Maker app will not need to sign in with their 12 words, as long as they are signed in with the Helium app
* Hotspot onboarding with Bluetooth
* Hotspot onboarding with QR Code
* Setting Wi-Fi credentials for Hotspots onboarded with Bluetooth
* Assert Location (Bluetooth and QR Code)
* Generating any required transactions for the Helium app to sign (`add_gateway`, `assert_location`, `transfer_hotspot_v2`)
* Submit signed transactions to the blockchain
* A settings menu with PIN code, language selector, and the linked Helium address displayed
* Light and Dark mode

For optimal user experience, we recommend Hotspots be equipped with compatible Bluetooth and Wi-Fi functionality. This allows a seamless onboarding experience. This integration guide will walk through both Bluetooth onboarding and QR code/Web onboarding (to support Hotspots without Bluetooth radios)

## Using the Maker Starter App
Instructions to run the Maker Starter app locally on your computer is provided on the README in the GitHub repo. The app is written in React Native and supports both iOS and Android devices.

Support for any other operating system will not be available.

## Hotspot App Integration

:::info

Makers in the HIP-19 process can continue to submit their Hotspots to the Hotspot App for integration. However, all active Makers by March 1, 2022 must have their own Maker app available on App Stores.

:::

To add your Hotspot to the Hotspot App, follow the [Maker Guide](https://github.com/helium/hotspot-app/tree/main/src/makers) in GitHub and [submit a pull request to the Hotspot Github Repo](https://github.com/helium/hotspot-app).

In this codebase, you’ll want to modify the onboarding flow to add a UI element that enables users to select your Hotspot type on this screen, add support emails to Diagnostic Reports (Bluetooth only), add additional onboarding instructions (web/QR) and include default antenna TX/RX gain:


:::info

Product names on this page should follow [Helium branding guidelines](https://www.helium.com/brand) and image assets must conform with existing user experience. If you require help, please reach out to the Helium team.
Expand All @@ -31,7 +61,11 @@ Product names on this page should follow [Helium branding guidelines](https://ww

QR Code Onboarding allows Makers to generate a partial `add_gateway` transaction outside of the Helium App. Users use the camera in the Helium App to add this type of Hotspot.

To select QR Onboarding, in the `hotspot.ts` file, specify `QR` in `onboardType`. [View the example in GitHub](https://github.com/helium/hotspot-app/blob/bbcf058844965e6501295643b95021b6ef26b280/src/makers/__example__/hotspots.ts#L41) or [read more about generating QR codes](https://docs.helium.com/wallets/app-wallet/deep-links-and-qr-codes/).
To select QR Onboarding, in the `hotspot.ts` file, specify `QR` in `onboardType`.

* [View the example in the Maker Starter app](https://github.com/helium/maker-starter-app/blob/f15a887afead44f2c0bba6ac7460cffebe02dc03/src/makers/example/hotspots.ts#L43)
* [View the example in the Hotspot app](https://github.com/helium/hotspot-app/blob/bbcf058844965e6501295643b95021b6ef26b280/src/makers/__example__/hotspots.ts#L41)
* [Read more about generating QR codes](https://docs.helium.com/wallets/app-wallet/deep-links-and-qr-codes/)

### Example QR Onboarding Flow
<img
Expand All @@ -48,19 +82,25 @@ To select QR Onboarding, in the `hotspot.ts` file, specify `QR` in `onboardType`


## Web Onboarding
Web Onboarding allows Makers to generate a partial `add_gateway` transaction outside of the Helium App. Makers generate a deep link back to the Helium App to finish the `add_gateway` transaction. [Read more about deep linking](https://docs.helium.com/wallets/app-wallet/deep-links-and-qr-codes/).
Web Onboarding allows Makers to generate a partial `add_gateway` transaction outside of the Maker App. Makers generate a deep link back to the Helium App/Maker App to finish the `add_gateway` transaction.
[Read more about deep linking](https://docs.helium.com/wallets/app-wallet/deep-links-and-qr-codes/).

To select Web onboarding, in the `hotspot.ts` file, specify `web` in `onboardType`.

To select Web onboarding, in the `hotspot.ts` file, specify `web` in `onboardType`. [View the example in GitHub](https://github.com/helium/hotspot-app/blob/bbcf058844965e6501295643b95021b6ef26b280/src/makers/__example__/hotspots.ts#L41)
* [View the example in the Maker Starter app](https://github.com/helium/maker-starter-app/blob/main/src/makers/example/hotspots.ts)
* [View the example in the Hotspot App](https://github.com/helium/hotspot-app/blob/bbcf058844965e6501295643b95021b6ef26b280/src/makers/__example__/hotspots.ts#L41)

## Bluetooth Pairing

The Helium Hotspot App will start scanning for broadcasting Hotspots. Makers will need to update the `localname` with the product name and include the last 6 digits of the MAC identifier. The character limit is 170 but we do not recommend anyone go beyond 25-30 characters in the product name.
The Maker App will start scanning for broadcasting Hotspots. Makers will need to update the `localname` with the product name and include the last 6 digits of the MAC identifier. The character limit is 170 but we do not recommend anyone go beyond 25-30 characters in the product name.

The `localname` is the name used on the **Found Hotspots** page.

To select Bluetooth onboarding, in the `hotspot.ts` file, specify `BLE` in `onboardType`. [View the example in GitHub](https://github.com/helium/hotspot-app/blob/bbcf058844965e6501295643b95021b6ef26b280/src/makers/__example__/hotspots.ts#L8).
To select Bluetooth onboarding, in the `hotspot.ts` file, specify `BLE` in `onboardType`.

[Read more about BLE Services](/mine-hnt/full-hotspots/become-a-maker/hotspot-ble-services).
* [View the example in the Maker Starter App](https://github.com/helium/maker-starter-app/blob/f15a887afead44f2c0bba6ac7460cffebe02dc03/src/makers/example/hotspots.ts#L6)
* [View the example the Hotspot app](https://github.com/helium/hotspot-app/blob/bbcf058844965e6501295643b95021b6ef26b280/src/makers/__example__/hotspots.ts#L8)
* [Read more about BLE Services](/mine-hnt/full-hotspots/become-a-maker/hotspot-ble-services).

# Constructing the Add Gateway Transaction

Expand All @@ -83,7 +123,7 @@ For testing, you'll set `payer` as `payer = 138LbePH4r7hWPuTnK6HXVJ8ATM2QU71iVHz

When testing with this `payer` address, adding hotspots and asserting location transactions will be submitted and you’ll see them as pending transactions in the Hotspot App. However, once it reaches the blockchain, the transaction will be discarded as the payer address does not exist in the blockchain’s `chain_var` of valid addresses. This ensures no Data Credits are spent on testing, but allows trial and error as Makers finish app integration.

Once submitted, you can view the pending transaction using this API:
Once you have the transaction, you will pass it onto the Helium app to sign the transaction. Once submitted, you can view the pending transaction using this API:

* [https://api.helium.io/v1/accounts/138LbePH4r7hWPuTnK6HXVJ8ATM2QU71iVHzLTup1UbnPDvbxmr/pending_transactions](https://api.helium.io/v1/accounts/138LbePH4r7hWPuTnK6HXVJ8ATM2QU71iVHzLTup1UbnPDvbxmr/pending_transactions)

Expand Down Expand Up @@ -135,19 +175,7 @@ Maker IDs are sequential and cannot be customized.

## Funding the Maker Account

In order to fund the Maker account, you’ll need to [create a CLI wallet](https://github.com/helium/helium-wallet-rs). Once created, fund this wallet with HNT and use this HNT to produce Data Credits for your Hotspots. For each Hotspot onboarded, the [transaction fees](/blockchain/transaction-fees#transaction-fee-schedule) are as follows:

* **Add Gateway**: `4000000 DCs`
* **Assert Location**: `1000000 DCs`

The `payee` in the burn transaction will be your Maker account. This is where the Data Credits will be deposited.

:::warning

Remember, Data Credits are NON-TRANSFERABLE. Triple check that the `payee` address is your correct `maker` address.

:::

[Read the guide](https://docs.helium.com/mine-hnt/full-hotspots/become-a-maker/burn-hnt-to-maker-wallet) for more information.


## Adding Hotspots to the Onboarding Server
Expand All @@ -164,6 +192,16 @@ When you’re ready to start integration with the Test Maker account with the mo
"rpi_serial":
```

`"mac_eth0":` Ethernet MAC address

`"mac_wlan0":` Wi-Fi MAC address

`"heliumSerial":` Serial number for first generation Helium Hotspots. Can be ignored.

`"onboarding_key":` The onboarding key generated from the Hotspot miner in base58. Required.

`"rpi_serial":` Serial number for the RaspberryPi. Can be repurposed to track your own serial number.

### Production

When you move to production, the JSON should be formatted like this. Note the addition of the `batch` field:
Expand All @@ -176,7 +214,6 @@ When you move to production, the JSON should be formatted like this. Note the ad
"rpi_serial": "any_value"
```


## Wallet App, Onboarding, and Data Credits

### Testing
Expand Down