Accounts & Addresses
Learn how to get an address from an account.
Stacks uses the concept of an "account" to represent a user's identity on the blockchain. An account is identified by a unique address. The address is derived from the account's public key, which is derived from the account's private key.
A normal mainnet address starts with SP
, and a testnet address starts with ST
. For example:
Mainnet: SP3FGQ8Z7JY9BWYZ5WM53E0M9NK7WHJF0691NZ159
Testnet: ST2F4BK4GZH6YFBNHYDDGN4T1RKBA7DA1BJZPJEJJ
Getting an address
Using Stacks Connect
import { showConnect } from '@stacks/connect';showConnect({appDetails,userSession,onFinish: () => {const user = userSession.loadUserData();const address = user.profile.stxAddress.mainnet;// 'SP1MXSZF4NFC8JQ1TTYGEC2WADMC7Y3GHVZYRX6RF'},});
Using a seed phrase / mnemonic / private key
import { randomSeedPhrase, generateWallet, privateKeyToAddress } from "@stacks/wallet-sdk";const seed = randomSeedPhrase();const wallet = await generateWallet({secretKey: seed,password: 'secret',});const address = privateKeyToAddress(wallet.accounts[0].stxPrivateKey, 'mainnet');// 'SP1MXSZF4NFC8JQ1TTYGEC2WADMC7Y3GHVZYRX6RF'
Using a public key
import { publicKeyToAddress } from '@stacks/transactions';const address = publicKeyToAddress(publicKey, 'mainnet');// 'SP1MXSZF4NFC8JQ1TTYGEC2WADMC7Y3GHVZYRX6RF'