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
1import { showConnect } from '@stacks/connect';23showConnect({4appDetails,5userSession,6onFinish: () => {7const user = userSession.loadUserData();8const address = user.profile.stxAddress.mainnet;9// 'SP1MXSZF4NFC8JQ1TTYGEC2WADMC7Y3GHVZYRX6RF'10},11});
Using a seed phrase / mnemonic / private key
1import { randomSeedPhrase, generateWallet } from "@stacks/wallet-sdk";2import { privateKeyToAddress } from "@stacks/transactions";34const seed = randomSeedPhrase();56const wallet = await generateWallet({7secretKey: seed,8password: 'secret',9});1011const address = privateKeyToAddress(wallet.accounts[0].stxPrivateKey, 'mainnet');12// 'SP1MXSZF4NFC8JQ1TTYGEC2WADMC7Y3GHVZYRX6RF'
Using a public key
1import { publicKeyToAddress } from '@stacks/transactions';23const address = publicKeyToAddress(publicKey, 'mainnet');4// 'SP1MXSZF4NFC8JQ1TTYGEC2WADMC7Y3GHVZYRX6RF'