Generate Addresses
You can generate an IOTA address using the Client.get_addresses()
function that will return a list of tuples with the
generated addresses.
The following code example will:
- Create a
Client
which will connect to the Shimmer Testnet. - Create a
SecretManager
from a mnemonic. - Generate a public address.
- Generate an internal address.
- Generate an offline address.
Iota.js
You can also find this guide in the native iota.js library
Code Example
- Rust
- Nodejs
- Python
- Java
Dotenv
This example uses dotenv, which is not safe to use in production environments.
// Copyright 2021 IOTA Stiftung
// SPDX-License-Identifier: Apache-2.0
//! cargo run --example generate_addresses --release -- [NODE URL]
use iota_client::{api::GetAddressesBuilder, secret::SecretManager, Client, Result};
#[tokio::main]
async fn main() -> Result<()> {
// This example uses dotenv, which is not safe for use in production
dotenv::dotenv().ok();
// Take the node URL from command line argument or use one from env as default.
let node_url = std::env::args()
.nth(1)
.unwrap_or_else(|| std::env::var("NODE_URL").unwrap());
// Create a client instance
let client = Client::builder()
.with_node(&node_url)? // Insert your node URL here
.finish()?;
let secret_manager =
SecretManager::try_from_mnemonic(&std::env::var("NON_SECURE_USE_OF_DEVELOPMENT_MNEMONIC_1").unwrap())?;
// Generate addresses with default account index and range
let addresses = client.get_addresses(&secret_manager).finish().await?;
println!("List of generated public addresses:\n{addresses:#?}\n");
// Generate addresses with custom account index and range
let addresses = client
.get_addresses(&secret_manager)
.with_account_index(0)
.with_range(0..4)
.finish()
.await?;
println!("List of generated public addresses:\n{addresses:#?}\n");
// Generate internal addresses with custom account index and range
let addresses = client
.get_addresses(&secret_manager)
.with_account_index(0)
.with_range(0..4)
.with_internal_addresses(true)
.finish()
.await?;
println!("List of generated internal addresses:\n{addresses:#?}\n");
// Generating addresses with `client.get_addresses(&secret_manager)`, will by default get the bech32_hrp (Bech32
// human readable part) from the node info, generating it "offline" requires setting it with
// `with_bech32_hrp(bech32_hrp)`
let addresses = GetAddressesBuilder::new(&secret_manager)
.with_bech32_hrp(client.get_bech32_hrp().await?)
.with_account_index(0)
.with_range(0..4)
.finish()
.await?;
println!("List of offline generated public addresses:\n{addresses:#?}\n");
Ok(())
}
Run the Example
Run the example by running the following command:
cargo run --example generate_addresses --release -- https://api.testnet.shimmer.network
- You can replace
https://api.testnet.shimmer.network
with any node url.
Dotenv
This example uses dotenv, which is not safe to use in production environments.
// Copyright 2021-2022 IOTA Stiftung
// SPDX-License-Identifier: Apache-2.0
import {
Client,
CoinType,
initLogger,
SHIMMER_TESTNET_BECH32_HRP,
} from '@iota/client';
require('dotenv').config({ path: '../.env' });
// Run with command:
// node ./dist/02_generate_addresses.js
// In this example we will create addresses from a mnemonic defined in .env
async function run() {
initLogger();
if (!process.env.NODE_URL) {
throw new Error('.env NODE_URL is undefined, see .env.example');
}
const client = new Client({
// Insert your node URL in the .env.
nodes: [process.env.NODE_URL],
});
try {
if (!process.env.NON_SECURE_USE_OF_DEVELOPMENT_MNEMONIC_1) {
throw new Error('.env mnemonic is undefined, see .env.example');
}
const secretManager = {
mnemonic: process.env.NON_SECURE_USE_OF_DEVELOPMENT_MNEMONIC_1,
};
// Generate public address with default account index and range.
const default_addresses = await client.generateAddresses(
secretManager,
{},
);
console.log(
'List of generated public addresses: ',
default_addresses,
'\n',
);
// Generate public address with custom account index and range.
const address = await client.generateAddresses(secretManager, {
accountIndex: 0,
range: {
start: 0,
end: 4,
},
});
console.log('List of generated public addresses:', address, '\n');
// Generate internal addresses with custom account index and range.
const internalAddresses = await client.generateAddresses(
secretManager,
{
accountIndex: 0,
range: {
start: 0,
end: 4,
},
internal: true,
},
);
console.log(
'List of generated internal addresses:',
internalAddresses,
'\n',
);
// Generate addresses with providing all inputs, that way it can also be done offline without a node.
const offlineGeneratedAddresses = await client.generateAddresses(
secretManager,
{
coinType: CoinType.Shimmer,
accountIndex: 0,
range: {
start: 0,
end: 4,
},
internal: false,
// Generating addresses with client.generateAddresses(secretManager, {}), will by default get the bech32_hrp (Bech32
// human readable part) from the node info, generating it "offline" requires setting it in the generateAddressesOptions
bech32Hrp: SHIMMER_TESTNET_BECH32_HRP,
},
);
console.log(
'List of offline generated public addresses:',
offlineGeneratedAddresses,
);
} catch (error) {
console.error('Error: ', error);
}
}
run().then(() => process.exit());
You can run the example by running the following command from the bindings/node/examples/
folder:
node dist/02_generate_addresses.js
from iota_client import IotaClient, MnemonicSecretManager
# Create an IotaClient instance
client = IotaClient({'nodes': ['https://api.testnet.shimmer.network']})
# In this example we will create addresses from a mnemonic
secret_manager = MnemonicSecretManager("endorse answer radar about source reunion marriage tag sausage weekend frost daring base attack because joke dream slender leisure group reason prepare broken river")
# Generate public address with default account index and range.
addresses = client.generate_addresses(secret_manager, options={})
print('List of generated public addresses:', *addresses, sep='\n')
print()
# Generate public address with custom account index and range.
addresses = client.generate_addresses(secret_manager, {
"accountIndex": 0,
"range": {
"start": 0,
"end": 4,
},
})
print('List of generated public addresses:', *addresses, sep='\n')
print()
# Generate internal addresses with custom account index and range.
addresses = client.generate_addresses(secret_manager, {
"accountIndex": 0,
"range": {
"start": 0,
"end": 4,
},
"internal": True,
})
print('List of generated internal addresses:', *addresses, sep='\n')
print()
# Generate addresses with providing all inputs, that way it can also be done offline without a node.
addresses = client.generate_addresses(secret_manager, {
"coinType": 4219, # Shimmer coin type
"accountIndex": 0,
"range": {
"start": 0,
"end": 4,
},
"internal": False,
# Generating addresses with client.generateAddresses(secretManager, options={}), will by default get the bech32_hrp (Bech32
# human readable part) from the node info, generating it "offline" requires setting it in the generateAddressesOptions
"bech32Hrp": 'rms'
})
print('List of offline generated public addresses:', *addresses, sep='\n')
print()
You can run the example by running the following command from the binding/python/examples
folder:
python3 02_generate_addresses.py
import org.iota.Client;
import org.iota.types.ClientConfig;
import org.iota.types.expections.ClientException;
import org.iota.types.expections.InitializeClientException;
import org.iota.types.secret.GenerateAddressesOptions;
import org.iota.types.secret.MnemonicSecretManager;
import org.iota.types.secret.Range;
public class GenerateAddresses {
public static void main(String[] args) throws ClientException, InitializeClientException {
// Build the client.
Client client = new Client(new ClientConfig().withNodes(new String[]{"https://api.testnet.shimmer.network"}));
MnemonicSecretManager secretManager = new MnemonicSecretManager("endorse answer radar about source reunion marriage tag sausage weekend frost daring base attack because joke dream slender leisure group reason prepare broken river");
// Generate public address with default account index and range.
String[] defaultAddresses = client.generateAddresses(secretManager, new GenerateAddressesOptions());
// Print the addresses.
System.out.println("List of generated public addresses:");
for (String address : defaultAddresses) {
System.out.println(address);
}
System.out.println();
// Generate public address with custom account index and range.
String[] addresses = client.generateAddresses(secretManager, new GenerateAddressesOptions().withAccountIndex(0).withRange(new Range(0, 4)));
// Print the addresses.
System.out.println("List of generated public addresses:");
for (String address : addresses) {
System.out.println(address);
}
System.out.println();
// Generate internal addresses with custom account index and range.
String[] internalAddresses = client.generateAddresses(secretManager, new GenerateAddressesOptions().withInternal(true).withAccountIndex(0).withRange(new Range(0, 4)));
// Print the addresses.
System.out.println("List of generated internal addresses:");
for (String address : internalAddresses) {
System.out.println(address);
}
System.out.println();
// Generate addresses with providing all inputs, that way it can also be done offline without a node.
String[] offlineGeneratedAddresses = client.generateAddresses(secretManager,
new GenerateAddressesOptions()
.withCoinType(4219)
.withAccountIndex(0)
.withRange(new Range(0, 4))
.withInternal(false)
// Generating addresses with client.generateAddresses(secretManager, new GenerateAddressesOptions()), will by default get the bech32_hrp (Bech32
// human readable part) from the node info, generating it "offline" requires setting it in the generateAddressesOptions
.withBech32Hrp("rms"));
// Print the addresses.
System.out.println("List of offline generated public addresses:");
for (String address : offlineGeneratedAddresses) {
System.out.println(address);
}
System.out.println();
}
}
Expected Output
- Rust
- Nodejs
- Python
- Java
List of generated public addresses:
[
"rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy",
"rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj",
"rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47",
"rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf",
"rms1qzvs2rvq5ef79vhuel354mnvzfz049gyyf808zmjculuatt56u92vc4v4p3",
"rms1qpk0dj5lmv5r8d64f3x0qwx3jccredwa42xscdreqma73f3dxymaqdy645t",
"rms1qqlp6nurrz459jvvvuhv6t965v6cmlata57kf6auv6955uyp77uyw0egzgn",
"rms1qq2tu523zqzjxgdl69au8a9yewmd9ztctssv40dsv7lfd0tp36w4xdfzcyr",
"rms1qpw904c253cc9yn2dkhxx89u6r5j9vzezfatchrlugrkcvvhed3hckx6h2u",
"rms1qpa646cegkqsx9eht793nmux2vjwa63jrenqe87xq8j5wysfhu4l28k4ep9",
"rms1qq02yzamyu2z4rflv48cpt86kclcqr0rkxx748cf7l08l75gwtlcw54udc6",
"rms1qpulq7ldsux06s92n33pwk92mmllw07lqkkdfy5g9td0v2thhx2wxmd4lec",
"rms1qr0wl256lkfj7gdy8x5hqpvyrwtx98flyns3l7aehheg5c04kxj0cwy9eff",
"rms1qq8mmsdwrt809wl6dgn2rmt7ak6082enmnqapy59xfqtyenrwsxtghxgmch",
"rms1qqj7667kh0fmykdc65kwad5mvhhv9sxe8kdj0wenp6nwwnf0qkdwk7v07vu",
"rms1qpcwqlmu2n42fvht7fufztdg2k4hhtwzzrhsvucktrhk6mlr3cpvk7q75pf",
"rms1qppssdyxxsfa3c2ln47ccxryh68w3jret6zx6v9r43ptr4n7fks9g3l4eup",
"rms1qrkq9nv9uhafnduvfgtmru99532yhqpmqugf9x9x90ptzpceujkwgj2yaj4",
"rms1qptssvmyhfas223m542ayqagn06urq8v0yad770fxsj3grftqe4jzq3sh6m",
"rms1qr98trzs2snaeawklxnrpe3a3hahvkeydqdt3s6hps36lp8uxfzlcfx0pj6",
]
List of generated public addresses:
[
"rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy",
"rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj",
"rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47",
"rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf",
]
List of generated internal addresses:
[
"rms1qp6w3v03qwtwkh52avtdvejpdqp8yfpk4z94m5dg3evuzu9hynyucvmxd59",
"rms1qqv993w400a6j7darw3v5h6tevk7qx534lr8tcu47zdrazhz0z2zstmj4da",
"rms1qzelrg0560t52g2wjpkyyesfg7wzcm8wa89akf6eux88xtupjaqazsw7jyy",
"rms1qp385r3f8k64cphft8lde9emrqarfwshnlwdnguw3qr62q32dmx6wt8e0sv",
]
List of offline generated public addresses:
[
"rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy",
"rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj",
"rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47",
"rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf",
]
List of generated public addresses: [
'rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy',
'rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj',
'rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47',
'rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf',
'rms1qzvs2rvq5ef79vhuel354mnvzfz049gyyf808zmjculuatt56u92vc4v4p3',
'rms1qpk0dj5lmv5r8d64f3x0qwx3jccredwa42xscdreqma73f3dxymaqdy645t',
'rms1qqlp6nurrz459jvvvuhv6t965v6cmlata57kf6auv6955uyp77uyw0egzgn',
'rms1qq2tu523zqzjxgdl69au8a9yewmd9ztctssv40dsv7lfd0tp36w4xdfzcyr',
'rms1qpw904c253cc9yn2dkhxx89u6r5j9vzezfatchrlugrkcvvhed3hckx6h2u',
'rms1qpa646cegkqsx9eht793nmux2vjwa63jrenqe87xq8j5wysfhu4l28k4ep9',
'rms1qq02yzamyu2z4rflv48cpt86kclcqr0rkxx748cf7l08l75gwtlcw54udc6',
'rms1qpulq7ldsux06s92n33pwk92mmllw07lqkkdfy5g9td0v2thhx2wxmd4lec',
'rms1qr0wl256lkfj7gdy8x5hqpvyrwtx98flyns3l7aehheg5c04kxj0cwy9eff',
'rms1qq8mmsdwrt809wl6dgn2rmt7ak6082enmnqapy59xfqtyenrwsxtghxgmch',
'rms1qqj7667kh0fmykdc65kwad5mvhhv9sxe8kdj0wenp6nwwnf0qkdwk7v07vu',
'rms1qpcwqlmu2n42fvht7fufztdg2k4hhtwzzrhsvucktrhk6mlr3cpvk7q75pf',
'rms1qppssdyxxsfa3c2ln47ccxryh68w3jret6zx6v9r43ptr4n7fks9g3l4eup',
'rms1qrkq9nv9uhafnduvfgtmru99532yhqpmqugf9x9x90ptzpceujkwgj2yaj4',
'rms1qptssvmyhfas223m542ayqagn06urq8v0yad770fxsj3grftqe4jzq3sh6m',
'rms1qr98trzs2snaeawklxnrpe3a3hahvkeydqdt3s6hps36lp8uxfzlcfx0pj6'
]
List of generated public addresses: [
'rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy',
'rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj',
'rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47',
'rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf'
]
List of generated internal addresses: [
'rms1qp6w3v03qwtwkh52avtdvejpdqp8yfpk4z94m5dg3evuzu9hynyucvmxd59',
'rms1qqv993w400a6j7darw3v5h6tevk7qx534lr8tcu47zdrazhz0z2zstmj4da',
'rms1qzelrg0560t52g2wjpkyyesfg7wzcm8wa89akf6eux88xtupjaqazsw7jyy',
'rms1qp385r3f8k64cphft8lde9emrqarfwshnlwdnguw3qr62q32dmx6wt8e0sv'
]
List of offline generated public addresses: [
'rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy',
'rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj',
'rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47',
'rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf'
]
List of generated public addresses:
rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy
rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj
rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47
rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf
rms1qzvs2rvq5ef79vhuel354mnvzfz049gyyf808zmjculuatt56u92vc4v4p3
rms1qpk0dj5lmv5r8d64f3x0qwx3jccredwa42xscdreqma73f3dxymaqdy645t
rms1qqlp6nurrz459jvvvuhv6t965v6cmlata57kf6auv6955uyp77uyw0egzgn
rms1qq2tu523zqzjxgdl69au8a9yewmd9ztctssv40dsv7lfd0tp36w4xdfzcyr
rms1qpw904c253cc9yn2dkhxx89u6r5j9vzezfatchrlugrkcvvhed3hckx6h2u
rms1qpa646cegkqsx9eht793nmux2vjwa63jrenqe87xq8j5wysfhu4l28k4ep9
rms1qq02yzamyu2z4rflv48cpt86kclcqr0rkxx748cf7l08l75gwtlcw54udc6
rms1qpulq7ldsux06s92n33pwk92mmllw07lqkkdfy5g9td0v2thhx2wxmd4lec
rms1qr0wl256lkfj7gdy8x5hqpvyrwtx98flyns3l7aehheg5c04kxj0cwy9eff
rms1qq8mmsdwrt809wl6dgn2rmt7ak6082enmnqapy59xfqtyenrwsxtghxgmch
rms1qqj7667kh0fmykdc65kwad5mvhhv9sxe8kdj0wenp6nwwnf0qkdwk7v07vu
rms1qpcwqlmu2n42fvht7fufztdg2k4hhtwzzrhsvucktrhk6mlr3cpvk7q75pf
rms1qppssdyxxsfa3c2ln47ccxryh68w3jret6zx6v9r43ptr4n7fks9g3l4eup
rms1qrkq9nv9uhafnduvfgtmru99532yhqpmqugf9x9x90ptzpceujkwgj2yaj4
rms1qptssvmyhfas223m542ayqagn06urq8v0yad770fxsj3grftqe4jzq3sh6m
rms1qr98trzs2snaeawklxnrpe3a3hahvkeydqdt3s6hps36lp8uxfzlcfx0pj6
List of generated public addresses:
rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy
rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj
rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47
rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf
List of generated internal addresses:
rms1qp6w3v03qwtwkh52avtdvejpdqp8yfpk4z94m5dg3evuzu9hynyucvmxd59
rms1qqv993w400a6j7darw3v5h6tevk7qx534lr8tcu47zdrazhz0z2zstmj4da
rms1qzelrg0560t52g2wjpkyyesfg7wzcm8wa89akf6eux88xtupjaqazsw7jyy
rms1qp385r3f8k64cphft8lde9emrqarfwshnlwdnguw3qr62q32dmx6wt8e0sv
List of offline generated public addresses:
rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy
rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj
rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47
rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf
List of generated public addresses:
rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy
rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj
rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47
rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf
rms1qzvs2rvq5ef79vhuel354mnvzfz049gyyf808zmjculuatt56u92vc4v4p3
rms1qpk0dj5lmv5r8d64f3x0qwx3jccredwa42xscdreqma73f3dxymaqdy645t
rms1qqlp6nurrz459jvvvuhv6t965v6cmlata57kf6auv6955uyp77uyw0egzgn
rms1qq2tu523zqzjxgdl69au8a9yewmd9ztctssv40dsv7lfd0tp36w4xdfzcyr
rms1qpw904c253cc9yn2dkhxx89u6r5j9vzezfatchrlugrkcvvhed3hckx6h2u
rms1qpa646cegkqsx9eht793nmux2vjwa63jrenqe87xq8j5wysfhu4l28k4ep9
rms1qq02yzamyu2z4rflv48cpt86kclcqr0rkxx748cf7l08l75gwtlcw54udc6
rms1qpulq7ldsux06s92n33pwk92mmllw07lqkkdfy5g9td0v2thhx2wxmd4lec
rms1qr0wl256lkfj7gdy8x5hqpvyrwtx98flyns3l7aehheg5c04kxj0cwy9eff
rms1qq8mmsdwrt809wl6dgn2rmt7ak6082enmnqapy59xfqtyenrwsxtghxgmch
rms1qqj7667kh0fmykdc65kwad5mvhhv9sxe8kdj0wenp6nwwnf0qkdwk7v07vu
rms1qpcwqlmu2n42fvht7fufztdg2k4hhtwzzrhsvucktrhk6mlr3cpvk7q75pf
rms1qppssdyxxsfa3c2ln47ccxryh68w3jret6zx6v9r43ptr4n7fks9g3l4eup
rms1qrkq9nv9uhafnduvfgtmru99532yhqpmqugf9x9x90ptzpceujkwgj2yaj4
rms1qptssvmyhfas223m542ayqagn06urq8v0yad770fxsj3grftqe4jzq3sh6m
rms1qr98trzs2snaeawklxnrpe3a3hahvkeydqdt3s6hps36lp8uxfzlcfx0pj6
List of generated public addresses:
rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy
rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj
rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47
rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf
List of generated internal addresses:
rms1qp6w3v03qwtwkh52avtdvejpdqp8yfpk4z94m5dg3evuzu9hynyucvmxd59
rms1qqv993w400a6j7darw3v5h6tevk7qx534lr8tcu47zdrazhz0z2zstmj4da
rms1qzelrg0560t52g2wjpkyyesfg7wzcm8wa89akf6eux88xtupjaqazsw7jyy
rms1qp385r3f8k64cphft8lde9emrqarfwshnlwdnguw3qr62q32dmx6wt8e0sv
List of offline generated public addresses:
rms1qpllaj0pyveqfkwxmnngz2c488hfdtmfrj3wfkgxtk4gtyrax0jaxzt70zy
rms1qzzk86qv30l4e85ljtccxa0ruy8y7u8zn2dle3g8dv2tl2m4cu227a7n2wj
rms1qqjrtmslm36l3lyd8086w9qdxd9mudu2z2qyywlltpycn2ftxsdmu9ulj47
rms1qzz75j5h7vd5melxwersz49jja36m2vvnawedu0l6rlhg70ylzqp52lx8zf