This guide provides step-by-step instructions for testing the X1 blockchain keyring fix in Backpack wallet extension v0.10.37.
- Chrome or Chrome-based browser (Brave, Edge, etc.)
- X1 wallet with seed phrase
- Some XNT tokens for testing transactions
- Test recipient address on X1
-
Open Chrome Extensions Page
- Navigate to
chrome://extensions - Or click the puzzle icon → "Manage Extensions"
- Navigate to
-
Enable Developer Mode
- Toggle "Developer mode" in the top-right corner
-
Remove Old Backpack Extension (if installed)
- Find the existing Backpack extension
- Click "Remove"
- Confirm removal
-
Load Unpacked Extension
- Click "Load unpacked" button
- Navigate to
~/Desktop/backpack-extension - Click "Select"
-
Verify Version
- The extension should show version 0.10.37
- You should see the Backpack logo
-
Pin Extension (Optional)
- Click the puzzle icon in Chrome toolbar
- Find "Backpack"
- Click the pin icon to keep it visible
-
Import Your Wallet
- Click the Backpack extension icon
- Select "Import wallet"
- Enter your seed phrase
- Create a password
-
Enable X1 Blockchain
- Click the hamburger menu (☰)
- Go to "Settings"
- Select "Blockchains"
- Toggle ON "X1"
- Click "Save"
-
Verify X1 Wallet
- In the main view, click the blockchain selector (top of screen)
- Select "X1"
- Verify your X1 address is shown
- Confirm your XNT balance is displayed
Before testing transactions, set up console logging to monitor blockchain parameters:
-
Open Extension Console
- Right-click the Backpack extension icon
- Select "Inspect popup" or "Inspect"
- Click on the "Console" tab
-
Open Service Worker Console
- Go to
chrome://extensions - Find Backpack extension
- Click "service worker" link (under "Inspect views")
- A new DevTools window opens - this is where logs will appear
- Go to
Keep this console window open during all tests!
This is the main test that reproduces the original bug.
Steps:
-
Prepare Test
- Make sure you're on X1 blockchain
- Have at least 0.01 XNT for test + gas
- Have a recipient address ready
-
Initiate Send
- Click "Send" button
- Select XNT token
- Enter recipient address
- Enter amount (e.g., 0.001 XNT)
- Click "Review"
-
Check Console Logs
- Switch to the Service Worker console
- Look for:
[SECURE_SVM_SIGN_TX] blockchain: x1 - Expected: Should see "x1" (not "solana")
-
Confirm Transaction
- Review transaction details
- Click "Send"
- Enter password if prompted
-
Verify Success
- ✅ SUCCESS: Transaction should complete without errors
- ✅ SUCCESS: No "no keyring for solana" error
- ✅ SUCCESS: Transaction hash displayed
- ✅ SUCCESS: Balance updates after confirmation
Expected Console Output:
[SECURE_SVM_SIGN_TX] blockchain: x1
❌ FAILURE Indicators:
- Error: "no keyring for solana"
- Console shows:
[SECURE_SVM_SIGN_TX] blockchain: solana - Transaction fails to sign
Tests the signMessage handler fix.
Prerequisites:
- A dApp that supports Solana/X1 message signing
- Or use developer console to trigger message signing
Steps:
-
Trigger Message Signing
- Connect to a dApp on X1
- Request message signature
- Or run in console:
window.backpack.signMessage(new TextEncoder().encode("Test message"), "base58");
-
Check Console
- Look for:
[SECURE_SVM_SIGN_MESSAGE] blockchain: x1
- Look for:
-
Sign Message
- Review message
- Click "Sign"
-
Verify Success
- ✅ Message signed successfully
- ✅ Signature returned
- ✅ No keyring errors
Tests the signAllTransactions handler fix.
Prerequisites:
- A dApp that batches multiple transactions
- Or create multiple transactions programmatically
Steps:
-
Trigger Batch Signing
- Use a dApp that sends multiple transactions
- Or programmatically create batch
-
Check Console
- Look for:
[SECURE_SVM_SIGN_ALL_TX] blockchain: x1
- Look for:
-
Sign All Transactions
- Review transactions
- Click "Sign All"
-
Verify Success
- ✅ All transactions signed
- ✅ No keyring errors
Ensures the fix doesn't break existing Solana functionality.
Steps:
-
Switch to Solana
- Click blockchain selector
- Select "Solana"
-
Send SOL Transaction
- Click "Send"
- Select SOL token
- Enter recipient and amount
- Click "Review"
-
Check Console
- Look for:
[SECURE_SVM_SIGN_TX] blockchain: solana - Expected: Should see "solana" (the fallback)
- Look for:
-
Complete Transaction
- Click "Send"
- Verify success
-
Verify Success
- ✅ Transaction completes normally
- ✅ Solana transactions still work
- ✅ No regression
The fix adds console logging to three handlers:
| Handler | Log Pattern | When It Appears |
|---|---|---|
| handleSign | [SECURE_SVM_SIGN_TX] blockchain: <value> |
When signing a transaction |
| handleSignMessage | [SECURE_SVM_SIGN_MESSAGE] blockchain: <value> |
When signing a message |
| handleSignAll | [SECURE_SVM_SIGN_ALL_TX] blockchain: <value> |
When signing multiple transactions |
| Blockchain | Expected Log Value |
|---|---|
| X1 | blockchain: x1 |
| Solana | blockchain: solana |
✅ CORRECT (X1 Transaction):
[SECURE_SVM_SIGN_TX] blockchain: x1
❌ INCORRECT (Bug Still Present):
[SECURE_SVM_SIGN_TX] blockchain: solana
✅ CORRECT (Solana Transaction):
[SECURE_SVM_SIGN_TX] blockchain: solana
Solution:
- Make sure you're looking at the Service Worker console, not the Popup console
- Go to
chrome://extensions→ Backpack → click "service worker" - The console logs appear in the Service Worker DevTools
Possible Causes:
- Wrong version loaded: Verify version is 0.10.37
- Cache issue: Try:
- Remove extension completely
- Close all Chrome windows
- Reopen Chrome
- Load extension again
- Build issue: Verify build completed successfully
- Console shows wrong blockchain: If logs show "solana" instead of "x1", the fix didn't apply
Debug Steps:
- Check console log - what blockchain value is shown?
- Verify you're on X1 blockchain in the UI
- Check manifest.json version in extension folder
- Try hard reload: Ctrl+Shift+R (Windows) or Cmd+Shift+R (Mac)
Solution:
- Check
manifest.jsonexists in~/Desktop/backpack-extension - Verify all files copied correctly
- Check browser console for load errors
- Try using absolute path when loading
Not related to keyring fix if:
- Error is about insufficient balance
- Error is about network issues
- Error is about invalid recipient address
Related to keyring fix if:
- Error mentions "no keyring"
- Error mentions "solana" when using X1
- Console shows wrong blockchain value
The fix is working correctly if ALL of the following are true:
- ✅ Extension loads successfully (version 0.10.37)
- ✅ X1 blockchain appears in blockchain selector
- ✅ XNT balance displays correctly
- ✅ Console log shows
blockchain: x1when sending XNT - ✅ Transaction signs WITHOUT "no keyring for solana" error
- ✅ Transaction completes successfully
- ✅ Transaction hash is displayed
- ✅ Balance updates after transaction
- ✅ Solana transactions still work (no regression)
Copy this template to document your test results:
## Test Results - X1 Keyring Fix v0.10.37
**Date:** [DATE]
**Tester:** [NAME]
**Browser:** [Chrome/Brave/Edge + version]
### Test 1: View Console Logs
- [ ] Service Worker console opened
- [ ] Console logs visible
### Test 2: Send XNT Transaction
- [ ] Transaction initiated
- [ ] Console shows: `[SECURE_SVM_SIGN_TX] blockchain: x1`
- [ ] No "no keyring for solana" error
- [ ] Transaction signed successfully
- [ ] Transaction confirmed on blockchain
- [ ] Balance updated
**Transaction Hash:** [HASH]
### Test 3: Sign Message
- [ ] Message signing triggered
- [ ] Console shows: `[SECURE_SVM_SIGN_MESSAGE] blockchain: x1`
- [ ] Message signed successfully
### Test 4: Solana Compatibility
- [ ] Switched to Solana blockchain
- [ ] SOL transaction initiated
- [ ] Console shows: `[SECURE_SVM_SIGN_TX] blockchain: solana`
- [ ] Transaction completed successfully
### Issues Encountered
[Describe any issues]
### Overall Result
- [ ] PASS - All tests successful
- [ ] FAIL - Issues found (describe above)- Document successful test results
- Remove console.log statements (optional for production)
- Consider deploying to production
- Monitor for any user reports
- Document exact error messages
- Capture console output
- Check which test failed
- Review the relevant handler code
- Report findings with:
- Test that failed
- Console output
- Error message
- Steps to reproduce
- Console logs are for debugging only and can be removed in production
- The
?? Blockchain.SOLANAfallback ensures backwards compatibility - All three handlers (sign, signMessage, signAll) were updated for completeness
- X1 uses the same signing mechanism as Solana (SVM-compatible)
If you encounter issues:
- Check the console logs first
- Verify version 0.10.37 is loaded
- Review troubleshooting section above
- Check
X1_KEYRING_FIX_SUMMARY.mdfor technical details
Version: 0.10.37 Build Location: ~/Desktop/backpack-extension Documentation: X1_KEYRING_FIX_SUMMARY.md