{"id":30,"date":"2026-03-31T16:36:29","date_gmt":"2026-03-31T16:36:29","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=30"},"modified":"2026-05-13T10:45:16","modified_gmt":"2026-05-13T10:45:16","slug":"ownership","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/ownership\/","title":{"rendered":"Ownership"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n    <title>Adase Ads Ltd \u2013 Share Certificate &#038; SMM Hub<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:wght@400;500;600;700&#038;family=Alex+Brush&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\n    <style>\n        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; }\n        body { background: #eef2f5; padding: 20px; }\n        .main-container { max-width: 1400px; margin: 0 auto; background: white; border-radius: 28px; box-shadow: 0 25px 45px -12px rgba(0,0,0,0.2); overflow: hidden; }\n        .global-ticker-wrap { background: #0a0f2c; padding: 0.6rem 0; overflow: hidden; white-space: nowrap; border-bottom: 2px solid #f5c542; border-top: 2px solid #f5c542; }\n        .global-ticker { display: inline-block; animation: scrollTicker 38s linear infinite; }\n        .global-ticker-item { display: inline-block; background: #1a2349; margin-right: 1.8rem; padding: 0.3rem 1.2rem; border-radius: 40px; font-size: 0.8rem; color: #f0eef7; font-weight: 500; }\n        .global-ticker-item.buy { background: #1f6032; border-left: 3px solid #f5c542; }\n        @keyframes scrollTicker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }\n        .tabs { display: flex; flex-wrap: wrap; background: #f8fafc; border-bottom: 1px solid #e2edf2; }\n        .tab-btn { flex: 1; background: none; border: none; padding: 15px 12px; font-size: 0.85rem; font-weight: 700; cursor: pointer; transition: 0.2s; color: #1e2a3e; letter-spacing: -0.2px; }\n        .tab-btn:hover { background: #eef2ff; color: #0f2b3d; }\n        .tab-btn.active { background: white; color: #b8860b; border-bottom: 3px solid #b8860b; }\n        .tab-content { display: none; background: white; padding: 32px 38px; }\n        .tab-content.active { display: block; }\n        @media (max-width: 780px) { .tab-content { padding: 20px; } .tab-btn { padding: 10px 6px; font-size: 0.7rem; } }\n        .btn-sm { padding: 8px 22px; border-radius: 60px; font-weight: 600; font-size: 0.85rem; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: 0.2s; }\n        .btn-primary { background: linear-gradient(105deg, #1e3c72, #2a5298); color: white; box-shadow: 0 4px 8px rgba(0,0,0,0.05); }\n        .btn-lemon { background: #f5c542; color: #1a2c3e; font-weight: 700; }\n        .card { background: rgba(255,255,255,0.96); border-radius: 32px; padding: 28px; margin-bottom: 28px; border: 1px solid #e9edf2; box-shadow: 0 12px 28px -8px rgba(0,0,0,0.05); }\n        .flex-between { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }\n        .badge { background: linear-gradient(135deg, #eef2ff, #fae8d2); color: #7b4b0e; padding: 6px 14px; border-radius: 60px; font-size: 0.75rem; font-weight: 700; }\n        input, select, textarea { width: 100%; padding: 12px 20px; border-radius: 40px; border: 1px solid #cfdfed; background: white; font-size: 0.9rem; margin: 8px 0 14px; outline: none; transition: 0.2s; }\n        input:focus { border-color: #b8860b; box-shadow: 0 0 0 3px rgba(184,134,11,0.1); }\n        table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }\n        th, td { padding: 14px 12px; text-align: left; border-bottom: 1px solid #eef2ff; }\n        .footer { margin-top: 60px; padding: 40px 0 30px; border-top: 1px solid rgba(100,80,50,0.2); text-align: center; background: #fefaf5; border-radius: 40px 40px 0 0; }\n        \n        \/* SHARE CERTIFICATE INTERNATIONAL DESIGN *\/\n        .certificate-gold {\n            background: linear-gradient(145deg, #fffef7 0%, #fff9e8 100%);\n            border: 12px double #d4af37;\n            border-radius: 28px;\n            padding: 28px 32px;\n            position: relative;\n            box-shadow: 0 25px 40px -12px rgba(0,0,0,0.2);\n            font-family: 'Cormorant Garamond', serif;\n        }\n        .certificate-watermark {\n            position: relative;\n            background: url('data:image\/svg+xml;utf8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 100 100\"><path fill=\"rgba(212,175,55,0.04)\" d=\"M50,15 L62,35 L85,38 L68,55 L72,78 L50,67 L28,78 L32,55 L15,38 L38,35 Z\"\/><\/svg>') repeat;\n            background-size: 80px;\n        }\n        .cert-seal {\n            position: absolute;\n            bottom: 35px;\n            right: 35px;\n            width: 110px;\n            height: 110px;\n            background: radial-gradient(circle, #f3e5ab, #e6d5a8);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 1.5rem;\n            font-weight: 800;\n            color: #1e3c72;\n            border: 3px solid #1e3c72;\n            box-shadow: 0 4px 12px rgba(0,0,0,0.2);\n            font-family: 'Inter', sans-serif;\n            transform: rotate(-5deg);\n            background: #fef7e0;\n            letter-spacing: 1px;\n        }\n        .cert-title {\n            font-size: 2.7rem;\n            font-weight: 800;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            color: #b8860b;\n            text-align: center;\n            border-bottom: 2px solid #e5c687;\n            display: inline-block;\n            width: auto;\n            padding-bottom: 8px;\n            margin-bottom: 20px;\n            font-family: 'Cormorant Garamond', serif;\n        }\n        .cert-sub {\n            font-size: 1rem;\n            text-align: center;\n            font-variant: small-caps;\n            letter-spacing: 1px;\n        }\n        .cert-rect {\n            background: #fffbf0;\n            margin: 25px 0;\n            padding: 25px 20px;\n            border-radius: 20px;\n            border: 1px solid #e9d6a3;\n        }\n        .share-detail {\n            font-family: 'Inter', sans-serif;\n            background: rgba(212,175,55,0.08);\n            padding: 12px 18px;\n            border-radius: 60px;\n            font-weight: 600;\n        }\n        .signature-area {\n            display: flex;\n            justify-content: space-between;\n            margin-top: 40px;\n            gap: 40px;\n            flex-wrap: wrap;\n        }\n        .sign-line { border-top: 1px solid #8b7a4b; width: 220px; margin-top: 30px; padding-top: 8px; font-size: 0.75rem; text-align: center; color: #5a4a2a; }\n        .print-btn { background: #2d2b26; color: #ffeaac; border: none; border-radius: 60px; padding: 10px 24px; font-weight: 600; cursor: pointer; transition: 0.2s; }\n        .cert-number-code { font-family: monospace; background: #fdf3df; padding: 6px 16px; border-radius: 60px; display: inline-block; }\n        @media print {\n            body { background: white; padding: 0; }\n            .tabs, .global-ticker-wrap, .tab-btn, .footer, .btn-sm, .btn-primary, .print-btn { display: none; }\n            .tab-content { display: block !important; padding: 0; }\n            .certificate-gold { box-shadow: none; border: 2px solid #b8860b; }\n        }\n        .coin-logo { width: 55px; height: 55px; background: radial-gradient(circle at 30% 35%, #f9d976, #c9992e); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 0.8rem; text-align: center; border: 2px solid #b8860b; }\n        .investor-note { background: #eef2ff; border-left: 5px solid #1e3c72; padding: 12px 20px; border-radius: 20px; margin-top: 20px; font-size: 0.9rem; }\n    <\/style>\n<\/head>\n<body>\n<div class=\"main-container\">\n    <div class=\"global-ticker-wrap\"><div class=\"global-ticker\" id=\"globalTickerStrip\"><\/div><\/div>\n\n    <div class=\"tabs\">\n        <button class=\"tab-btn active\" data-tab=\"smm\">\ud83d\udcf1 SMM Platform<\/button>\n        <button class=\"tab-btn\" data-tab=\"cert\">\ud83d\udcdc Share Certificate<\/button>\n        <button class=\"tab-btn\" data-tab=\"register\">\ud83d\udcd8 Register of Members<\/button>\n        <button class=\"tab-btn\" data-tab=\"transfer\">\ud83d\udd04 Share Transfer Form<\/button>\n        <button class=\"tab-btn\" data-tab=\"allotment\">\ud83d\udcc4 Share Allotment<\/button>\n        <button class=\"tab-btn\" data-tab=\"funding\">\ud83d\ude80 Serie A Funding<\/button>\n    <\/div>\n\n    <!-- SMM Platform Tab (full wallet, admin) -->\n    <div id=\"tab-smm\" class=\"tab-content active\">\n        <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 20px;\">\n            <div class=\"coin-logo\">Adase<br>Ads<\/div>\n            <div><span style=\"font-size:2.4rem; font-weight:800; color:#b8860b;\">Adase<\/span><span style=\"font-size:1.2rem; font-weight:700;\">Ads Ltd<\/span><div style=\"font-size:0.85rem;\">\ud83d\udcb0 Monetizing Africa | SMM Powerhouse<\/div><\/div>\n        <\/div>\n        <div id=\"smmDynamicPanel\">Loading&#8230;<\/div>\n        <div class=\"footer\"><p>\u00a9 2026 Adase Ads Ltd \u2013 Incorporated in Uganda (Reg: 8002026)<\/p><div>\ud83d\udccd Zion Road Plot 12 AAA Close, Kira, Uganda<\/div><p>\ud83d\udce7 shares@adase.co.ug | +256 775036603<\/p><\/div>\n    <\/div>\n\n    <!-- REDESIGNED INTERNATIONAL SHARE CERTIFICATE with new details -->\n    <div id=\"tab-cert\" class=\"tab-content\">\n        <div class=\"certificate-gold certificate-watermark\" id=\"liveCertificate\">\n            <div style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;\">\n                <div><i class=\"fas fa-building\" style=\"font-size: 2rem; color: #b8860b;\"><\/i><\/div>\n                <div class=\"cert-number-code\"><i class=\"far fa-gem\"><\/i> Certificate No: <span id=\"certNumberDisplay\">ADASE-2026-7891<\/span><\/div>\n            <\/div>\n            <div style=\"text-align: center; margin: 15px 0 5px;\">\n                <div class=\"cert-title\">SHARE CERTIFICATE<\/div>\n                <div class=\"cert-sub\">Incorporated under the Companies Act, 2012 (Uganda)<\/div>\n            <\/div>\n            <div class=\"cert-rect\">\n                <p style=\"font-size: 1.2rem; margin-bottom: 15px;\"><strong>THIS CERTIFIES THAT<\/strong><\/p>\n                <p style=\"font-size: 1.8rem; font-weight: 700; font-family: 'Alex Brush', cursive; text-align: center; border-bottom: 1px dashed #cfb87c; display: inline-block; width: 100%;\" id=\"shareholderNameDisplay\">[Shareholder Name]<\/p>\n                <p style=\"margin: 20px 0 15px; font-size: 1.05rem;\">is the registered proprietor of <strong><span id=\"sharesCountDisplay\">1,000<\/span> ( <span id=\"sharesWordsDisplay\">One Thousand<\/span> )<\/strong> fully paid ordinary shares of <strong>UGX 100,000\/-<\/strong> each in<\/p>\n                <h2 style=\"text-align: center; color: #7a590f; font-weight: 800;\">ADASE ADS LIMITED<\/h2>\n                <p style=\"text-align: center;\">subject to the Memorandum and Articles of Association of the Company.<\/p>\n                <div class=\"flex-between\" style=\"margin-top: 25px;\">\n                    <div><span class=\"share-detail\"><i class=\"fas fa-chart-line\"><\/i> Class: Ordinary Shares<\/span><\/div>\n                    <div><span class=\"share-detail\"><i class=\"fas fa-tag\"><\/i> Par Value: UGX 100,000<\/span><\/div>\n                    <div><span class=\"share-detail\"><i class=\"fas fa-calendar-alt\"><\/i> Issue Date: <span id=\"issueDateDisplay\">11 May 2026<\/span><\/span><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"signature-area\">\n                <div><div class=\"sign-line\">_________________________<br><strong>DIRECTOR<\/strong><br>Peter Knox Sengendo<\/div><\/div>\n                <div><div class=\"sign-line\">_________________________<br><strong>COMPANY SECRETARY<\/strong><br>Paul Asaba Muwanguzi<\/div><\/div>\n                <div><div class=\"sign-line\">_________________________<br><strong>REGISTERED OFFICE<\/strong><br>Zion Road Plot 12 AAA Close, Kira, Uganda<\/div><\/div>\n            <\/div>\n            <div class=\"cert-seal\"><i class=\"fas fa-certificate\"><\/i> Adase<\/div>\n        <\/div>\n        \n        <!-- Certificate Customization Panel -->\n        <div class=\"card\" style=\"margin-top: 30px; background: #faf7f0;\">\n            <h4><i class=\"fas fa-pen-fancy\"><\/i> Certificate Details (Update Preview)<\/h4>\n            <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px;\">\n                <div><label>Shareholder Full Name<\/label><input type=\"text\" id=\"certShareholderInput\" placeholder=\"e.g., Adase Holdings Ltd \/ John Okello\" value=\"Adase Holdings Ltd\"><\/div>\n                <div><label>Number of Shares<\/label><input type=\"number\" id=\"certSharesInput\" value=\"2500\" min=\"1\"><\/div>\n                <div><label>Certificate No.<\/label><input type=\"text\" id=\"certNoInput\" value=\"ADASE-2026-7891\"><\/div>\n                <div><label>Issue Date<\/label><input type=\"date\" id=\"certDateInput\" value=\"2026-05-11\"><\/div>\n            <\/div>\n            <div class=\"flex-between\" style=\"margin-top: 16px;\"><button id=\"updateCertBtn\" class=\"btn-primary\"><i class=\"fas fa-sync-alt\"><\/i> Refresh Certificate<\/button><button id=\"printCertificateBtn\" class=\"print-btn\"><i class=\"fas fa-print\"><\/i> Print Certificate (PDF \/ Paper)<\/button><\/div>\n            <div class=\"investor-note\">\n                <i class=\"fas fa-chart-pie\"><\/i> <strong>Capital Structure:<\/strong> Adase Ads Ltd has a total of <strong>1,000,000 registered ordinary shares<\/strong> (par value UGX 100,000 each).  \n                Only <strong>35% (350,000 shares)<\/strong> are currently available for investors. The remaining shares are held by founders and strategic partners.\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div id=\"tab-register\" class=\"tab-content\">\n        <div class=\"card\">\n            <h3>\ud83d\udccb Register of Members (Interactive)<\/h3>\n            <div id=\"membersRegisterPreview\">Loading members&#8230;<\/div>\n            <div class=\"investor-note\" style=\"margin-top: 20px;\">\n                <strong>Issued Share Capital:<\/strong> 1,000,000 Ordinary Shares @ UGX 100,000 each = UGX 100 Billion authorized.<br>\n                <strong>Available for public\/investors:<\/strong> 350,000 shares (35%)\n            <\/div>\n        <\/div>\n    <\/div>\n    <div id=\"tab-transfer\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udd04 Share Transfer Request<\/h3><p>Form for share transfer \u2013 requires board approval. Each share value UGX 100,000.<\/p><input placeholder=\"Transferor Name\"><input placeholder=\"Transferee Name\"><input placeholder=\"Number of Shares\"><button class=\"btn-primary\">Request Transfer<\/button><\/div><\/div>\n    <div id=\"tab-allotment\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udcc4 Board Resolution: Allotment of Shares<\/h3><textarea rows=\"4\">RESOLVED THAT 10,000 New Ordinary Shares of UGX 100,000 each be allotted to strategic investors&#8230;<\/textarea><button class=\"btn-sm btn-primary\">Record Resolution<\/button><\/div><\/div>\n    <div id=\"tab-funding\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\ude80 Serie A Funding Round<\/h3><p>Target: $2.5M | Current commitment: UGX 3.5B (35% of shares taken)<\/p><progress value=\"35\" max=\"100\"><\/progress><div>35% of investor allocation placed<\/div><p>Post-money valuation: UGX 100 Billion<\/p><\/div><\/div>\n<\/div>\n\n<script>\n    \/\/ ========== GLOBAL: TAB SWITCHING ==========\n    const tabs = document.querySelectorAll('.tab-btn');\n    const contents = document.querySelectorAll('.tab-content');\n    function switchTab(tabId) {\n        contents.forEach(c => c.classList.remove('active'));\n        tabs.forEach(b => b.classList.remove('active'));\n        const activeContent = document.getElementById(`tab-${tabId}`);\n        if (activeContent) activeContent.classList.add('active');\n        const activeBtn = Array.from(tabs).find(b => b.dataset.tab === tabId);\n        if (activeBtn) activeBtn.classList.add('active');\n        if (tabId === 'register') {\n            document.getElementById('membersRegisterPreview').innerHTML = `\n                <table style=\"width:100%; margin-top:10px;\">\n                    <thead><tr><th>Shareholder<\/th><th>Shares Held<\/th><th>% of Total<\/th><th>Type<\/th><\/tr><\/thead>\n                    <tbody>\n                        <tr><td>Adase Holdings Ltd (Founder)<\/td><td>500,000<\/td><td>50%<\/td><td>Ordinary<\/td><\/tr>\n                        <tr><td>Peter Knox Sengendo (Director)<\/td><td>100,000<\/td><td>10%<\/td><td>Ordinary<\/td><\/tr>\n                        <tr><td>Paul Asaba Muwanguzi (Secretary)<\/td><td>50,000<\/td><td>5%<\/td><td>Ordinary<\/td><\/tr>\n                        <tr><td>Investor Pool (Series A)<\/td><td>350,000<\/td><td>35%<\/td><td>Ordinary<\/td><\/tr>\n                    <\/tbody>\n                <\/table>\n                <p class=\"badge\" style=\"margin-top:16px;\"><i class=\"fas fa-check-circle\"><\/i> Total issued: 1,000,000 shares (100%)<\/p>\n            `;\n        }\n    }\n    tabs.forEach(btn => btn.addEventListener('click', () => switchTab(btn.dataset.tab)));\n\n    \/\/ ========== SMM PLATFORM (full wallet, admin, no services) ==========\n    (function() {\n        let users = [], ads = [], proofs = [], platformRevenue = 0, sessions = { currentUserId: null };\n        let smmOrders = [], withdrawRequests = [], contacts = [], walletTopups = [], walletTransfers = [];\n\n        function loadData() {\n            users = JSON.parse(localStorage.getItem('adase_users') || '[]');\n            ads = JSON.parse(localStorage.getItem('adase_ads') || '[]');\n            proofs = JSON.parse(localStorage.getItem('adase_proofs') || '[]');\n            platformRevenue = parseFloat(localStorage.getItem('adase_platformRevenue') || '0');\n            smmOrders = JSON.parse(localStorage.getItem('adase_smm_orders') || '[]');\n            withdrawRequests = JSON.parse(localStorage.getItem('adase_withdraw_requests') || '[]');\n            walletTopups = JSON.parse(localStorage.getItem('adase_wallet_topups') || '[]');\n            walletTransfers = JSON.parse(localStorage.getItem('adase_wallet_transfers') || '[]');\n            const adminEmail = \"sales@cashchat.se\", adminPass = \"Justtrade81#\";\n            if (!users.find(u=>u.email===adminEmail && u.role==='admin')) {\n                users = users.filter(u=>u.role!=='admin');\n                users.push({ id: Date.now()+1, name:\"Super Admin\", firstName:\"Super\", lastName:\"Admin\", email:adminEmail, password:adminPass, role:\"admin\", wallet:0, advertiserWallet:0, viewedAds:[], phone:\"\", sponsorCode:\"\", country:\"\", gender:\"\", ageGroup:\"\", walletStatus:\"Active\", accountStatus:\"active\" });\n            }\n            users = users.map(u=>{\n                if(!u.firstName) u.firstName=u.name?.split(' ')[0]||\"\";\n                if(!u.lastName) u.lastName=u.name?.split(' ')[1]||\"\";\n                if(u.phone===undefined) u.phone=\"\";\n                if(u.sponsorCode===undefined) u.sponsorCode=\"\";\n                if(u.country===undefined) u.country=\"\";\n                if(u.gender===undefined) u.gender=\"\";\n                if(u.ageGroup===undefined) u.ageGroup=\"\";\n                if(u.walletStatus===undefined) u.walletStatus=(u.role==='user'?\"Not Active\":\"Active\");\n                if(u.accountStatus===undefined) u.accountStatus=\"active\";\n                if(u.wallet === undefined) u.wallet = 0;\n                return u;\n            });\n            if(users.length===1){\n                users.push({ id:1001, name:\"Demo Advertiser\", firstName:\"Demo\", lastName:\"Advertiser\", email:\"adv@demo.com\", password:\"adv123\", role:\"advertiser\", wallet:50000, advertiserWallet:50000, viewedAds:[], phone:\"+256700000000\", sponsorCode:\"DEMO123\", country:\"Uganda\", gender:\"Male\", ageGroup:\"25-34\", walletStatus:\"Active\", accountStatus:\"active\" });\n                users.push({ id:1002, name:\"Alice Viewer\", firstName:\"Alice\", lastName:\"Viewer\", email:\"alice@view.com\", password:\"view123\", role:\"user\", wallet:1200, advertiserWallet:0, viewedAds:[], phone:\"+256775036603\", sponsorCode:\"\", country:\"Kenya\", gender:\"Female\", ageGroup:\"18-24\", walletStatus:\"Active\", accountStatus:\"active\" });\n                if(!ads.length) ads.push({ id:201, advertiserId:1001, title:\"Cool Sneakers\", type:\"video\", mediaUrl:\"https:\/\/www.w3schools.com\/html\/mov_bbb.mp4\", dailyCostUGX:2000, specialInstructions:\"Upload receipt\", activeUntil:Date.now()+86400000, isActive:true });\n            }\n            saveAll();\n        }\n        function saveAll(){\n            localStorage.setItem('adase_users',JSON.stringify(users));\n            localStorage.setItem('adase_ads',JSON.stringify(ads));\n            localStorage.setItem('adase_proofs',JSON.stringify(proofs));\n            localStorage.setItem('adase_platformRevenue',platformRevenue);\n            localStorage.setItem('adase_smm_orders',JSON.stringify(smmOrders));\n            localStorage.setItem('adase_withdraw_requests',JSON.stringify(withdrawRequests));\n            localStorage.setItem('adase_contacts',JSON.stringify(contacts));\n            localStorage.setItem('adase_wallet_topups',JSON.stringify(walletTopups));\n            localStorage.setItem('adase_wallet_transfers',JSON.stringify(walletTransfers));\n        }\n        function getCurrentUser(){ return sessions.currentUserId ? users.find(u=>u.id===sessions.currentUserId) : null; }\n        function updatePlatformRevenue(amt){ platformRevenue=Math.max(0,platformRevenue+amt); saveAll(); }\n        let dynamicPanel, globalUserArea;\n        function renderApp(){\n            dynamicPanel = document.getElementById('smmDynamicPanel');\n            if(!sessions.currentUserId) renderModernHomepage();\n            else{\n                let user=getCurrentUser();\n                if(!user || ['suspended','banned'].includes(user.accountStatus)){ sessions.currentUserId=null; renderModernHomepage(); return; }\n                if(user.role==='advertiser') renderAdvertiserDashboard(user);\n                else if(user.role==='user') renderUserDashboard(user);\n                else if(user.role==='admin') renderAdminPanel(user);\n                else renderModernHomepage();\n            }\n            renderGlobalNav();\n            if (sessions.currentUserId) localStorage.setItem('adase_current_user_id', sessions.currentUserId);\n            else localStorage.removeItem('adase_current_user_id');\n        }\n        function renderModernHomepage() {\n            dynamicPanel.innerHTML = `<div style=\"text-align:center; background:linear-gradient(135deg,#1e3c72,#2a5298); border-radius:32px; padding:60px 40px; color:white; margin-bottom:40px;\"><h1 style=\"font-size:3rem;\">Adase Ads SMM Platform<\/h1><p style=\"font-size:1.2rem;\">The leading digital advertising & SMM ecosystem in Africa.<\/p><button class=\"btn-primary\" id=\"homeGetStartedBtn\" style=\"padding:14px 40px; font-size:1rem;\">Get Started \u2192<\/button><\/div>\n            <div style=\"display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:30px; margin:50px 0;\"><div class=\"card\" style=\"text-align:center;\"><i class=\"fas fa-bolt fa-2x\" style=\"color:#b8860b;\"><\/i><h3>Fast Campaigns<\/h3><p>Instant ad delivery<\/p><\/div><div class=\"card\" style=\"text-align:center;\"><i class=\"fas fa-shield-alt fa-2x\" style=\"color:#84cc16;\"><\/i><h3>Secure Wallet<\/h3><p>MTN MoMo, Airtel, M-Pesa<\/p><\/div><div class=\"card\" style=\"text-align:center;\"><i class=\"fas fa-chart-line fa-2x\" style=\"color:#1e3c72;\"><\/i><h3>Real-time Stats<\/h3><p>Track ad performance<\/p><\/div><div class=\"card\" style=\"text-align:center;\"><i class=\"fas fa-headset fa-2x\" style=\"color:#8b5cf6;\"><\/i><h3>24\/7 Support<\/h3><p>Always ready<\/p><\/div><\/div>`;\n            document.getElementById('homeGetStartedBtn')?.addEventListener('click', showLoginForm);\n        }\n        function renderGlobalNav(){\n            const topDiv = document.querySelector('#tab-smm > div:first-child');\n            if(topDiv && !document.getElementById('globalUserArea')) {\n                topDiv.insertAdjacentHTML('beforeend', '<div id=\"globalUserArea\" style=\"margin-left:auto; display:flex; gap:10px;\"><\/div>');\n            }\n            const container = document.getElementById('globalUserArea');\n            if(!container) return;\n            if(!sessions.currentUserId) container.innerHTML=`<button class=\"btn-sm btn-primary\" id=\"showLoginBtn\">Login<\/button><button class=\"btn-sm btn-lemon\" id=\"showRegisterBtn\">Register<\/button>`;\n            else{\n                let user=getCurrentUser();\n                container.innerHTML=`<span style=\"background:#f0f4fe; padding:6px 14px; border-radius:60px;\">\ud83d\udc4b ${user.name} | \ud83d\udcb0 ${user.wallet.toLocaleString()} UGX<\/span><button class=\"btn-sm\" id=\"logoutBtn\">Logout<\/button>`;\n            }\n            document.getElementById('showLoginBtn')?.addEventListener('click', showLoginForm);\n            document.getElementById('showRegisterBtn')?.addEventListener('click', showRegisterForm);\n            document.getElementById('logoutBtn')?.addEventListener('click', ()=>{ sessions.currentUserId=null; renderApp(); });\n        }\n        function showLoginForm(){\n            dynamicPanel.innerHTML=`<div class=\"card\" style=\"max-width:500px;margin:auto;\"><h2>Login<\/h2><label>Email<\/label><input id=\"loginEmail\"><label>Password<\/label><input id=\"loginPass\" type=\"password\"><button class=\"btn-primary\" id=\"doLoginBtn\">Login<\/button><p>Demo: adv@demo.com \/ adv123 | alice@view.com \/ view123<\/p><\/div>`;\n            document.getElementById('doLoginBtn')?.addEventListener('click',()=>{\n                let email=document.getElementById('loginEmail').value, pwd=document.getElementById('loginPass').value;\n                let user=users.find(u=>u.email===email && u.password===pwd);\n                if(user && user.accountStatus==='active'){ sessions.currentUserId=user.id; renderApp(); }\n                else alert(\"Invalid credentials\");\n            });\n        }\n        function showRegisterForm(){\n            dynamicPanel.innerHTML=`<div class=\"card\"><h2>Register<\/h2><select id=\"regRole\"><option value=\"user\">Viewer<\/option><option value=\"advertiser\">Advertiser<\/option><\/select>\n            <div><input placeholder=\"Full Name\"><input placeholder=\"Email\"><input placeholder=\"Phone\"><\/div>\n            <input type=\"password\" id=\"regPass\" placeholder=\"Password\"><button class=\"btn-primary\" id=\"doRegBtn\">Sign Up<\/button><\/div>`;\n            document.getElementById('doRegBtn').onclick=()=>{ alert(\"Demo registration successful. Use login.\"); showLoginForm(); };\n        }\n        function renderUserDashboard(user){\n            const pendingTopups = walletTopups.filter(t => t.userId === user.id && t.status === 'pending');\n            dynamicPanel.innerHTML = `\n                <div class=\"flex-between\"><h2>User Dashboard<\/h2><span class=\"badge\">\ud83d\udcb0 Wallet: ${user.wallet.toLocaleString()} UGX<\/span><\/div>\n                <div class=\"card\"><h3>\ud83d\udcb3 Wallet Actions<\/h3>\n                    <button id=\"topupWalletBtn\" class=\"btn-primary\">\ud83d\udcb8 Buy Wallet Credit (MTN \/ Airtel \/ M\u2011Pesa)<\/button>\n                    <button id=\"transferWalletBtn\" class=\"btn-lemon\">\ud83d\udd04 Send Money to Another User<\/button>\n                <\/div>\n                <div class=\"card\"><h3>\ud83d\udcdc Your Transaction History<\/h3><div id=\"userOrdersList\"><\/div><\/div>\n                <div class=\"card\"><h3>\u23f3 Pending Top\u2011ups<\/h3><div id=\"userTopupsList\"><\/div><\/div>\n            `;\n            document.getElementById('topupWalletBtn')?.addEventListener('click', () => {\n                let amount = prompt(\"Enter amount (UGX) to top up:\");\n                if(amount && !isNaN(amount) && amount > 0){\n                    let phone = prompt(\"Enter your MTN \/ Airtel \/ M\u2011Pesa phone number:\");\n                    if(phone){\n                        walletTopups.push({ id: Date.now(), userId: user.id, userName: user.name, amount: parseFloat(amount), phone: phone, status: 'pending', date: new Date().toISOString() });\n                        saveAll();\n                        alert(\"Top-up request submitted to admin.\");\n                        renderUserDashboard(user);\n                    }\n                }\n            });\n            document.getElementById('transferWalletBtn')?.addEventListener('click', () => {\n                let targetEmail = prompt(\"Recipient's email address:\");\n                let amount = parseFloat(prompt(\"Amount to send (UGX):\"));\n                if(targetEmail && amount > 0){\n                    let targetUser = users.find(u => u.email === targetEmail);\n                    if(!targetUser) { alert(\"User not found\"); return; }\n                    if(user.wallet < amount) { alert(\"Insufficient wallet balance\"); return; }\n                    user.wallet -= amount;\n                    targetUser.wallet += amount;\n                    walletTransfers.push({ id: Date.now(), fromUserId: user.id, fromName: user.name, toUserId: targetUser.id, toName: targetUser.name, amount: amount, date: new Date().toISOString() });\n                    saveAll();\n                    alert(`Transferred UGX ${amount.toLocaleString()} to ${targetUser.name}`);\n                    renderUserDashboard(user);\n                }\n            });\n            document.getElementById('userOrdersList').innerHTML = \"<p>Ad campaigns & wallet movements displayed here.<\/p><ul><li>Ad purchases will appear after activation<\/li><\/ul>\";\n            const pendingDiv = document.getElementById('userTopupsList');\n            if(pendingTopups.length === 0) pendingDiv.innerHTML = \"<p>No pending top-up requests.<\/p>\";\n            else pendingDiv.innerHTML = pendingTopups.map(t => `<div>UGX ${t.amount.toLocaleString()} via ${t.phone} \u2013 ${t.status}<\/div>`).join('');\n        }\n        function renderAdminPanel(admin){\n            let allUsers = users.filter(u => u.role !== 'admin');\n            const pendingTopups = walletTopups.filter(t => t.status === 'pending');\n            dynamicPanel.innerHTML = `\n                <div class=\"flex-between\"><h2>Admin Console<\/h2><span class=\"badge\">Platform Revenue: UGX ${platformRevenue.toLocaleString()}<\/span><\/div>\n                <div class=\"card\"><h3>Users Management<\/h3><input id=\"searchUser\" placeholder=\"Search\"><button id=\"searchUserBtn\">\ud83d\udd0d<\/button><div><table id=\"usersTable\"><thead><tr><th>ID<\/th><th>Name<\/th><th>Email<\/th><th>Role<\/th><th>Wallet<\/th><th>Action<\/th><\/tr><\/thead><tbody><\/tbody><\/table><\/div><\/div>\n                <div class=\"card\"><h3>\ud83d\udcb0 Pending Wallet Top\u2011ups<\/h3><div id=\"pendingTopupsList\"><\/div><\/div>\n                <div class=\"card\"><h3>\ud83d\udd04 Recent Wallet Transfers<\/h3><div id=\"transfersList\"><\/div><\/div>\n            `;\n            function renderUsersTable(filt=\"\"){\n                let filtered = allUsers.filter(u => u.name.toLowerCase().includes(filt.toLowerCase()) || u.email.toLowerCase().includes(filt.toLowerCase()));\n                let tbody = document.querySelector('#usersTable tbody');\n                if(tbody) tbody.innerHTML = filtered.map(u => `<tr><td>${u.id}<\/td><td>${u.name}<\/td><td>${u.email}<\/td><td>${u.role}<\/td><td>UGX ${u.wallet.toLocaleString()}<\/td><td><button data-action=\"credit\" data-id=\"${u.id}\" class=\"btn-sm\">\ud83d\udcb0 Add Wallet<\/button><\/td>`).join('');\n                document.querySelectorAll('[data-action=\"credit\"]').forEach(btn => btn.addEventListener('click', (e) => {\n                    let id = parseInt(btn.dataset.id);\n                    let target = users.find(u => u.id === id);\n                    let amt = prompt(\"Add UGX to wallet:\");\n                    if(amt && !isNaN(amt)){ target.wallet += parseFloat(amt); saveAll(); renderUsersTable(filt); alert(\"Wallet updated\"); }\n                }));\n            }\n            renderUsersTable();\n            document.getElementById('searchUserBtn')?.addEventListener('click', () => renderUsersTable(document.getElementById('searchUser').value));\n            const pendingDiv = document.getElementById('pendingTopupsList');\n            if(pendingTopups.length === 0) pendingDiv.innerHTML = \"<p>No pending requests<\/p>\";\n            else pendingDiv.innerHTML = pendingTopups.map(t => {\n                let user = users.find(u => u.id === t.userId);\n                return `<div>${user?.name} requested UGX ${t.amount.toLocaleString()} via ${t.phone} <button data-approve=\"${t.id}\" class=\"btn-sm\">Approve<\/button><\/div>`;\n            }).join('');\n            document.querySelectorAll('[data-approve]').forEach(btn => btn.addEventListener('click', (e) => {\n                let tid = parseInt(btn.dataset.approve);\n                let req = walletTopups.find(r => r.id === tid);\n                if(req){\n                    let user = users.find(u => u.id === req.userId);\n                    if(user){ user.wallet += req.amount; req.status = 'approved'; saveAll(); renderAdminPanel(admin); alert(\"Top-up approved\"); }\n                }\n            }));\n            const transfersDiv = document.getElementById('transfersList');\n            transfersDiv.innerHTML = walletTransfers.slice(-10).map(t => `<div>${t.fromName} \u2192 ${t.toName}: UGX ${t.amount.toLocaleString()} on ${new Date(t.date).toLocaleDateString()}<\/div>`).join('');\n        }\n        function renderAdvertiserDashboard(user){\n            let myAds = ads.filter(ad => ad.advertiserId === user.id);\n            dynamicPanel.innerHTML = `<div class=\"flex-between\"><h2>Advertiser Hub<\/h2><span class=\"badge\">\ud83d\udcb0 Wallet: ${user.wallet.toLocaleString()} UGX<\/span><\/div>\n            <div class=\"grid-2\"><div class=\"card\"><h3>Create Ad<\/h3><input id=\"adTitle\" placeholder=\"Title\"><select id=\"adType\"><option>video<\/option><option>audio<\/option><option>banner<\/option><\/select><input id=\"adMedia\" placeholder=\"Media URL\"><textarea id=\"adInstructions\" placeholder=\"Instructions\"><\/textarea><select id=\"dailyCostSelect\"><option value=\"2000\">UGX 2,000<\/option><option value=\"3800\">UGX 3,800<\/option><\/select><button id=\"createAdBtn\" class=\"btn-primary\">Create<\/button><\/div>\n            <div class=\"card\"><h3>Fund Wallet<\/h3><input id=\"fundAmount\" value=\"10000\"><select id=\"payMethod\"><option>MTN MoMo<\/option><option>Airtel Money<\/option><\/select><button id=\"fundWalletBtn\" class=\"btn-primary\">Request Top-up<\/button><hr><h4>My Ads<\/h4><div id=\"advertiserAdsList\"><\/div><\/div><\/div>`;\n            document.getElementById('createAdBtn')?.addEventListener('click',()=>{\n                let title=document.getElementById('adTitle').value, media=document.getElementById('adMedia').value, cost=document.getElementById('dailyCostSelect').value===\"2000\"?2000:3800;\n                if(title && media){\n                    ads.push({id:Date.now(), advertiserId:user.id, title, type:document.getElementById('adType').value, mediaUrl:media, specialInstructions:document.getElementById('adInstructions').value, dailyCostUGX:cost, activeUntil:null, isActive:false});\n                    saveAll(); alert(\"Ad created\"); renderAdvertiserDashboard(user);\n                }\n            });\n            document.getElementById('fundWalletBtn')?.addEventListener('click',()=>{\n                let amt=parseFloat(document.getElementById('fundAmount').value);\n                if(amt>0){\n                    let phone = prompt(\"Enter your MTN \/ Airtel number:\");\n                    if(phone){\n                        walletTopups.push({ id: Date.now(), userId: user.id, userName: user.name, amount: amt, phone: phone, status: 'pending', date: new Date().toISOString() });\n                        saveAll(); alert(\"Top-up request submitted.\"); renderAdvertiserDashboard(user);\n                    }\n                }\n            });\n            const adsDiv = document.getElementById('advertiserAdsList');\n            adsDiv.innerHTML = myAds.map(ad => `<div><strong>${ad.title}<\/strong> - ${ad.isActive && ad.activeUntil>Date.now()?'Active':'Inactive'} <button data-adid=\"${ad.id}\">Activate (${ad.dailyCostUGX} UGX)<\/button><\/div>`).join('');\n            document.querySelectorAll('[data-adid]').forEach(btn=>btn.addEventListener('click',()=>{\n                let adId=parseInt(btn.dataset.adid), ad=ads.find(a=>a.id===adId);\n                if(ad && user.wallet >= ad.dailyCostUGX){\n                    user.wallet -= ad.dailyCostUGX;\n                    ad.isActive=true; ad.activeUntil=Date.now()+86400000;\n                    updatePlatformRevenue(ad.dailyCostUGX);\n                    saveAll(); alert(\"Ad Activated\"); renderAdvertiserDashboard(user);\n                } else alert(\"Insufficient wallet balance\");\n            }));\n        }\n        loadData(); renderApp();\n    })();\n\n    \/\/ Certificate dynamic update\n    function updateCertificateUI() {\n        let name = document.getElementById('certShareholderInput').value || \"Adase Holdings Ltd\";\n        let shares = parseInt(document.getElementById('certSharesInput').value) || 1000;\n        let certNo = document.getElementById('certNoInput').value || \"ADASE-2026-7891\";\n        let dateRaw = document.getElementById('certDateInput').value;\n        let formattedDate = dateRaw ? new Date(dateRaw).toLocaleDateString('en-GB', { day:'numeric', month:'long', year:'numeric' }) : \"11 May 2026\";\n        document.getElementById('shareholderNameDisplay').innerText = name;\n        document.getElementById('sharesCountDisplay').innerText = shares.toLocaleString();\n        let words = `${shares.toLocaleString()} (${shares} Units)`;\n        document.getElementById('sharesWordsDisplay').innerText = words;\n        document.getElementById('certNumberDisplay').innerText = certNo;\n        document.getElementById('issueDateDisplay').innerText = formattedDate;\n    }\n    function printCertificate() { window.print(); }\n    document.getElementById('updateCertBtn')?.addEventListener('click', updateCertificateUI);\n    document.getElementById('printCertificateBtn')?.addEventListener('click', printCertificate);\n    updateCertificateUI();\n\n    \/\/ Ticker\n    const tickerDiv = document.getElementById('globalTickerStrip');\n    if(tickerDiv) tickerDiv.innerHTML = Array(10).fill('<span class=\"global-ticker-item\"><i class=\"fas fa-chart-simple\"><\/i> Adase Ads Ltd - Shares @ UGX 100,000 each | 35% available <\/span><span class=\"global-ticker-item buy\"><i class=\"fas fa-trend-up\"><\/i> Platform Growth +22% <\/span>').join('');\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads Ltd \u2013 Share Certificate &#038; SMM Hub \ud83d\udcf1 SMM Platform \ud83d\udcdc Share Certificate \ud83d\udcd8 Register of Members \ud83d\udd04 Share Transfer Form \ud83d\udcc4 Share Allotment \ud83d\ude80 Serie A Funding AdaseAds AdaseAds Ltd \ud83d\udcb0 Monetizing Africa | SMM Powerhouse Loading&#8230; \u00a9 2026 Adase Ads Ltd \u2013 Incorporated in Uganda (Reg: 8002026) \ud83d\udccd Zion Road Plot [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-30","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":2,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/30\/revisions"}],"predecessor-version":[{"id":173,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/30\/revisions\/173"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}