// Generate nonce for security
const nonce = window.crypto.randomUUID().replace(/-/g, '');
const { accounts } = await provider.request({
method: 'wallet_connect',
params: [{
version: '1',
capabilities: {
signInWithEthereum: {
nonce,
chainId: '0x2105' // Base Mainnet
}
}
}]
});
// Extract authentication data
const { address } = accounts[0];
const { message, signature } = accounts[0].capabilities.signInWithEthereum;
// Verify signature on your backend
await fetch('/auth/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ address, message, signature })
});