STATUS: ✅ PRODUCTION SUPPORTED - RECOMMENDED FOR ALL USERS
- TYPE: MOBILE & DESKTOP APP (IOS, ANDROID, WINDOWS, MAC, LINUX)
- CONNECTION METHOD: QR CODE SCANNING + DEEP LINKING + PUSH NOTIFICATIONS
- DOWNLOAD: https://xaman.app
- FEATURES:
- ✅ MOST SECURE OPTION (PRIVATE KEYS NEVER LEAVE DEVICE)
- ✅ WORKS ON ANY DEVICE WITH CAMERA (QR CODE)
- ✅ DEEP LINKING FOR SEAMLESS MOBILE EXPERIENCE
- ✅ PUSH NOTIFICATIONS FOR TRANSACTION REQUESTS
- ✅ NO BROWSER EXTENSION REQUIRED
- ✅ BEST FOR MOBILE-FIRST AND DESKTOP WORKFLOWS
- ✅ ENTERPRISE-GRADE SECURITY
- ✅ OFFICIAL XRPL FOUNDATION SUPPORTED
HOW TO CONNECT:
MOBILE USERS (RECOMMENDED):
- INSTALL XAMAN APP ON YOUR MOBILE DEVICE (IOS/ANDROID)
- CREATE OR IMPORT YOUR WALLET IN XAMAN
- OPEN XAH PAYROLL IN YOUR MOBILE BROWSER
- CLICK "CONNECT WALLET" → SELECT "XAMAN (XUMM)"
- TAP "OPEN XAMAN APP" BUTTON (AUTOMATICALLY LAUNCHES XAMAN)
- APPROVE THE SIGN-IN REQUEST IN XAMAN
- ✅ CONNECTED - READY TO USE XAH PAYROLL
DESKTOP USERS:
- INSTALL XAMAN APP ON YOUR MOBILE DEVICE OR DESKTOP
- CREATE OR IMPORT YOUR WALLET IN XAMAN
- CLICK "CONNECT WALLET" ON XAH PAYROLL WEBSITE
- OPTION A (MOBILE APP): SCAN THE QR CODE WITH YOUR XAMAN MOBILE APP
- OPTION B (DESKTOP APP): CLICK "OPEN XAMAN IN NEW TAB" TO USE DEEP LINK
- APPROVE THE SIGN-IN REQUEST IN XAMAN
- ✅ CONNECTED - READY TO USE XAH PAYROLL
STATUS:
- TYPE: DIRECT WALLET ADDRESS/SEED INPUT
- CONNECTION METHOD: MANUAL ENTRY
- USE CASE: DEVELOPMENT, TESTING, DEBUGGING
- FEATURES:
⚠️ REQUIRES MANUAL SEED/ADDRESS INPUT⚠️ LESS SECURE THAN XAMAN (SEED EXPOSURE RISK)⚠️ NO QR CODE OR MOBILE APP⚠️ MANUAL TRANSACTION SIGNING⚠️ INTENDED FOR DEVELOPERS ONLY
SECURITY WARNING: 🚨 NEVER USE MANUAL MODE WITH REAL FUNDS OR PRODUCTION MAINNET WALLETS 🚨 ONLY FOR TESTNET DEVELOPMENT AND DEBUGGING
Decision Rationale (2025-12-30):
-
SECURITY EXCELLENCE:
- Xaman provides enterprise-grade key management
- Hardware security module (HSM) support
- Biometric authentication (Face ID, Touch ID, fingerprint)
- No private key exposure
-
OFFICIAL XRPL SUPPORT:
- Maintained by XRPL Labs (official XRPL Foundation partner)
- Regular security audits
- Active development and updates
- Direct access to XRPL core team support
-
SUPERIOR USER EXPERIENCE:
- QR code scanning for instant connection
- Deep linking for seamless desktop experience
- Push notifications for transaction requests
- In-app transaction approval with detailed review
- Multi-platform support (iOS, Android, Windows, Mac, Linux)
-
REDUCED COMPLEXITY:
- Single wallet integration = easier maintenance
- Consistent user experience across all platforms
- Faster bug fixes and feature development
- Better testing coverage
-
PRODUCTION RELIABILITY:
- Proven track record with enterprise clients
- 99.9%+ uptime SLA
- Robust error handling
- Comprehensive logging and debugging
THE FRONTEND USES A UNIFIED WALLETCONTEXT THAT HANDLES XAMAN WALLET OPERATIONS:
// Wallet providers supported
type WalletProvider = 'xaman' | 'manual' // Manual for testing only
// Connection flow
const { connectWallet, disconnectWallet, walletAddress, balance } = useWallet()
// Connect to Xaman wallet (Production)
await connectWallet('xaman') // QR code + deep linking flow
// Manual mode (Testing only - DO NOT USE IN PRODUCTION)
await connectWallet('manual') // Direct seed/address inputTHE APP AUTOMATICALLY HANDLES XAMAN WALLET AVAILABILITY:
- XAMAN: ALWAYS AVAILABLE (USES QR CODE, NO INSTALLATION CHECK NEEDED)
- QR CODE FALLBACK: WORKS ON ANY DEVICE EVEN WITHOUT XAMAN INSTALLED
- DEEP LINKING: AUTOMATICALLY OPENS XAMAN APP ON MOBILE DEVICES
- PUSH NOTIFICATIONS: SENDS TRANSACTION REQUESTS DIRECTLY TO XAMAN APP
{
"xrpl": "^3.0.0", // Core XRPL library
"xumm-sdk": "^1.11.2" // Xaman (XUMM) SDK for wallet integration
}SIGN-IN FLOW:
User clicks "Connect Wallet"
↓
Frontend: POST /api/xaman/create-signin
↓
Backend: Create Xaman sign-in payload
↓
Frontend: Display QR code + deep link
↓
User: Scan QR or click deep link
↓
Xaman App: User approves sign-in
↓
Frontend: Poll /api/xaman/payload/:uuid
↓
Backend: Verify signature from Xaman
↓
Frontend: Extract wallet address + create session
↓
✅ AUTHENTICATED
TRANSACTION SIGNING FLOW (Payment Channel Creation/Closure):
User initiates transaction (Create/Close Channel)
↓
Frontend: Prepare XRPL transaction
↓
Frontend: POST /api/xaman/create-payload
↓
Backend: Create Xaman payload with transaction
↓
Frontend: Display QR code + deep link
↓
User: Scan QR or click deep link
↓
Xaman App: Review transaction details
↓
Xaman App: User approves transaction
↓
Frontend: Poll /api/xaman/payload/:uuid
↓
Backend: Receive signed transaction
↓
Frontend: Submit to XRPL ledger
↓
✅ TRANSACTION CONFIRMED
- NO PASSWORDS REQUIRED - AUTHENTICATION IS DONE VIA XAMAN WALLET SIGNATURES
- WALLET ADDRESS = USER ID - EACH WALLET ADDRESS IS UNIQUE
- PROFILE PERSISTENCE - USER PROFILES ARE STORED IN POSTGRESQL DATABASE
- SIGNATURE VERIFICATION - XAMAN PROVIDES CRYPTOGRAPHIC PROOF OF OWNERSHIP
- EMPLOYEE ACCOUNT: FOR WORKERS WHO LOG HOURS AND RECEIVE PAYMENTS
- NGO/EMPLOYER ACCOUNT: FOR ORGANIZATIONS THAT MANAGE WORKERS AND FUND ESCROW
WHY THIS RESTRICTION?
- PREVENTS CONFLICTS IN PAYMENT FLOWS
- ENSURES CLEAR ROLE SEPARATION
- MAINTAINS AUDIT TRAIL INTEGRITY
- SIMPLIFIES DATABASE SCHEMA AND QUERIES
SOLUTION: USE DIFFERENT WALLET ADDRESSES FOR DIFFERENT ROLES.
- CONNECT WALLET → CLICK "CONNECT WITH XAMAN"
- SCAN QR CODE → USE XAMAN APP TO SCAN QR CODE (OR CLICK DEEP LINK ON MOBILE)
- APPROVE SIGN-IN → APPROVE IN XAMAN APP
- PROFILE CHECK → SYSTEM CHECKS IF PROFILE EXISTS
- PROFILE SETUP → IF NEW USER, COMPLETE PROFILE FORM:
- DISPLAY NAME
- ORGANIZATION NAME (FOR NGO/EMPLOYER ONLY)
- EMAIL (OPTIONAL)
- PHONE NUMBER (OPTIONAL)
- ACCOUNT TYPE (EMPLOYEE OR NGO/EMPLOYER)
- TERMS OF SERVICE → ACCEPT TERMS
- DASHBOARD ACCESS → REDIRECTED TO APPROPRIATE DASHBOARD
- CONNECT WALLET → CLICK "CONNECT WITH XAMAN"
- SCAN QR CODE → USE XAMAN APP TO SCAN QR CODE
- APPROVE SIGN-IN → APPROVE IN XAMAN APP
- AUTO-LOGIN → SYSTEM RETRIEVES EXISTING PROFILE
- DASHBOARD ACCESS → AUTOMATICALLY REDIRECTED TO DASHBOARD
- NON-CUSTODIAL: XAH PAYROLL NEVER HAS ACCESS TO PRIVATE KEYS
- XAMAN-CONTROLLED: ALL PRIVATE KEYS MANAGED BY XAMAN APP
- NO KEY STORAGE: PRIVATE KEYS REMAIN IN XAMAN APP (NEVER ON SERVER OR BROWSER)
- HARDWARE SECURITY: XAMAN SUPPORTS HARDWARE WALLETS AND HSM
- BIOMETRIC PROTECTION: OPTIONAL FACE ID/TOUCH ID/FINGERPRINT LOCKS
ALL TRANSACTIONS ARE SIGNED BY XAMAN WALLET:
- APP PREPARES XRPL TRANSACTION
- SENDS TO XAMAN VIA XUMM SDK
- XAMAN DISPLAYS TRANSACTION DETAILS TO USER
- USER REVIEWS AND APPROVES IN XAMAN APP
- XAMAN SIGNS TRANSACTION WITH PRIVATE KEY
- SIGNED TRANSACTION RETURNED TO APP
- APP SUBMITS TO XRPL LEDGER
- CONFIRMATION RECEIVED FROM LEDGER
- WALLET-BASED SESSIONS: NO TRADITIONAL PASSWORDS
- JWT TOKENS: SHORT-LIVED TOKENS FOR API AUTHENTICATION
- AUTO-LOGOUT: SESSIONS EXPIRE ON WALLET DISCONNECTION
- RE-AUTHENTICATION: REQUIRES XAMAN SIGNATURE FOR SENSITIVE OPERATIONS
- SESSION TIMEOUT: 24-HOUR SESSION EXPIRATION FOR SECURITY
QR CODE NOT WORKING:
- ✅ ENSURE XAMAN APP IS INSTALLED ON MOBILE DEVICE
- ✅ CHECK CAMERA PERMISSIONS
- ✅ TRY GENERATING A NEW QR CODE (REFRESH PAGE)
- ✅ ENSURE MOBILE DEVICE HAS INTERNET CONNECTION
- ✅ CHECK IF XAMAN APP IS UP TO DATE
DEEP LINK NOT OPENING XAMAN:
- ✅ ENSURE XAMAN APP IS INSTALLED
- ✅ TRY MANUALLY OPENING XAMAN AND CHECKING "EVENTS" TAB
- ✅ CHECK IF XAMAN IS SET AS DEFAULT HANDLER FOR XUMM:// LINKS
- ✅ RESTART XAMAN APP
"PAYLOAD EXPIRED" ERROR:
- ⏰ XAMAN PAYLOADS EXPIRE AFTER 5 MINUTES
- ✅ REFRESH THE PAGE AND TRY AGAIN
- ✅ COMPLETE THE APPROVAL FASTER NEXT TIME
"CONNECTION TIMEOUT" ERROR:
- 🌐 CHECK YOUR INTERNET CONNECTION
- ✅ ENSURE XAMAN APP HAS INTERNET ACCESS
- ✅ TRY SWITCHING BETWEEN WIFI AND MOBILE DATA
- ✅ CHECK FIREWALL/VPN SETTINGS
"ACCOUNT NOT FOUND" ERROR:
- ℹ️ THIS IS NORMAL FOR NEW TESTNET ACCOUNTS
- ✅ ACCOUNT WILL BE CREATED AFTER FIRST TRANSACTION
- ✅ BALANCE WILL SHOW AS 0 UNTIL FUNDED
- ✅ FOR MAINNET: ENSURE ACCOUNT HAS MINIMUM 10 XAH RESERVE
"ACCOUNT NOT ACTIVATED" ERROR (PAYMENT CHANNEL CREATION):
⚠️ WORKER WALLET MUST BE ACTIVATED ON LEDGER BEFORE CREATING PAYMENT CHANNEL- ✅ SEND 10-20 XAH TO WORKER WALLET TO ACTIVATE
- ✅ WAIT FOR LEDGER CONFIRMATION (3-5 SECONDS)
- ✅ TRY CREATING PAYMENT CHANNEL AGAIN
"CONNECTION REJECTED":
- 🚫 USER DECLINED CONNECTION IN XAMAN APP
- ✅ TRY CONNECTING AGAIN AND APPROVE THE REQUEST
- ✅ CHECK XAMAN "EVENTS" TAB FOR PENDING REQUESTS
"WALLET ALREADY REGISTERED AS [TYPE]":
⚠️ THIS WALLET IS ALREADY USED FOR A DIFFERENT ACCOUNT TYPE- ✅ USE A DIFFERENT WALLET ADDRESS
- ❌ CANNOT SWITCH BETWEEN EMPLOYEE AND NGO/EMPLOYER TYPES
- 💡 SOLUTION: CREATE A NEW WALLET IN XAMAN FOR THE OTHER ROLE
- USE TESTNET FIRST: TEST WITH TESTNET XAH BEFORE USING REAL FUNDS
- BACKUP WALLET: ALWAYS BACKUP YOUR XAMAN WALLET SEED/RECOVERY PHRASE
- VERIFY TRANSACTIONS: ALWAYS REVIEW TRANSACTION DETAILS IN XAMAN BEFORE APPROVING
- SEPARATE WALLETS: USE DIFFERENT XAMAN WALLETS FOR EMPLOYEE VS NGO/EMPLOYER ROLES
- KEEP XAMAN UPDATED: REGULARLY UPDATE XAMAN APP FROM OFFICIAL SOURCES
- ENABLE BIOMETRICS: USE FACE ID/TOUCH ID FOR ADDED SECURITY
- NEVER SHARE SEED: NEVER SHARE YOUR XAMAN SEED PHRASE WITH ANYONE
- ERROR HANDLING: ALWAYS HANDLE XAMAN CONNECTION ERRORS GRACEFULLY
- USER FEEDBACK: SHOW CLEAR LOADING STATES DURING WALLET OPERATIONS
- NETWORK DETECTION: DETECT AND DISPLAY CURRENT NETWORK (TESTNET/MAINNET)
- TRANSACTION VALIDATION: VALIDATE TRANSACTIONS BEFORE SENDING TO XAMAN
- LOGOUT CLEANUP: PROPERLY DISCONNECT WALLET ON LOGOUT
- PAYLOAD EXPIRATION: HANDLE EXPIRED PAYLOADS WITH USER-FRIENDLY MESSAGES
- POLLING OPTIMIZATION: USE EFFICIENT POLLING FOR PAYLOAD STATUS
- DEEP LINK TESTING: TEST DEEP LINKS ON BOTH MOBILE AND DESKTOP
FOR USERS WHO PREVIOUSLY USED CROSSMARK OR GEMWALLET:
- ✅ INSTALL XAMAN APP: DOWNLOAD FROM https://xaman.app
- ✅ IMPORT YOUR WALLET: USE YOUR EXISTING WALLET SEED PHRASE TO IMPORT INTO XAMAN
- ✅ CONNECT WITH XAMAN: USE THE NEW XAMAN CONNECTION FLOW
- ✅ VERIFY PROFILE: YOUR PROFILE IS TIED TO WALLET ADDRESS, SO IT REMAINS THE SAME
- ✅ RESUME WORK: ALL PAYMENT CHANNELS, WORK SESSIONS, AND HISTORY ARE PRESERVED
IMPORTANT NOTES:
⚠️ YOUR WALLET ADDRESS STAYS THE SAME (PROFILE, CHANNELS, HISTORY INTACT)⚠️ ONLY THE CONNECTION METHOD CHANGES (NOW XAMAN INSTEAD OF CROSSMARK/GEMWALLET)- ✅ NO DATA LOSS OR MIGRATION REQUIRED
- ✅ IMPROVED SECURITY WITH XAMAN'S ENTERPRISE-GRADE FEATURES
HAVE QUESTIONS OR ISSUES?
- 📧 OPEN AN ISSUE ON GITHUB
- 💬 JOIN OUR COMMUNITY DISCORD
- 📖 READ XAMAN DOCUMENTATION: https://xumm.readme.io/
FEATURE REQUESTS:
- WE WELCOME FEEDBACK ON WALLET INTEGRATION
- SUGGEST IMPROVEMENTS VIA GITHUB ISSUES
- XAMAN DOCUMENTATION: https://xumm.readme.io/
- XAMAN DOWNLOAD: https://xaman.app
- XRPL DOCUMENTATION: https://xrpl.org/docs
- XAH PAYROLL GITHUB: https://github.com/your-org/xahpayroll
- XAHAU NETWORK: https://docs.xahau.network/
LAST UPDATED: 2026-01-02 VERSION: 2.0.0 BREAKING CHANGE: REMOVED CROSSMARK AND GEMWALLET SUPPORT (AS OF 2025-12-30)