{"id":329,"date":"2026-03-25T23:09:43","date_gmt":"2026-03-26T04:09:43","guid":{"rendered":"https:\/\/stellardns.io\/?page_id=329"},"modified":"2026-03-25T23:30:00","modified_gmt":"2026-03-26T04:30:00","slug":"send-tokens","status":"publish","type":"page","link":"https:\/\/stellardns.io\/?page_id=329","title":{"rendered":"Send Tokens"},"content":{"rendered":"\n<p class=\"has-luminous-vivid-amber-color has-text-color has-link-color has-medium-font-size wp-elements-4b9b5860b006b873fe8378a93f4b2784\"><strong>*MUST USE MAINNET XLM TO SEND*<\/strong><br><\/p>\n\n\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Stellar DNS<\/title>\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/stellar-sdk\/11.2.2\/stellar-sdk.min.js\"><\/script>\r\n    <style>\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        body {\r\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\r\n            min-height: 100vh;\r\n            color: #333;\r\n        }\r\n\r\n        .container {\r\n            max-width: 1400px;\r\n            margin: 0 auto;\r\n            padding: 20px;\r\n        }\r\n\r\n        .header {\r\n            text-align: center;\r\n            margin-bottom: 40px;\r\n            color: white;\r\n        }\r\n\r\n        .header h1 {\r\n            font-size: 3rem;\r\n            margin-bottom: 10px;\r\n            text-shadow: 2px 2px 4px rgba(0,0,0,0.3);\r\n        }\r\n\r\n        .network-switcher {\r\n            display: flex;\r\n            justify-content: center;\r\n            gap: 15px;\r\n            margin: 20px 0;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .network-btn {\r\n            background: rgba(255, 255, 255, 0.1);\r\n            border: 2px solid rgba(255, 255, 255, 0.2);\r\n            border-radius: 15px;\r\n            padding: 15px 25px;\r\n            color: white;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            font-size: 14px;\r\n        }\r\n\r\n        .network-btn.active {\r\n            background: linear-gradient(45deg, #7b68ee, #00d4ff);\r\n            border-color: #00d4ff;\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        .network-btn:hover {\r\n            transform: scale(1.05);\r\n            border-color: #00d4ff;\r\n        }\r\n\r\n        .main-content {\r\n            display: grid;\r\n            grid-template-columns: 1fr 1fr;\r\n            gap: 30px;\r\n            margin-bottom: 40px;\r\n        }\r\n\r\n        .card {\r\n            background: rgba(255,255,255,0.95);\r\n            border-radius: 16px;\r\n            padding: 30px;\r\n            box-shadow: 0 16px 64px rgba(0,0,0,0.1);\r\n            backdrop-filter: blur(20px);\r\n            border: 1px solid rgba(255,255,255,0.2);\r\n        }\r\n\r\n        .card h2 {\r\n            margin-bottom: 20px;\r\n            color: #4a5568;\r\n            font-size: 1.5rem;\r\n        }\r\n\r\n        .form-group {\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .form-group label {\r\n            display: block;\r\n            margin-bottom: 8px;\r\n            font-weight: 600;\r\n            color: #4a5568;\r\n        }\r\n\r\n        .form-group input, .form-group textarea {\r\n            width: 100%;\r\n            padding: 12px 15px;\r\n            border: 2px solid #e2e8f0;\r\n            border-radius: 8px;\r\n            font-size: 1rem;\r\n            transition: all 0.3s ease;\r\n            background: rgba(255,255,255,0.8);\r\n        }\r\n\r\n        .form-group input:focus, .form-group textarea:focus {\r\n            outline: none;\r\n            border-color: #667eea;\r\n            box-shadow: 0 0 0 3px rgba(102,126,234,0.1);\r\n            background: white;\r\n        }\r\n\r\n        .btn {\r\n            background: linear-gradient(135deg, #667eea, #764ba2);\r\n            color: white;\r\n            border: none;\r\n            padding: 14px 28px;\r\n            border-radius: 8px;\r\n            font-size: 1rem;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            width: 100%;\r\n            margin-top: 10px;\r\n        }\r\n\r\n        .btn:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 8px 24px rgba(102,126,234,0.3);\r\n        }\r\n\r\n        .btn:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n        }\r\n\r\n        .btn-secondary {\r\n            background: linear-gradient(135deg, #718096, #4a5568);\r\n        }\r\n\r\n        .loading {\r\n            display: inline-block;\r\n            width: 20px;\r\n            height: 20px;\r\n            border: 3px solid rgba(255,255,255,0.3);\r\n            border-radius: 50%;\r\n            border-top-color: white;\r\n            animation: spin 1s ease-in-out infinite;\r\n            margin-right: 10px;\r\n        }\r\n\r\n        .status-message {\r\n            padding: 15px;\r\n            border-radius: 8px;\r\n            margin-top: 15px;\r\n            animation: fadeIn 0.3s ease-out;\r\n        }\r\n\r\n        .status-success {\r\n            background: #d4edda;\r\n            color: #155724;\r\n            border: 1px solid #c3e6cb;\r\n        }\r\n\r\n        .status-error {\r\n            background: #f8d7da;\r\n            color: #721c24;\r\n            border: 1px solid #f5c6cb;\r\n        }\r\n\r\n        .network-status {\r\n            background: rgba(255,255,255,0.1);\r\n            border-radius: 12px;\r\n            padding: 20px;\r\n            margin-bottom: 30px;\r\n            color: white;\r\n            text-align: center;\r\n        }\r\n\r\n        .wallet-section {\r\n            background: rgba(255,255,255,0.95);\r\n            border-radius: 16px;\r\n            padding: 30px;\r\n            margin-bottom: 30px;\r\n            box-shadow: 0 16px 64px rgba(0,0,0,0.1);\r\n        }\r\n\r\n        .balance-display {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .balance-amount {\r\n            font-size: 1.5em;\r\n            font-weight: bold;\r\n            color: #667eea;\r\n        }\r\n\r\n        .btn-small {\r\n            background: #667eea;\r\n            color: white;\r\n            border: none;\r\n            padding: 8px 12px;\r\n            border-radius: 4px;\r\n            cursor: pointer;\r\n            font-size: 0.8em;\r\n        }\r\n\r\n        .address-input-group {\r\n            display: flex;\r\n            gap: 10px;\r\n            align-items: center;\r\n        }\r\n\r\n        .wallet-actions {\r\n            display: flex;\r\n            gap: 15px;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .wallet-actions .btn {\r\n            width: auto;\r\n            flex: 1;\r\n            min-width: 150px;\r\n        }\r\n\r\n        @keyframes fadeIn {\r\n            from { opacity: 0; }\r\n            to { opacity: 1; }\r\n        }\r\n\r\n        @keyframes spin {\r\n            to { transform: rotate(360deg); }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .main-content {\r\n                grid-template-columns: 1fr;\r\n            }\r\n            \r\n            .header h1 {\r\n                font-size: 2rem;\r\n            }\r\n            \r\n            .wallet-actions {\r\n                flex-direction: column;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"container\">\r\n        <div class=\"header\">\r\n            <h1>\ud83c\udf1f Stellar DNS<\/h1>\r\n            <p>Real Blockchain Domain Registry on Stellar Network<\/p>\r\n            <p>Create accounts and fund with test XLM using friendbot!<\/p>\r\n            <div class=\"network-switcher\">\r\n                <button class=\"network-btn active\" onclick=\"switchNetwork('testnet')\">\r\n                    \ud83e\uddea Testnet\r\n                <\/button>\r\n                <button class=\"network-btn\" onclick=\"switchNetwork('mainnet')\">\r\n                    \u2b50 Mainnet\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"network-status\" id=\"network-status\">\r\n            <h3>Network Status<\/h3>\r\n            <p id=\"status-text\">Connected to Testnet<\/p>\r\n        <\/div>\r\n\r\n        <!-- Wallet Section -->\r\n        <div class=\"wallet-section\">\r\n            <h2>\ud83d\udd11 Your Wallet<\/h2>\r\n            <div class=\"balance-display\">\r\n                <span class=\"balance-label\">Balance:<\/span>\r\n                <span class=\"balance-amount\" id=\"balanceAmount\">0.00 XLM<\/span>\r\n                <button id=\"refreshBalance\" class=\"btn-small\">\ud83d\udd04<\/button>\r\n            <\/div>\r\n            <div class=\"form-group\">\r\n                <label>Public Address:<\/label>\r\n                <div class=\"address-input-group\">\r\n                    <input type=\"text\" id=\"publicKey\" placeholder=\"No wallet loaded\" readonly>\r\n                    <button id=\"copyAddress\" class=\"btn-small\">Copy<\/button>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"wallet-actions\">\r\n                <button id=\"createWallet\" class=\"btn\">Create New Wallet<\/button>\r\n                <button id=\"importWallet\" class=\"btn btn-secondary\">Import Wallet<\/button>\r\n                <button id=\"fundTestnet\" class=\"btn btn-secondary\">Fund Testnet Account<\/button>\r\n            <\/div>\r\n        <\/div>\r\n    \r\n        <div class=\"main-content\">\r\n            <div class=\"card\">\r\n                <h2>\ud83d\ude80 Send XLM<\/h2>\r\n                <form id=\"sendForm\">\r\n                    <div class=\"form-group\">\r\n                        <label for=\"recipientAddress\">Recipient Address<\/label>\r\n                        <input type=\"text\" id=\"recipientAddress\" placeholder=\"GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\" required>\r\n                    <\/div>\r\n                    <div class=\"form-group\">\r\n                        <label for=\"sendAmount\">Amount (XLM)<\/label>\r\n                        <input type=\"number\" id=\"sendAmount\" step=\"0.0000001\" placeholder=\"e.g., 10.5\" required>\r\n                    <\/div>\r\n                    <div class=\"form-group\">\r\n                        <label for=\"memo\">Memo (optional)<\/label>\r\n                        <input type=\"text\" id=\"memo\" placeholder=\"Memo text (max 28 chars)\" maxlength=\"28\">\r\n                    <\/div>\r\n                    <button type=\"submit\" id=\"sendButton\" class=\"btn\" disabled>Send XLM<\/button>\r\n                    <button type=\"button\" id=\"createAccountButton\" class=\"btn btn-secondary\" disabled>Create Account (Min 1 XLM)<\/button>\r\n                <\/form>\r\n                <div id=\"sendStatus\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ Network configuration\r\n        const NETWORKS = {\r\n            testnet: {\r\n                horizonUrl: 'https:\/\/horizon-testnet.stellar.org',\r\n                networkPassphrase: StellarSdk.Networks.TESTNET,\r\n                friendbotUrl: 'https:\/\/friendbot.stellar.org'\r\n            },\r\n            mainnet: {\r\n                horizonUrl: 'https:\/\/horizon.stellar.org',\r\n                networkPassphrase: StellarSdk.Networks.PUBLIC\r\n            }\r\n        };\r\n\r\n        let currentNetwork = 'testnet';\r\n        let currentWallet = null;\r\n\r\n        \/\/ Switch network\r\n        function switchNetwork(network) {\r\n            currentNetwork = network;\r\n            document.querySelectorAll('.network-btn').forEach(btn => btn.classList.remove('active'));\r\n            event.target.classList.add('active');\r\n            \r\n            document.getElementById('status-text').textContent = `Connected to ${network.charAt(0).toUpperCase() + network.slice(1)}`;\r\n            document.getElementById('fundTestnet').style.display = network === 'testnet' ? 'inline-block' : 'none';\r\n            \r\n            if (currentWallet) {\r\n                loadWalletBalance();\r\n            }\r\n        }\r\n\r\n        \/\/ Create new wallet\r\n        function createNewWallet() {\r\n            currentWallet = StellarSdk.Keypair.random();\r\n            document.getElementById('publicKey').value = currentWallet.publicKey();\r\n            \r\n            const modal = document.createElement('div');\r\n            modal.style.cssText = `\r\n                position: fixed; top: 0; left: 0; width: 100%; height: 100%;\r\n                background: rgba(0,0,0,0.8); display: flex; align-items: center;\r\n                justify-content: center; z-index: 1000;\r\n            `;\r\n            \r\n            modal.innerHTML = `\r\n                <div style=\"background: white; padding: 30px; border-radius: 12px; max-width: 500px; width: 90%;\">\r\n                    <h3 style=\"margin-bottom: 20px; color: #d32f2f;\">\u26a0\ufe0f Save Your Secret Key!<\/h3>\r\n                    <p style=\"margin-bottom: 15px; color: #666;\">\r\n                        This is your secret key. Save it somewhere safe. You'll need it to access your wallet.\r\n                        <strong>Never share this with anyone!<\/strong>\r\n                    <\/p>\r\n                    <div style=\"background: #f0f0f0; padding: 15px; border-radius: 8px; font-family: monospace; word-break: break-all; margin-bottom: 20px; font-size: 0.9em;\">\r\n                        ${currentWallet.secret()}\r\n                    <\/div>\r\n                    <div style=\"display: flex; gap: 10px; justify-content: center;\">\r\n                        <button onclick=\"navigator.clipboard.writeText('${currentWallet.secret()}').then(() => alert('Secret key copied!'))\" \r\n                                style=\"background: #667eea; color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: 600;\">\r\n                            Copy Secret Key\r\n                        <\/button>\r\n                        <button onclick=\"this.closest('div').parentElement.remove()\" \r\n                                style=\"background: #4caf50; color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: 600;\">\r\n                            I've Saved It\r\n                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n            `;\r\n            \r\n            document.body.appendChild(modal);\r\n            loadWalletBalance();\r\n            updateSendButtonState();\r\n            showStatus('success', 'New wallet created! Save your secret key safely.');\r\n        }\r\n\r\n        \/\/ Import wallet\r\n        function importWallet() {\r\n            const modal = document.createElement('div');\r\n            modal.style.cssText = `\r\n                position: fixed; top: 0; left: 0; width: 100%; height: 100%;\r\n                background: rgba(0,0,0,0.8); display: flex; align-items: center;\r\n                justify-content: center; z-index: 1000;\r\n            `;\r\n\r\n            modal.innerHTML = `\r\n                <div style=\"background: white; padding: 30px; border-radius: 12px; max-width: 500px; width: 90%;\">\r\n                    <h3 style=\"margin-bottom: 20px; color: #4a5568;\">Import Wallet<\/h3>\r\n                    <p style=\"margin-bottom: 15px; color: #666; font-size: 0.95em;\">\r\n                        Enter your secret key (starts with S):\r\n                    <\/p>\r\n                    <input type=\"password\" id=\"importSecretKey\"\r\n                           style=\"width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px;\r\n                                  font-family: monospace; font-size: 0.95em; margin-bottom: 20px;\"\r\n                           placeholder=\"SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\">\r\n                    <div style=\"display: flex; gap: 10px; justify-content: flex-end;\">\r\n                        <button onclick=\"this.closest('div').parentElement.remove()\"\r\n                                style=\"background: #ccc; color: #333; border: none; padding: 10px 20px;\r\n                                       border-radius: 6px; cursor: pointer; font-weight: 600;\">\r\n                            Cancel\r\n                        <\/button>\r\n                        <button id=\"confirmImport\"\r\n                                style=\"background: linear-gradient(135deg, #667eea, #764ba2); color: white;\r\n                                       border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: 600;\">\r\n                            Import\r\n                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n            `;\r\n\r\n            document.body.appendChild(modal);\r\n            document.getElementById('importSecretKey').focus();\r\n\r\n            document.getElementById('confirmImport').addEventListener('click', function() {\r\n                const secretKey = document.getElementById('importSecretKey').value.trim();\r\n                if (!secretKey) {\r\n                    alert('Please enter a secret key');\r\n                    return;\r\n                }\r\n\r\n                try {\r\n                    currentWallet = StellarSdk.Keypair.fromSecret(secretKey);\r\n                    document.getElementById('publicKey').value = currentWallet.publicKey();\r\n                    loadWalletBalance();\r\n                    updateSendButtonState();\r\n                    showStatus('success', 'Wallet imported successfully!');\r\n                    modal.remove();\r\n                } catch (error) {\r\n                    alert('Invalid secret key. Please check and try again.');\r\n                }\r\n            });\r\n\r\n            document.getElementById('importSecretKey').addEventListener('keypress', function(e) {\r\n                if (e.key === 'Enter') {\r\n                    document.getElementById('confirmImport').click();\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Fund testnet account\r\n        async function fundTestnetAccount() {\r\n            if (!currentWallet) {\r\n                showStatus('error', 'Please create or import a wallet first');\r\n                return;\r\n            }\r\n\r\n            if (currentNetwork !== 'testnet') {\r\n                showStatus('error', 'Friendbot only works on testnet');\r\n                return;\r\n            }\r\n\r\n            try {\r\n                showStatus('warning', 'Requesting funds from Friendbot...');\r\n                const response = await fetch(`https:\/\/friendbot.stellar.org?addr=${currentWallet.publicKey()}`);\r\n                \r\n                if (response.ok) {\r\n                    showStatus('success', 'Account funded with 10,000 XLM!');\r\n                    setTimeout(() => loadWalletBalance(), 2000);\r\n                } else {\r\n                    showStatus('error', 'Failed to fund account. It may already be funded.');\r\n                }\r\n            } catch (error) {\r\n                showStatus('error', 'Error contacting Friendbot: ' + error.message);\r\n            }\r\n        }\r\n\r\n        \/\/ Load wallet balance\r\n        async function loadWalletBalance() {\r\n            if (!currentWallet) return;\r\n            \r\n            try {\r\n                const network = NETWORKS[currentNetwork];\r\n                const response = await fetch(`${network.horizonUrl}\/accounts\/${currentWallet.publicKey()}`);\r\n                \r\n                if (response.ok) {\r\n                    const data = await response.json();\r\n                    const xlmBalance = data.balances.find(b => b.asset_type === 'native');\r\n                    document.getElementById('balanceAmount').textContent = `${parseFloat(xlmBalance.balance).toFixed(7)} XLM`;\r\n                } else if (response.status === 404) {\r\n                    document.getElementById('balanceAmount').textContent = '0.0000000 XLM (unfunded)';\r\n                }\r\n            } catch (error) {\r\n                document.getElementById('balanceAmount').textContent = 'Error loading balance';\r\n            }\r\n        }\r\n\r\n        \/\/ Update send button state\r\n        function updateSendButtonState() {\r\n            document.getElementById('sendButton').disabled = !currentWallet;\r\n            document.getElementById('createAccountButton').disabled = !currentWallet;\r\n        }\r\n\r\n        \/\/ Show status message\r\n        function showStatus(type, message) {\r\n            document.querySelectorAll('.status-message').forEach(el => el.remove());\r\n            \r\n            const statusDiv = document.createElement('div');\r\n            statusDiv.className = `status-message status-${type}`;\r\n            statusDiv.textContent = message;\r\n            \r\n            const sendStatus = document.getElementById('sendStatus');\r\n            if (sendStatus) {\r\n                sendStatus.innerHTML = '';\r\n                sendStatus.appendChild(statusDiv);\r\n                setTimeout(() => {\r\n                    sendStatus.innerHTML = '';\r\n                }, 5000);\r\n            }\r\n        }\r\n\r\n        \/\/ Send XLM form handler\r\n        document.getElementById('sendForm').addEventListener('submit', async function(e) {\r\n            e.preventDefault();\r\n\r\n            if (!currentWallet) {\r\n                showStatus('error', 'Please create or import a wallet first');\r\n                return;\r\n            }\r\n\r\n            const recipientAddress = document.getElementById('recipientAddress').value.trim();\r\n            const amount = document.getElementById('sendAmount').value;\r\n            const memo = document.getElementById('memo').value.trim();\r\n\r\n            if (!recipientAddress || !amount) {\r\n                showStatus('error', 'Please fill in recipient address and amount');\r\n                return;\r\n            }\r\n\r\n            if (!recipientAddress.startsWith('G') || recipientAddress.length !== 56) {\r\n                showStatus('error', 'Invalid recipient address');\r\n                return;\r\n            }\r\n\r\n            const amountNum = parseFloat(amount);\r\n            if (isNaN(amountNum) || amountNum <= 0) {\r\n                showStatus('error', 'Invalid amount');\r\n                return;\r\n            }\r\n\r\n            const sendButton = document.getElementById('sendButton');\r\n            sendButton.disabled = true;\r\n            sendButton.innerHTML = '<div class=\"loading\"><\/div>Sending...';\r\n\r\n            try {\r\n                const network = NETWORKS[currentNetwork];\r\n                const server = new StellarSdk.Horizon.Server(network.horizonUrl);\r\n\r\n                const account = await server.loadAccount(currentWallet.publicKey());\r\n\r\n                let destinationExists = false;\r\n                try {\r\n                    await server.loadAccount(recipientAddress);\r\n                    destinationExists = true;\r\n                } catch (e) {\r\n                    destinationExists = false;\r\n                }\r\n\r\n                const transactionBuilder = new StellarSdk.TransactionBuilder(account, {\r\n                    fee: StellarSdk.BASE_FEE,\r\n                    networkPassphrase: network.networkPassphrase,\r\n                });\r\n\r\n                if (destinationExists) {\r\n                    transactionBuilder.addOperation(StellarSdk.Operation.payment({\r\n                        destination: recipientAddress,\r\n                        asset: StellarSdk.Asset.native(),\r\n                        amount: amount.toString()\r\n                    }));\r\n                } else {\r\n                    if (amountNum < 1) {\r\n                        throw new Error('Creating a new account requires minimum 1 XLM');\r\n                    }\r\n                    transactionBuilder.addOperation(StellarSdk.Operation.createAccount({\r\n                        destination: recipientAddress,\r\n                        startingBalance: amount.toString()\r\n                    }));\r\n                }\r\n\r\n                if (memo) {\r\n                    transactionBuilder.addMemo(StellarSdk.Memo.id(memo));\r\n                }\r\n\r\n                const transaction = transactionBuilder.setTimeout(300).build();\r\n                transaction.sign(currentWallet);\r\n\r\n                const result = await server.submitTransaction(transaction);\r\n\r\n                showStatus('success', `Transaction successful! Hash: ${result.hash}`);\r\n                document.getElementById('sendForm').reset();\r\n                loadWalletBalance();\r\n\r\n            } catch (error) {\r\n                let errorMessage = 'Transaction failed: ' + error.message;\r\n                showStatus('error', errorMessage);\r\n            } finally {\r\n                sendButton.disabled = false;\r\n                sendButton.innerHTML = 'Send XLM';\r\n            }\r\n        });\r\n\r\n        \/\/ Create account button handler\r\n        document.getElementById('createAccountButton').addEventListener('click', async function() {\r\n            if (!currentWallet) {\r\n                showStatus('error', 'Please create or import a wallet first');\r\n                return;\r\n            }\r\n\r\n            const recipientAddress = document.getElementById('recipientAddress').value.trim();\r\n            const amount = document.getElementById('sendAmount').value;\r\n\r\n            if (!recipientAddress || !amount) {\r\n                showStatus('error', 'Please fill in recipient address and amount');\r\n                return;\r\n            }\r\n\r\n            const amountNum = parseFloat(amount);\r\n            if (isNaN(amountNum) || amountNum < 1) {\r\n                showStatus('error', 'Creating account requires minimum 1 XLM');\r\n                return;\r\n            }\r\n\r\n            this.disabled = true;\r\n            this.innerHTML = '<div class=\"loading\"><\/div>Creating...';\r\n\r\n            try {\r\n                const network = NETWORKS[currentNetwork];\r\n                const server = new StellarSdk.Horizon.Server(network.horizonUrl);\r\n\r\n                let accountExists = false;\r\n                try {\r\n                    await server.loadAccount(recipientAddress);\r\n                    accountExists = true;\r\n                } catch (e) {}\r\n\r\n                if (accountExists) {\r\n                    showStatus('error', 'Account already exists! Use Send XLM instead');\r\n                    this.disabled = false;\r\n                    this.innerHTML = 'Create Account (Min 1 XLM)';\r\n                    return;\r\n                }\r\n\r\n                const account = await server.loadAccount(currentWallet.publicKey());\r\n                const transactionBuilder = new StellarSdk.TransactionBuilder(account, {\r\n                    fee: StellarSdk.BASE_FEE,\r\n                    networkPassphrase: network.networkPassphrase,\r\n                });\r\n\r\n                transactionBuilder.addOperation(StellarSdk.Operation.createAccount({\r\n                    destination: recipientAddress,\r\n                    startingBalance: amount.toString()\r\n                }));\r\n\r\n                const transaction = transactionBuilder.setTimeout(300).build();\r\n                transaction.sign(currentWallet);\r\n                const result = await server.submitTransaction(transaction);\r\n\r\n                showStatus('success', `Account created! Hash: ${result.hash}`);\r\n                document.getElementById('sendForm').reset();\r\n                loadWalletBalance();\r\n\r\n            } catch (error) {\r\n                showStatus('error', 'Failed to create account: ' + error.message);\r\n            } finally {\r\n                this.disabled = false;\r\n                this.innerHTML = 'Create Account (Min 1 XLM)';\r\n            }\r\n        });\r\n\r\n        \/\/ Copy address button\r\n        document.getElementById('copyAddress').addEventListener('click', function() {\r\n            const publicKey = document.getElementById('publicKey').value;\r\n            if (publicKey && publicKey !== 'No wallet loaded') {\r\n                navigator.clipboard.writeText(publicKey).then(() => {\r\n                    showStatus('success', 'Address copied!');\r\n                });\r\n            }\r\n        });\r\n\r\n        \/\/ Refresh balance button\r\n        document.getElementById('refreshBalance').addEventListener('click', loadWalletBalance);\r\n\r\n        \/\/ Wire up wallet buttons\r\n        document.getElementById('createWallet').addEventListener('click', createNewWallet);\r\n        document.getElementById('importWallet').addEventListener('click', importWallet);\r\n        document.getElementById('fundTestnet').addEventListener('click', fundTestnetAccount);\r\n\r\n        \/\/ Initialize\r\n        updateSendButtonState();\r\n    <\/script>\r\n<\/body>\r\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>*MUST USE MAINNET XLM TO SEND*<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-329","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/stellardns.io\/index.php?rest_route=\/wp\/v2\/pages\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stellardns.io\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stellardns.io\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stellardns.io\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stellardns.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=329"}],"version-history":[{"count":4,"href":"https:\/\/stellardns.io\/index.php?rest_route=\/wp\/v2\/pages\/329\/revisions"}],"predecessor-version":[{"id":337,"href":"https:\/\/stellardns.io\/index.php?rest_route=\/wp\/v2\/pages\/329\/revisions\/337"}],"wp:attachment":[{"href":"https:\/\/stellardns.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}