Uploaded January 2018 | Updated September 2026, 2 weeks ago
If you like this video and want to support me, go this page for my donation crypto addresses:
youtube.com/c/mobilefish/about
This is part 9 of the IOTA tutorial.
In this video series different topics will be explained which will help you to understand IOTA.
It is recommended to watch each video sequentially as I may refer to certain IOTA topics explained earlier.
The procedure to generate IOTA addresses is as follows:
IOTA addresses are deterministically generated starting with the seed (81 trytes).
Seed (trytes): C9RQF ... QIAWT
Convert the seed (81 trytes) to trits (= 81 x 3 = 243 trits)
Seed (trits): 0,1,0,0,0,0 ... -1,-1,0,-1,1,-1
Every address has a corresponding key index number.
A key index number is an integer starting from 0.
Address 0 has key index number 0, address 1 has key index number 1, etc.
They key index number always starts with integer 0, and is simply incremented in order to get the next address.
The largest key index number allowed is 9007199254740991.
This largest key index number is the same as 2^53 - 1, which is the same as the Javascript constant: Number.MAX_SAFE_INTEGER
An IOTA seed can generate in total 9007199254740992 addresses.
The decimal key index number must be converted to trits.
For example the key index number 1 converted to trits looks like: 1,0,0
Next create a subseed by adding the key index number and seed together.
subseed = seed + key index number
IOTA provides 3 security levels: 1, 2 or 3.
A security level determines the number of rounds for hashing, which means that a single seed can have 3 different accounts.
A different security level with the same index number, means that you will get a different address.
Security level 1, Key size (trits): 6561 x 1
Remark: Used for low security (for very high efficiency). Best for tiny IoT devices that only transact/store small amounts of value.
Security level 2, Key size (trits): 6561 x 2
Remark: Used for standard security (for medium performance). Best for regular people's wallets and devices that store higher amounts of value.
Security level 3, Key size (trits): 6561 x 4
Remark: Used for full blown quantum proof security that conforms to National Security Agency’s (NSA) recommendations for sensitive material.
Good for big value transactions and paranoids.
Client libraries, such as iota.lib.js makes it possible to choose another security level.
See: mobilefish.com/services/cryptocurrency/iota_wallet.html
By default the IOTA light wallet uses security level 2 and you can not change its security level.
If you created an address using security level 1 or 3 this address will not appear in the IOTA light wallet using the same seed.
In the next slide a simplistic explanation is given how the subseed is hashed multiple times using the Keccak-384 hash algorithm.
The hashing is done in a wrapper class called Kerl.
The seed and subseed can differ between the first 1 tryte up to and including 12 trytes.
If someone else has exactly the last 69 (= 81 - 12) trytes up to and including 81 trytes of your seed they can see the balance of one or more of your addresses.
The probability that someone else happens to have the same last 69 trytes of your seed is very small.
Here is the proof: IOTA seed with only 69 trytes has 27^69 = 5.80 x 10^98 possible combinations.
For comparison: A Bitcoin private key with 256 bits has 2^256 = 1.15 x 10^77 possible combinations.
This means, even if you have an IOTA seed with only 69 trytes it has more possible combinations than a Bitcoin private key.
A checksum is an additional 9 trytes added to an address (81 trytes) which can be used to validate the integrity and validity of the address.
An address with checksum is 90 trytes long, 81 trytes for the address itself and 9 trytes for the checksum.
The procedure to calculate an address checksum is as follows:
Start with an IOTA address (81 trytes).Address (trytes): FSAFM ... NVDZC
Convert the address (81 trytes) to trits (= 81 x 3 = 243 trits)
Address (trits): 1,0,-1,1,0,-1 ... -1,0,0,0,1,0
The address is hashed using the Keccak-384 hash algorithm.
Convert the address checksum (243 trits) to trytes (81 trytes): ...PJFNYWVUGKPRTRV
Get the last 9 trytes: VUGKPRTRV
Append the last 9 trytes to the original address: FSAFM ... NVDZCVUGKPRTRV
The address including checksum has a length of 81 + 9 = 90 trytes.
The IOTA light wallet:
Always creates addresses including the checksum.
The addresses are always 90 trytes long.
Always requires receive addresses, with valid checksums when making a transaction.
The receive addresses must be 90 trytes long.
Check out all my other IOTA tutorial videos:
goo.gl/aNHf1y
Subscribe to my YouTube channel:
goo.gl/61NFzK
The presentation used in this video tutorial can be found at:
mobilefish.com/developer/iota/iota_quickguide_tutorial.html
#mobilefish #howto #iota
If you like this video and want to support me, go this page for my donation crypto addresses:
youtube.com/c/mobilefish/about
This is part 9 of the IOTA tutorial.
In this video series different topics will be explained which will help you to understand IOTA.
It is recommended to watch each video sequentially as I may refer to certain IOTA topics explained earlier.
The procedure to generate IOTA addresses is as follows:
IOTA addresses are deterministically generated starting with the seed (81 trytes).
Seed (trytes): C9RQF ... QIAWT
Convert the seed (81 trytes) to trits (= 81 x 3 = 243 trits)
Seed (trits): 0,1,0,0,0,0 ... -1,-1,0,-1,1,-1
Every address has a corresponding key index number.
A key index number is an integer starting from 0.
Address 0 has key index number 0, address 1 has key index number 1, etc.
They key index number always starts with integer 0, and is simply incremented in order to get the next address.
The largest key index number allowed is 9007199254740991.
This largest key index number is the same as 2^53 - 1, which is the same as the Javascript constant: Number.MAX_SAFE_INTEGER
An IOTA seed can generate in total 9007199254740992 addresses.
The decimal key index number must be converted to trits.
For example the key index number 1 converted to trits looks like: 1,0,0
Next create a subseed by adding the key index number and seed together.
subseed = seed + key index number
IOTA provides 3 security levels: 1, 2 or 3.
A security level determines the number of rounds for hashing, which means that a single seed can have 3 different accounts.
A different security level with the same index number, means that you will get a different address.
Security level 1, Key size (trits): 6561 x 1
Remark: Used for low security (for very high efficiency). Best for tiny IoT devices that only transact/store small amounts of value.
Security level 2, Key size (trits): 6561 x 2
Remark: Used for standard security (for medium performance). Best for regular people's wallets and devices that store higher amounts of value.
Security level 3, Key size (trits): 6561 x 4
Remark: Used for full blown quantum proof security that conforms to National Security Agency’s (NSA) recommendations for sensitive material.
Good for big value transactions and paranoids.
Client libraries, such as iota.lib.js makes it possible to choose another security level.
See: mobilefish.com/services/cryptocurrency/iota_wallet.html
By default the IOTA light wallet uses security level 2 and you can not change its security level.
If you created an address using security level 1 or 3 this address will not appear in the IOTA light wallet using the same seed.
In the next slide a simplistic explanation is given how the subseed is hashed multiple times using the Keccak-384 hash algorithm.
The hashing is done in a wrapper class called Kerl.
The seed and subseed can differ between the first 1 tryte up to and including 12 trytes.
If someone else has exactly the last 69 (= 81 - 12) trytes up to and including 81 trytes of your seed they can see the balance of one or more of your addresses.
The probability that someone else happens to have the same last 69 trytes of your seed is very small.
Here is the proof: IOTA seed with only 69 trytes has 27^69 = 5.80 x 10^98 possible combinations.
For comparison: A Bitcoin private key with 256 bits has 2^256 = 1.15 x 10^77 possible combinations.
This means, even if you have an IOTA seed with only 69 trytes it has more possible combinations than a Bitcoin private key.
A checksum is an additional 9 trytes added to an address (81 trytes) which can be used to validate the integrity and validity of the address.
An address with checksum is 90 trytes long, 81 trytes for the address itself and 9 trytes for the checksum.
The procedure to calculate an address checksum is as follows:
Start with an IOTA address (81 trytes).Address (trytes): FSAFM ... NVDZC
Convert the address (81 trytes) to trits (= 81 x 3 = 243 trits)
Address (trits): 1,0,-1,1,0,-1 ... -1,0,0,0,1,0
The address is hashed using the Keccak-384 hash algorithm.
Convert the address checksum (243 trits) to trytes (81 trytes): ...PJFNYWVUGKPRTRV
Get the last 9 trytes: VUGKPRTRV
Append the last 9 trytes to the original address: FSAFM ... NVDZCVUGKPRTRV
The address including checksum has a length of 81 + 9 = 90 trytes.
The IOTA light wallet:
Always creates addresses including the checksum.
The addresses are always 90 trytes long.
Always requires receive addresses, with valid checksums when making a transaction.
The receive addresses must be 90 trytes long.
Check out all my other IOTA tutorial videos:
goo.gl/aNHf1y
Subscribe to my YouTube channel:
goo.gl/61NFzK
The presentation used in this video tutorial can be found at:
mobilefish.com/developer/iota/iota_quickguide_tutorial.html
#mobilefish #howto #iota

![LoRa/LoRaWAN tutorial 11: Carrier Frequencies and Bandwidths
If you like this video and want to support me, go this page for my donation Paypal or crypto addresses:
https://www.youtube.com/c/mobilefish/about
This is part 11 of the LoRa/LoRaWAN tutorial.
In this video series different topics will be explained which will help you to understand LoRa/LoRaWAN.
It is recommended to watch each video sequentially as I may refer to certain LoRa/LoRaWAN topics explained earlier.
In this video I will discuss carrier frequencies, bandwidths, ETSI sub bands, dwell time and hop time.
As mentioned before LoRaWAN uses frequencies in the ISM band.
On The Things Network (TTN) website you can find the carrier frequencies for your country.
First find the frequency plan which applies to your country:
https://www.thethingsnetwork.org/docs/lorawan/frequencies-by-country.html
For example:
Netherlands uses frequency plan EU863-870
If you know your frequency plan, find the corresponding LoRaWAN frequencies:
https://www.thethingsnetwork.org/docs/lorawan/frequency-plans.html
Instead of using the The Things Network (TTN) website, checkout the LoRaWAN Regional Parameters document issued by the LoRa Alliance:
https://lora-alliance.org/lorawan-for-developers
This document contains the approved frequency channel plans for various global regions, and follows the established regulatory constraints in those regions.
In this video I am only focussing on the EU863-870 ISM band, for other ISM bands please consult the LoRaWAN Regional Parameters document.
If your country uses the EU863-870 ISM band, than according to the LoRaWAN Regional Parameters document every EU868MHz end device must implement the following default channels:
- 868.10 MHz, bandwidth = 125 kHz
- 868.30 MHz, bandwidth = 125 kHz
- 868.50 MHz, bandwidth = 125 kHz
and additional 5 frequencies.
The other 5 frequencies can be freely attributed by the network operator.
For example, The Things Network implemented the following frequencies: 867.1, 867.3, 867.5, 867.7 and 867.9.
Earlier the word channel is used.
A channel is just an agreed-upon set of specific frequencies with additional information included in the agreement.
For example when using the TTN freq. plan: EU863-870 the uplink channel 3 refers to:
- carrier frequency: 867.1 MHz
- SF7BW125 to SF12BW125
The LoRaWAN Regional Parameters used by The Things Network can also be found at:
https://github.com/TheThingsNetwork/gateway-conf
ETSI divides the 863-870 MHz band (referenced G) into 5 sub-bands: G, G1, G2, G3 and G4. [5]
Each sub band has different constraints in term of EIRP, duty cycle and channel bandwidth.
LoRaWAN only uses the following bandwidth ranges: 125 kHz, 250 kHz and 500 kHz.
Which of these 3 ranges are actual used depends on the region or frequency plan.
For example in Europe only the bandwidths 125kHz and 250 kHz are used.
An end device changes channel in a pseudo-random fashion for every transmission.
Changing frequencies makes the system more robust to interferences.
For example in Europe for uplink transmissions 8 different frequencies are used.
Dwell time (or transmit time) is the amount of time needed to transmit on a frequency.
Hop time is the amount of time needed to change from one frequency to another in which the radio is not transmitting
Check out all my other LoRa/LoRaWAN tutorial videos:
https://www.youtube.com/playlist?list=PLmL13yqb6OxdeOi97EvI8QeO8o-PqeQ0g
Subscribe to my YouTube channel:
https://www.youtube.com/channel/UCG5_CT_KjexxjbgNE4lVGkg?sub_confirmation=1
The presentation used in this video tutorial can be found at:
https://www.mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html
#mobilefish #lora #lorawan LoRa/LoRaWAN tutorial 11: Carrier Frequencies and Bandwidths](https://i.ytimg.com/vi/Ysso5M7b-fE/mqdefault.jpg)








