Address Validation
Validate and format Stacks addresses and principals.
Overview
Stacks addresses follow specific formats that differ between mainnet and testnet. Proper validation ensures your application handles addresses correctly, preventing loss of funds and improving user experience. This guide covers address validation, formatting, and conversion utilities.
Basic address validation
Validate Stacks addresses:
import {
validateStacksAddress
} from '@stacks/transactions';
// Validate standard addresses
const isValidMainnet = validateStacksAddress('SP2J6Y09JMFWWZCT4VJX0BA5W7A9HZP5EX96Y6VZY');
console.log('Valid mainnet:', isValidMainnet); // true
const isValidTestnet = validateStacksAddress('ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC');
console.log('Valid testnet:', isValidTestnet); // true
const isInvalid = validateStacksAddress('invalid-address');
console.log('Valid:', isInvalid); // falseAddress types and detection
Identify address types and networks:
Contract address handling
Work with contract principals:
Address conversion utilities
Convert between Stacks and Bitcoin address formats:
Advanced validation patterns
Address formatting
Format addresses for display:
Testing utilities
Test address validation:
Best practices
Always validate user input: Never trust addresses from users
Check network compatibility: Ensure addresses match your network
Handle edge cases: Contract addresses, multisig, etc.
Cache validation results: Avoid redundant validation
Provide clear error messages: Help users fix invalid inputs
Common mistakes
Not checking network type:
Last updated
Was this helpful?