Connect Wallet
Learn how to integrate wallet connections into your Stacks application. Connecting a wallet authenticates users and enables blockchain interactions like transfers and contract calls.
What you'll learn
Install the
@stacks/connectpackageConnect to a wallet and authenticate users
Manage authentication state
Access user account data
Quickstart
2
Connect and authenticate
Use connect to initiate a wallet session and persist user data:
import { connect, isConnected } from '@stacks/connect';
async function connectWallet() {
if (isConnected()) {
console.log('Already authenticated');
return;
}
const response = await connect();
console.log('Connected:', response.addresses);
}Manage authentication state in your app:
import { disconnect, isConnected } from '@stacks/connect';
const authenticated = isConnected();
function logout() {
disconnect();
console.log('User disconnected');
}3
Access user data
Read persisted addresses and request full account details:
import { getLocalStorage, request } from '@stacks/connect';
const userData = getLocalStorage();
if (userData?.addresses) {
const stxAddress = userData.addresses.stx[0].address;
const btcAddress = userData.addresses.btc[0].address;
console.log('STX:', stxAddress);
console.log('BTC:', btcAddress);
}
const accounts = await request('stx_getAccounts');
const account = accounts.addresses[0];
console.log('Address:', account.address);
console.log('Public key:', account.publicKey);
console.log('Gaia URL:', account.gaiaHubUrl);4
Make your first transaction
Request the wallet to broadcast a transfer:
import { request } from '@stacks/connect';
async function sendTransaction() {
const response = await request('stx_transferStx', {
amount: '1000000',
recipient: 'SP2MF04VAGYHGAZWGTEDW5VYCPDWWSY08Z1QFNDSN',
memo: 'First transfer',
});
console.log('Transaction ID:', response.txid);
}Last updated
Was this helpful?
