<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Coinbac Docs Blog</title>
        <link>https://doc.coinbac.vip/blog</link>
        <description>Coinbac Docs Blog</description>
        <lastBuildDate>Mon, 10 Aug 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Self-Service Payment Collection & Fund Automation Guide for Non-API Merchants]]></title>
            <link>https://doc.coinbac.vip/blog/fund-automation-tutorial</link>
            <guid>https://doc.coinbac.vip/blog/fund-automation-tutorial</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Step-by-step guide covering wallet registration, sub-contract creation, auto-sweep, and auto-withdrawal configuration]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>Step-by-step guide covering wallet registration, sub-contract creation, auto-sweep, and auto-withdrawal configuration</p>
</blockquote>
<p>This document is designed for non-API merchants. It walks you through generating recharge addresses, setting up prepaid deposits, enabling KYT detection, configuring auto-sweep and auto-withdrawal strategies, and handling blacklisted fund sweeps — all from the admin console without any code integration.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tutorial-objectives">Tutorial Objectives<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#tutorial-objectives" class="hash-link" aria-label="Direct link to Tutorial Objectives" title="Direct link to Tutorial Objectives" translate="no">​</a></h2>
<p>This tutorial guides you through the complete workflow: wallet preparation, admin console login, batch sub-contract creation, prepaid account setup, pollution blocking (KYT) activation, auto-sweep and auto-withdrawal strategy configuration, blacklisted fund sweep setup and withdrawal, a live payment test, and verifying the automated execution results.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prerequisites">Prerequisites<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no">​</a></h2>
<ul>
<li class="">A Web3 decentralized wallet, such as TronLink</li>
<li class="">3 merchant admin wallet addresses</li>
<li class="">1 merchant finance wallet address</li>
<li class="">Corresponding chain assets, e.g. TRC20 USDT</li>
<li class="">Platform invitation code</li>
<li class="">Admin approval required before logging in to the admin console</li>
</ul>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important</div><div class="admonitionContent_BuS1"><p>Admin wallets must NOT be exchange (centralized) wallets. They must be Web3 decentralized wallets that can connect and sign transactions.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="overall-workflow">Overall Workflow<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#overall-workflow" class="hash-link" aria-label="Direct link to Overall Workflow" title="Direct link to Overall Workflow" translate="no">​</a></h2>
<ol>
<li class="">Register or prepare wallets</li>
<li class="">Log in to the admin console</li>
<li class="">Batch-create sub-contract addresses</li>
<li class="">Enable the prepaid account and deposit funds</li>
<li class="">Enable pollution blocking / KYT detection</li>
<li class="">Configure auto-sweep and auto-withdrawal strategies</li>
<li class="">Configure blacklisted fund sweep settings</li>
<li class="">Sweep and withdraw blacklisted funds</li>
<li class="">Complete a test payment using a sub-contract address</li>
<li class="">Verify auto-sweep and auto-withdrawal results</li>
</ol>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="part-1-basic-configuration">Part 1: Basic Configuration<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#part-1-basic-configuration" class="hash-link" aria-label="Direct link to Part 1: Basic Configuration" title="Direct link to Part 1: Basic Configuration" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-register-or-prepare-wallets">1. Register or Prepare Wallets<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#1-register-or-prepare-wallets" class="hash-link" aria-label="Direct link to 1. Register or Prepare Wallets" title="Direct link to 1. Register or Prepare Wallets" translate="no">​</a></h3>
<p>Before using the system, you need a Web3 decentralized wallet and must submit your organization information via the registration page. This tutorial uses a TRC20 standard merchant as an example.</p>
<p>You can use an existing Web3 wallet or create a new one by following the official guide: <a class="" href="https://doc.coinbac.vip/docs/quick-start/create-wallet">Create a Web3 Wallet</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>On the registration page, select the organization type and blockchain network. Fill in the organization name, email, admin wallet address, finance wallet address, and invitation code. Check the agreement box and click <strong>Sign Up</strong> to submit.</p>
<p><img decoding="async" loading="lazy" alt="Registration page screenshot" src="https://doc.coinbac.vip/assets/images/1-3adc76df4359caaa039c6be5cd9b6c32.png" width="860" height="880" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>Both the admin wallet and finance wallet must be Web3 decentralized wallets. Exchange wallet addresses are not accepted.</p></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-log-in-to-the-admin-console">2. Log In to the Admin Console<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#2-log-in-to-the-admin-console" class="hash-link" aria-label="Direct link to 2. Log In to the Admin Console" title="Direct link to 2. Log In to the Admin Console" translate="no">​</a></h3>
<p>Once approved, you can log in to the admin console using an admin wallet.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-1">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-1" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Open the login page, select the blockchain network used during registration (e.g. Tron(TRC20)), click <strong>Connect TronLink Wallet</strong>, and once connected, click <strong>Login</strong> to enter the admin console.</p>
<p><img decoding="async" loading="lazy" alt="Login page screenshot" src="https://doc.coinbac.vip/assets/images/2-5d03b406acd08906061ef4b41c2ef4ea.png" width="745" height="595" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>The chain network selected during login must match the one used during registration, and the admin wallet must be the one that was approved.</p></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-batch-create-sub-contract-addresses">3. Batch-Create Sub-Contract Addresses<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#3-batch-create-sub-contract-addresses" class="hash-link" aria-label="Direct link to 3. Batch-Create Sub-Contract Addresses" title="Direct link to 3. Batch-Create Sub-Contract Addresses" translate="no">​</a></h3>
<p>No code integration is required. You can batch-generate recharge sub-contract addresses directly from the admin console for user deposits and fund collection.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-2">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-2" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Navigate to <strong>Funds → Sub-Contracts</strong>, click <strong>Create</strong>, enter the number of sub-contracts to create (e.g. 10), select <strong>Recharge</strong> as the sub-contract type, and click <strong>Submit</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Create sub-contracts screenshot" src="https://doc.coinbac.vip/assets/images/3-a78119b2c1a534a2b0b0c0e831592993.png" width="1490" height="521" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Enter quantity screenshot" src="https://doc.coinbac.vip/assets/images/4-8ec4a14bd3a5d8c62f3ef2497a2ec4e8.png" width="1604" height="645" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="sweep-methods">Sweep Methods<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#sweep-methods" class="hash-link" aria-label="Direct link to Sweep Methods" title="Direct link to Sweep Methods" translate="no">​</a></h4>
<p>After a sub-contract address receives user deposits, merchants can handle fund sweeping in two ways:</p>
<ol>
<li class=""><strong>Auto-sweep</strong>: Configure auto-sweep rules on the strategy settings page. The system automatically sweeps funds when thresholds are met.</li>
<li class=""><strong>Manual sweep</strong>: Merchants can also manually initiate sweeping from the admin console based on actual fund processing needs.</li>
</ol>
<p>After sweeping, funds move into the cold contract. Merchants can later use auto-withdrawal strategies or manually withdraw to transfer cold contract funds to the finance wallet.</p>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="manual-sweep">Manual Sweep<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#manual-sweep" class="hash-link" aria-label="Direct link to Manual Sweep" title="Direct link to Manual Sweep" translate="no">​</a></h5>
<p>Navigate to <strong>Funds → Sweep</strong> and view the list of sub-contracts with pending sweep balances under the <strong>Pending Sweep</strong> tab.</p>
<p>Select the sub-contracts you want to sweep and click <strong>Bulk Sweep</strong>. The system will prompt a wallet signature request. Once you click <strong>Sign</strong> in your wallet, the sweep transaction is submitted on-chain. Successful sweep records can be found under the <strong>Sweep Records</strong> tab.</p>
<p><img decoding="async" loading="lazy" alt="Sub-contract sweep page" src="https://doc.coinbac.vip/assets/images/5-c83732a2456e52213433d3ddd88ee6f5.png" width="1510" height="793" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Bulk sweep button" src="https://doc.coinbac.vip/assets/images/6-922499a38ef84402466d0680548f61e0.png" width="1491" height="409" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Signature confirmation" src="https://doc.coinbac.vip/assets/images/7-dbd937908ac895575220608f33c7205a.png" width="1785" height="660" class="img_ev3q"></p>
<h5 class="anchor anchorTargetStickyNavbar_Vzrq" id="manual-withdrawal">Manual Withdrawal<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#manual-withdrawal" class="hash-link" aria-label="Direct link to Manual Withdrawal" title="Direct link to Manual Withdrawal" translate="no">​</a></h5>
<p>After a successful sweep, funds enter the cold contract. To withdraw cold contract funds to the finance wallet, navigate to <strong>Asset Details</strong> and click <strong>One-Click Rebalance</strong>, or check the result under <strong>Rebalancing Records</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Asset details" src="https://doc.coinbac.vip/assets/images/8-8dfb7553b9e1c8dc0581814a47163017.png" width="1476" height="816" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="One-click rebalance" src="https://doc.coinbac.vip/assets/images/9-2c6d668eec83ad45bbf7cbfb7145792c.png" width="1794" height="664" class="img_ev3q"></p>
<p>This action transfers cold contract funds to the merchant's finance wallet, which is useful when you need to move swept funds for subsequent operations.</p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><ul>
<li class="">Recharge sub-contract addresses can be provided directly to users for deposits. Collection addresses are mainly for address pool expansion and should not be given to users for deposits.</li>
<li class="">Manual sweeping requires the logged-in admin or finance wallet to have TRX for gas fees.</li>
<li class="">After sweeping, funds enter the cold contract. After withdrawal, funds enter the merchant's finance wallet.</li>
</ul></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-enable-the-prepaid-account-and-deposit-funds">4. Enable the Prepaid Account and Deposit Funds<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#4-enable-the-prepaid-account-and-deposit-funds" class="hash-link" aria-label="Direct link to 4. Enable the Prepaid Account and Deposit Funds" title="Direct link to 4. Enable the Prepaid Account and Deposit Funds" translate="no">​</a></h3>
<p>The prepaid account must be enabled before you can use auto-sweep, auto-withdrawal, and KYT detection features.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-3">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-3" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Navigate to <strong>System Configuration → Strategy Settings → Prepaid Account</strong>. Toggle the prepaid switch on, click <strong>Deposit</strong>, select the deposit network (e.g. Tron(TRC20)), and copy the deposit address or scan the QR code to send USDT. After the deposit is confirmed, refresh the prepaid balance.</p>
<p><img decoding="async" loading="lazy" alt="Strategy settings page" src="https://doc.coinbac.vip/assets/images/10-a1e09ccbd106683f78117d594043b338.png" width="1430" height="291" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Enable prepaid switch" src="https://doc.coinbac.vip/assets/images/11-29b71d2782acdc8c4df6a92c4077c82e.png" width="1445" height="306" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Deposit dialog" src="https://doc.coinbac.vip/assets/images/12-ae10ee699827f9584d27d99f308c0db2.png" width="580" height="651" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>You must enable the prepaid account and complete a deposit before using any auto-strategy. Auto-distribution and auto-refund are extended features — contact the technical team for configuration.</p></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-enable-pollution-blocking--kyt-detection">5. Enable Pollution Blocking / KYT Detection<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#5-enable-pollution-blocking--kyt-detection" class="hash-link" aria-label="Direct link to 5. Enable Pollution Blocking / KYT Detection" title="Direct link to 5. Enable Pollution Blocking / KYT Detection" translate="no">​</a></h3>
<p>Pollution blocking detects whether deposited funds carry risk. When enabled, the KYT detection service is activated. If risky funds are detected, the corresponding recharge sub-contract will be blacklisted for separate handling.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-4">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-4" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Navigate to <strong>System Configuration → Strategy Settings → Sweep Strategy</strong>, set the <strong>Pollution Blocking</strong> switch to <strong>Enabled</strong>, and click <strong>Save Sweeping Strategy</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Pollution blocking switch" src="https://doc.coinbac.vip/assets/images/13-e07aa334322bc6afed1988dd679da075.png" width="1659" height="834" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>You must enable the prepaid account and complete a deposit before enabling pollution blocking. Blacklisted sub-contracts will be excluded from the normal sweep process.</p></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-configure-auto-sweep-and-auto-withdrawal-strategies">6. Configure Auto-Sweep and Auto-Withdrawal Strategies<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#6-configure-auto-sweep-and-auto-withdrawal-strategies" class="hash-link" aria-label="Direct link to 6. Configure Auto-Sweep and Auto-Withdrawal Strategies" title="Direct link to 6. Configure Auto-Sweep and Auto-Withdrawal Strategies" translate="no">​</a></h3>
<p>Auto-sweep collects funds from sub-contracts into the cold contract. Auto-withdrawal transfers funds from the cold contract to the merchant's finance wallet.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-5">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-5" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Navigate to <strong>System Configuration → Strategy Settings</strong>. On the <strong>Sweeping Strategy</strong> tab, set the sweep trigger conditions — for example, sweep when the cumulative balance of all sub-contracts reaches 1,000 USDT, or when a single sub-contract balance exceeds 100 USDT. Switch to the <strong>Rebalancing Strategy</strong> tab and set the cold contract balance trigger — for example, auto-withdraw when the cold contract balance reaches 100 USDT. Save each strategy after configuration.</p>
<p><img decoding="async" loading="lazy" alt="Sweeping strategy configuration" src="https://doc.coinbac.vip/assets/images/14-d7364ff8f5b300ac28e4e1d127efc146.png" width="1666" height="826" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Rebalancing strategy configuration" src="https://doc.coinbac.vip/assets/images/15-616cccf389d30647bbd8609c5d5dbcd2.png" width="1561" height="680" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>Auto-sweep scans every 5 minutes by default; auto-withdrawal scans every 30 minutes. Execution only occurs when balances meet the configured thresholds.</p></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-configure-blacklisted-fund-sweep-settings">7. Configure Blacklisted Fund Sweep Settings<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#7-configure-blacklisted-fund-sweep-settings" class="hash-link" aria-label="Direct link to 7. Configure Blacklisted Fund Sweep Settings" title="Direct link to 7. Configure Blacklisted Fund Sweep Settings" translate="no">​</a></h3>
<p>When the system detects risky funds via KYT, a sub-contract may be blacklisted. Blacklisted sub-contracts are excluded from the normal sweep process. Merchants must configure emergency sweep and emergency rebalancing addresses via multisig to handle these funds separately.</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Function Overview</div><div class="admonitionContent_BuS1"><p>Blacklisted fund sweep moves funds from blacklisted sub-contracts to a designated emergency sweep address. Merchants can later withdraw from the emergency sweep address to an emergency rebalancing address for freezing, auditing, or refund processing.</p></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-6">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-6" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>On the <strong>Edit Configuration Proposal</strong> page, click <strong>Update</strong> to create a multisig parameter change proposal.</p>
<p>Select <strong>Modify Emergency Rebalancing Address</strong> as the multisig type, choose <strong>New</strong> for the address, and click <strong>Submit</strong>. The system will prompt a wallet signature. After the admin completes the signature, the proposal enters a pending approval state.</p>
<p><img decoding="async" loading="lazy" alt="Multisig management page" src="https://doc.coinbac.vip/assets/images/16-c6a40f313d7cc0a8d52e401b8c93d9cc.png" width="1529" height="485" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Modify proposal" src="https://doc.coinbac.vip/assets/images/17-e53afd74122aea4d53ee41c126716dc2.png" width="1435" height="535" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Submit signature" src="https://doc.coinbac.vip/assets/images/18-31a756096b8e2a513f3a84a63cb440ad.png" width="1494" height="555" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="multisig-approval">Multisig Approval<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#multisig-approval" class="hash-link" aria-label="Direct link to Multisig Approval" title="Direct link to Multisig Approval" translate="no">​</a></h4>
<p>After the proposal is submitted, you need to switch to another admin wallet for approval.</p>
<p>Log in with another admin wallet and navigate to: <strong>System Configuration → Multi-Signature Management → Edit Configuration Proposal</strong>. Find the pending proposal, click <strong>Approve</strong>, and complete the signature in your wallet. Once signed, the system continues the on-chain submission and waits for blockchain confirmation.</p>
<p><img decoding="async" loading="lazy" alt="Another admin login" src="https://doc.coinbac.vip/assets/images/19-a9f0ed5d9ab9a6e8fce180c94cd750f0.png" width="1508" height="581" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Navigate to multisig management" src="https://doc.coinbac.vip/assets/images/20-ef020fd805f214add2dd88c1464663bf.png" width="1510" height="565" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Approve proposal" src="https://doc.coinbac.vip/assets/images/21-691f8ace4cf764f6d15bcd3632e9d483.png" width="1444" height="510" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Sign and submit on-chain" src="https://doc.coinbac.vip/assets/images/22-4a070bdf743e2c162a7625d9f5d40933.png" width="1535" height="534" class="img_ev3q"></p>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-sweep-and-withdraw-blacklisted-funds">8. Sweep and Withdraw Blacklisted Funds<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#8-sweep-and-withdraw-blacklisted-funds" class="hash-link" aria-label="Direct link to 8. Sweep and Withdraw Blacklisted Funds" title="Direct link to 8. Sweep and Withdraw Blacklisted Funds" translate="no">​</a></h3>
<p>When a sub-contract is blacklisted due to KYT detection, its funds are excluded from the normal sweep process. Merchants can manually sweep these funds to the emergency sweep address for separate handling.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-7">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-7" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Navigate to: <strong>Funds → Sweep → Blacklist</strong></p>
<p>Select the sub-contracts you want to process in the blacklist and click <strong>Bulk Sweep</strong>. The system will prompt a wallet signature. After the admin completes the signature, the sweep transaction is submitted on-chain.</p>
<p><img decoding="async" loading="lazy" alt="Sub-contract page" src="https://doc.coinbac.vip/assets/images/23-3f78a1b99d6b67ad6bb09592c521a377.png" width="1461" height="624" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Blacklist bulk sweep" src="https://doc.coinbac.vip/assets/images/24-87985b202b4198aa99766dd3c0d6a8aa.png" width="1830" height="574" class="img_ev3q"></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="withdraw-blacklisted-funds">Withdraw Blacklisted Funds<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#withdraw-blacklisted-funds" class="hash-link" aria-label="Direct link to Withdraw Blacklisted Funds" title="Direct link to Withdraw Blacklisted Funds" translate="no">​</a></h4>
<p>After blacklisted sub-contract funds have been swept to the emergency sweep address, merchants can withdraw them to the emergency rebalancing address for further freezing, auditing, or refund processing.</p>
<p>Navigate to: <strong>Asset Details → Emergency Rebalancing</strong></p>
<p>View the emergency sweep address balance and click <strong>One-Click Rebalance</strong>. The system will prompt a wallet signature. After the admin completes the signature, the rebalancing transaction is submitted on-chain.</p>
<p><img decoding="async" loading="lazy" alt="Asset details page" src="https://doc.coinbac.vip/assets/images/25-ecd34bb3845243c07e323829aede0fba.png" width="1460" height="694" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Emergency rebalancing entry" src="https://doc.coinbac.vip/assets/images/26-f3a26b7f2f4b568858722d9569147036.png" width="1660" height="701" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="One-click rebalance" src="https://doc.coinbac.vip/assets/images/27-36ed613b4449eb0cd9ac228795e69a1d.png" width="1739" height="675" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><ul>
<li class="">Blacklisted sub-contract funds are considered high-risk and will not follow the normal sweep process.</li>
<li class="">Before sweeping blacklisted funds, you must configure the emergency sweep address via multisig. Before emergency rebalancing, you must configure the emergency rebalancing address via multisig.</li>
<li class="">Both blacklisted fund sweep and emergency withdrawal require admin wallet signatures and on-chain submission. Verify the source, handling method, and target address before proceeding to avoid errors.</li>
</ul></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="part-2-live-demo">Part 2: Live Demo<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#part-2-live-demo" class="hash-link" aria-label="Direct link to Part 2: Live Demo" title="Direct link to Part 2: Live Demo" translate="no">​</a></h2>
<p>After completing the configuration above, you can run a live payment test to verify that auto-sweep and auto-withdrawal execute correctly.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-complete-a-test-payment-using-a-sub-contract-address">9. Complete a Test Payment Using a Sub-Contract Address<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#9-complete-a-test-payment-using-a-sub-contract-address" class="hash-link" aria-label="Direct link to 9. Complete a Test Payment Using a Sub-Contract Address" title="Direct link to 9. Complete a Test Payment Using a Sub-Contract Address" translate="no">​</a></h3>
<p>Select a created recharge sub-contract address and provide it to a user for payment.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-8">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-8" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>Navigate to <strong>Funds → Sub-Contracts</strong> and copy a recharge sub-contract address. The user can send USDT to this address from a Web3 wallet or exchange. After the transfer, navigate to <strong>Reconciliation → Recharge Report</strong> to view the corresponding deposit order.</p>
<p><img decoding="async" loading="lazy" alt="Sub-contract list" src="https://doc.coinbac.vip/assets/images/28-c48fa5f3b1437bb280bfa21a662ddd03.png" width="1676" height="574" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="User wallet transfer" src="https://doc.coinbac.vip/assets/images/29-c4a21c20b0ddc218b7d293b73e19a848.png" width="435" height="731" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Confirm transfer" src="https://doc.coinbac.vip/assets/images/30-c4a21c20b0ddc218b7d293b73e19a848.png" width="435" height="731" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Recharge report entry" src="https://doc.coinbac.vip/assets/images/31-a957241aaab4e52b0415e0bcbec2b527.png" width="1480" height="621" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Recharge report success page" src="https://doc.coinbac.vip/assets/images/32-951541a3bdd29c2b3789ac66ba91a65b.png" width="1499" height="479" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><ul>
<li class="">The test amount must meet the sweep trigger threshold configured earlier; otherwise, auto-sweep will not be triggered.</li>
<li class="">When transferring from an exchange, make sure to select the correct chain network.</li>
</ul></div></div>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="10-verify-auto-sweep-and-auto-withdrawal-results">10. Verify Auto-Sweep and Auto-Withdrawal Results<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#10-verify-auto-sweep-and-auto-withdrawal-results" class="hash-link" aria-label="Direct link to 10. Verify Auto-Sweep and Auto-Withdrawal Results" title="Direct link to 10. Verify Auto-Sweep and Auto-Withdrawal Results" translate="no">​</a></h3>
<p>After a successful user payment, if the strategy conditions are met, the system will automatically execute sweep and rebalancing.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-9">Instructions<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#instructions-9" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no">​</a></h4>
<p>To check sweep results: navigate to <strong>Funds → Sweep → Sweep Records</strong>. To check rebalance results: navigate to <strong>Asset Details → Rebalancing Records</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Sub-contract page" src="https://doc.coinbac.vip/assets/images/33-0df9e5c14d218ae92bb3fa5a84572cb6.png" width="1280" height="467" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Sweep records" src="https://doc.coinbac.vip/assets/images/34-d9a8f1140ae455c13736db3c18592eaf.png" width="1489" height="536" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Rebalancing records" src="https://doc.coinbac.vip/assets/images/35-ffc9539a3d955c005e6dae0d37bd0190.png" width="1468" height="849" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>Automated tasks do not execute in real time. Sweep tasks scan every 5 minutes by default; rebalancing tasks scan every 30 minutes. Merchants can also sweep or rebalance manually — see: <a class="" href="https://doc.coinbac.vip/blog/fund-tutorial">How to withdraw funds from Coinbac?</a></p></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="part-3-key-reminders">Part 3: Key Reminders<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#part-3-key-reminders" class="hash-link" aria-label="Direct link to Part 3: Key Reminders" title="Direct link to Part 3: Key Reminders" translate="no">​</a></h2>
<ul>
<li class="">The prepaid account must be enabled and funded before using any auto-strategy.</li>
<li class="">Admin wallets must be Web3 decentralized wallets.</li>
<li class="">Recharge sub-contract addresses can be provided directly to users for deposits.</li>
<li class="">Collection addresses are mainly for address pool expansion and should not be given to users for deposits.</li>
<li class="">When pollution blocking is enabled, risky sub-contracts are blacklisted and excluded from the normal sweep process.</li>
<li class="">Auto-sweep and auto-withdrawal only execute when trigger thresholds are met.</li>
<li class="">Always click <strong>Save</strong> after configuring strategies.</li>
<li class="">On-chain transactions require block confirmation; the admin console may not update immediately.</li>
<li class="">Test payment amounts must meet the configured trigger thresholds.</li>
<li class="">Auto-distribution and auto-refund require contact with the technical team for setup.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="part-4-completion-checklist">Part 4: Completion Checklist<a href="https://doc.coinbac.vip/blog/fund-automation-tutorial#part-4-completion-checklist" class="hash-link" aria-label="Direct link to Part 4: Completion Checklist" title="Direct link to Part 4: Completion Checklist" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Merchant registered and approved</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Admin wallet can successfully log in to the admin console</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Recharge sub-contract addresses batch-created</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Prepaid account enabled and funded</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Pollution blocking / KYT detection enabled</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Auto-sweep strategy saved</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Auto-withdrawal strategy saved</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->User payment to sub-contract address successful</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Deposit order visible in admin console</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->System auto-sweep executed successfully</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->System auto-withdrawal executed successfully</li>
</ul>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>automation</category>
        </item>
        <item>
            <title><![CDATA[Merchant Auto-Sweep, Rebalance & Distribution Strategy Configuration Guide]]></title>
            <link>https://doc.coinbac.vip/blog/auto-sweep-strategy</link>
            <guid>https://doc.coinbac.vip/blog/auto-sweep-strategy</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This guide will walk you through configuring the auto-sweep, rebalance, and distribution strategies in the merchant admin console to automate your fund management.]]></description>
            <content:encoded><![CDATA[<p>This guide will walk you through configuring the auto-sweep, rebalance, and distribution strategies in the merchant admin console to automate your fund management.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-access-the-strategy-settings-page">1. Access the Strategy Settings Page<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#1-access-the-strategy-settings-page" class="hash-link" aria-label="Direct link to 1. Access the Strategy Settings Page" title="Direct link to 1. Access the Strategy Settings Page" translate="no">​</a></h2>
<p>Log in to the admin console and navigate to:</p>
<p><strong>Configuration → Strategy Settings</strong></p>
<p>On this page, you can configure prepaid accounts and strategy settings (sweeping strategy, rebalancing strategy, withdrawal/distribution strategy).</p>
<p><img decoding="async" loading="lazy" alt="Strategy settings entry" src="https://doc.coinbac.vip/assets/images/1-d3ee9bd647beb9dc01acdaa57803dcbf.png" width="1346" height="495" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-enable-the-prepaid-account">2. Enable the Prepaid Account<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#2-enable-the-prepaid-account" class="hash-link" aria-label="Direct link to 2. Enable the Prepaid Account" title="Direct link to 2. Enable the Prepaid Account" translate="no">​</a></h2>
<p>By default, you will land on the <strong>Prepaid Account</strong> tab.</p>
<p>If the status shows <strong>Disabled</strong>, toggle the switch on the right to enable it.</p>
<p><img decoding="async" loading="lazy" alt="Prepaid account disabled" src="https://doc.coinbac.vip/assets/images/2-b37320181b46ab716b17c1efd9d17e18.png" width="1449" height="640" class="img_ev3q"></p>
<p>Once enabled, the status will change to <strong>Enabled</strong> and a <strong>Deposit</strong> button will appear.</p>
<p><img decoding="async" loading="lazy" alt="Prepaid account enabled" src="https://doc.coinbac.vip/assets/images/3-8061c5116aa1cb69022bdc634dbc69df.png" width="1434" height="614" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-deposit-to-the-prepaid-balance">3. Deposit to the Prepaid Balance<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#3-deposit-to-the-prepaid-balance" class="hash-link" aria-label="Direct link to 3. Deposit to the Prepaid Balance" title="Direct link to 3. Deposit to the Prepaid Balance" translate="no">​</a></h2>
<p>Click the <strong>Deposit</strong> button to open the deposit dialog.</p>
<p>Steps:</p>
<ol>
<li class="">Select a deposit network, e.g. BSC(BEP20);</li>
<li class="">The system will generate a deposit address and QR code for the selected network;</li>
<li class="">Click <strong>Copy</strong> to copy the deposit address;</li>
<li class="">Send USDT to this address from your wallet or exchange;</li>
<li class="">After the deposit is confirmed, refresh the page to check your balance.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Deposit dialog" src="https://doc.coinbac.vip/assets/images/4-bf81d0105b89f4282a40715f32921090.png" width="541" height="680" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important</div><div class="admonitionContent_BuS1"><p>Make sure to select the correct network. If the page shows BSC(BEP20), you must send via the BSC(BEP20) network.
Do not deposit any tokens other than USDT.</p></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-configure-the-sweeping-strategy">4. Configure the Sweeping Strategy<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#4-configure-the-sweeping-strategy" class="hash-link" aria-label="Direct link to 4. Configure the Sweeping Strategy" title="Direct link to 4. Configure the Sweeping Strategy" translate="no">​</a></h2>
<p>Navigate to <strong>Strategy Settings</strong> and select the <strong>Sweeping Strategy</strong> tab.</p>
<p>The sweeping strategy automatically collects funds from sub-contracts when their balances reach the configured thresholds.</p>
<p>Configurable items:</p>
<table><thead><tr><th>Setting</th><th>Description</th></tr></thead><tbody><tr><td>Current Chain</td><td>The blockchain network being configured, e.g. BSC(BEP20)</td></tr><tr><td>Strategy Status</td><td>Enable or disable the strategy</td></tr><tr><td>Max Gas Price</td><td>Non-TRON chains only. If the on-chain real-time gas price exceeds this value, execution will be delayed (unit: Gwei)</td></tr><tr><td>Pollution Blocking</td><td>When enabled, KYT service is activated. Sub-contracts affected by high-risk transactions will be blacklisted and excluded from sweeping</td></tr><tr><td>KYT Blacklist Min Risk Score</td><td>Risk levels: Low (0~30), Medium (31~70), High (71~90), Severe (91~100); sub-contracts reaching this score will be blacklisted and excluded from sweeping</td></tr><tr><td>Total Sub-Contract Balance Threshold</td><td>Trigger sweep when the cumulative balance of all sub-contracts exceeds this amount</td></tr><tr><td>Single Sub-Contract Balance Threshold</td><td>Trigger sweep when a single sub-contract balance exceeds this amount</td></tr></tbody></table>
<p>After configuration, click <strong>Save Sweeping Strategy</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Sweeping strategy configuration" src="https://doc.coinbac.vip/assets/images/5-33f0db17e0bd5d4cdb1049b297f1207a.png" width="1329" height="742" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-configure-the-rebalancing-strategy">5. Configure the Rebalancing Strategy<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#5-configure-the-rebalancing-strategy" class="hash-link" aria-label="Direct link to 5. Configure the Rebalancing Strategy" title="Direct link to 5. Configure the Rebalancing Strategy" translate="no">​</a></h2>
<p>Select the <strong>Rebalancing Strategy</strong> tab.</p>
<p>The rebalancing strategy automatically triggers withdrawals when cold or hot wallet balances reach the configured thresholds.</p>
<p>Configurable items:</p>
<table><thead><tr><th>Setting</th><th>Description</th></tr></thead><tbody><tr><td>Current Chain</td><td>The blockchain network being configured</td></tr><tr><td>Strategy Status</td><td>Enable or disable the strategy</td></tr><tr><td>Max Gas Price</td><td>Non-TRON chains only. If the on-chain real-time gas price exceeds this value, execution will be delayed (unit: Gwei)</td></tr><tr><td>Cold Contract Threshold</td><td>Trigger withdrawal when the cold contract balance exceeds this amount</td></tr><tr><td>Hot Contract Threshold</td><td>Trigger withdrawal or refill when the hot contract/hot wallet balance falls below this amount</td></tr></tbody></table>
<p>After configuration, click <strong>Save Rebalancing Strategy</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Rebalancing strategy configuration" src="https://doc.coinbac.vip/assets/images/6-43159cb879def9f706aa26dabad9ec2d.png" width="1323" height="594" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-configure-the-withdrawal-distribution-strategy">6. Configure the Withdrawal (Distribution) Strategy<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#6-configure-the-withdrawal-distribution-strategy" class="hash-link" aria-label="Direct link to 6. Configure the Withdrawal (Distribution) Strategy" title="Direct link to 6. Configure the Withdrawal (Distribution) Strategy" translate="no">​</a></h2>
<p>Select the <strong>Withdrawal (Distribution) Strategy</strong> tab.</p>
<p>The withdrawal/distribution strategy limits the number of wallets and maximum amount processed per task to prevent excessive processing in a single run.</p>
<p>Configurable items:</p>
<table><thead><tr><th>Setting</th><th>Description</th></tr></thead><tbody><tr><td>Current Chain</td><td>The blockchain network being configured</td></tr><tr><td>Strategy Status</td><td>Enable or disable the strategy</td></tr><tr><td>Max Gas Price</td><td>Non-TRON chains only. If the on-chain real-time gas price exceeds this value, execution will be delayed (unit: Gwei)</td></tr><tr><td>Max Withdrawal (Distribution) Wallets Per Task</td><td>Maximum number of wallets processed per task run</td></tr><tr><td>Max Withdrawal (Distribution) Amount Per Task</td><td>Maximum amount allowed per task run</td></tr></tbody></table>
<p>After configuration, click <strong>Save Withdrawal (Distribution) Strategy</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Withdrawal strategy configuration" src="https://doc.coinbac.vip/assets/images/7-1f35fae8e720e2a3ed463baf5a82797b.png" width="1337" height="599" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Note</div><div class="admonitionContent_BuS1"><p>To use the distribution feature, please contact the platform for pre-configuration and transfer funds to the designated distribution address.</p></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-create-sub-contract-addresses">7. Create Sub-Contract Addresses<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#7-create-sub-contract-addresses" class="hash-link" aria-label="Direct link to 7. Create Sub-Contract Addresses" title="Direct link to 7. Create Sub-Contract Addresses" translate="no">​</a></h2>
<p>Navigate to:</p>
<p><strong>Funds → Sub-Contracts</strong></p>
<p>On this page, you can view existing sub-contract addresses, types, statuses, balances, and last update times.</p>
<p><img decoding="async" loading="lazy" alt="Sub-contract list" src="https://doc.coinbac.vip/assets/images/8-c80598b7a94fa0fd838aa24e52f01061.png" width="1509" height="294" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-batch-create-sub-contracts">8. Batch Create Sub-Contracts<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#8-batch-create-sub-contracts" class="hash-link" aria-label="Direct link to 8. Batch Create Sub-Contracts" title="Direct link to 8. Batch Create Sub-Contracts" translate="no">​</a></h2>
<p>Click the <strong>Create</strong> button to open the sub-contract creation dialog.</p>
<p>Fill in the following:</p>
<table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody><tr><td>Quantity</td><td>Number of sub-contracts to create</td></tr><tr><td>Sub-Contract Type</td><td>Choose from Recharge, Payment, etc.</td></tr><tr><td>Submit</td><td>Confirm and create sub-contracts</td></tr></tbody></table>
<p>After filling in, click <strong>Submit</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Create sub-contract dialog" src="https://doc.coinbac.vip/assets/images/9-bdb83020dd7fb67a0262f113e9623abd.png" width="1431" height="595" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-sub-contract-types">9. Sub-Contract Types<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#9-sub-contract-types" class="hash-link" aria-label="Direct link to 9. Sub-Contract Types" title="Direct link to 9. Sub-Contract Types" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-recharge-sub-contract">1. Recharge Sub-Contract<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#1-recharge-sub-contract" class="hash-link" aria-label="Direct link to 1. Recharge Sub-Contract" title="Direct link to 1. Recharge Sub-Contract" translate="no">​</a></h3>
<p>Recharge sub-contract addresses can be provided directly to users for deposits.</p>
<p>Use cases:</p>
<ol>
<li class="">Assign a fixed deposit address to users;</li>
<li class="">Users transfer USDT directly to this address;</li>
<li class="">The system monitors incoming funds and sweeps them according to the strategy.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-payment-sub-contract">2. Payment Sub-Contract<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#2-payment-sub-contract" class="hash-link" aria-label="Direct link to 2. Payment Sub-Contract" title="Direct link to 2. Payment Sub-Contract" translate="no">​</a></h3>
<p>Payment sub-contracts are used for payment pool scaling. Merchants generally do not need to create them manually.</p>
<p>When a merchant creates a payment link, the system automatically generates a payment sub-contract address.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="10-complete-operation-workflow">10. Complete Operation Workflow<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#10-complete-operation-workflow" class="hash-link" aria-label="Direct link to 10. Complete Operation Workflow" title="Direct link to 10. Complete Operation Workflow" translate="no">​</a></h2>
<ol>
<li class="">Log in to the admin console with a super admin account;</li>
<li class="">Navigate to <strong>System Configuration → Strategy Configuration</strong>;</li>
<li class="">Toggle on the <strong>Prepaid Account</strong> switch;</li>
<li class="">Click <strong>Top Up</strong>, select the network and copy the deposit address;</li>
<li class="">Send USDT to the deposit address via the corresponding network;</li>
<li class="">Refresh the page after deposit to confirm the prepaid balance has increased;</li>
<li class="">Navigate to <strong>Strategy Settings</strong>;</li>
<li class="">Configure the <strong>Sweeping Strategy</strong>;</li>
<li class="">Configure the <strong>Rebalancing Strategy</strong>;</li>
<li class="">Configure the <strong>Withdrawal (Distribution) Strategy</strong>;</li>
<li class="">Click the corresponding save button after configuring each strategy;</li>
<li class="">Navigate to <strong>Funds → Sub-Contracts</strong>;</li>
<li class="">Click <strong>Create</strong>;</li>
<li class="">Select the sub-contract type and enter the quantity;</li>
<li class="">Click <strong>Submit</strong> to generate sub-contract addresses;</li>
<li class="">Provide the recharge sub-contract addresses to users for deposits.</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="11-important-notes">11. Important Notes<a href="https://doc.coinbac.vip/blog/auto-sweep-strategy#11-important-notes" class="hash-link" aria-label="Direct link to 11. Important Notes" title="Direct link to 11. Important Notes" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important</div><div class="admonitionContent_BuS1"><ol>
<li class="">Before using auto-sweep, rebalance, or distribution strategies, you must enable the prepaid account and complete a top-up.</li>
<li class="">Prepaid account fees are deducted from the balance for each on-chain transaction.</li>
<li class="">Always select the correct network when topping up to avoid loss of funds.</li>
<li class="">Strategies must be saved after configuration, otherwise they will not take effect.</li>
<li class="">Gas price limit: For non-TRON chains, if the on-chain real-time gas price exceeds the configured value, execution will be delayed.</li>
<li class="">When pollution blocking is enabled, KYT service is activated. Sub-contracts affected by high-risk transactions will be blacklisted and excluded from sweeping.</li>
<li class="">KYT blacklist risk levels: Low (0~30), Medium (31~70), High (71~90), Severe (91~100). Sub-contracts reaching the configured score will be blacklisted and excluded from sweeping.</li>
<li class="">Recharge sub-contract addresses can be provided directly to users for deposits.</li>
<li class="">Payment sub-contracts are for payment pool scaling; most merchants do not need to create them manually.</li>
<li class="">When creating payment links, the system automatically generates payment sub-contract addresses.</li>
<li class="">The distribution feature requires platform pre-configuration and funds must be transferred to the designated distribution address.</li>
<li class="">If the prepaid balance is insufficient, auto-sweep, rebalance, or distribution tasks may not execute properly.</li>
</ol></div></div>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>funds</category>
        </item>
        <item>
            <title><![CDATA[Multi-Merchant Registration Guide]]></title>
            <link>https://doc.coinbac.vip/blog/multi-merchant-registration</link>
            <guid>https://doc.coinbac.vip/blog/multi-merchant-registration</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Use TronLink or MetaMask sub-wallets to manage multiple merchant accounts with 4 mnemonic groups (3 multisig admin groups + 1 treasurer group), then complete registration and API Key retrieval.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="overview">Overview<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This guide explains how to use the sub-wallet features of TronLink / MetaMask to manage multiple merchant accounts with 4 mnemonic groups (3 multisig admin groups + 1 treasurer group), each corresponding to 4 master wallets, and complete the following tasks:</p>
<ul>
<li class="">Create sub-wallets for each merchant's multisig admins and treasurer address</li>
<li class="">Register a new merchant and configure the multisig admin and treasurer wallets</li>
<li class="">Obtain the API Key for integration by the development team</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Core Idea</div><div class="admonitionContent_BuS1"><p>Keep 4 mnemonic groups (3 multisig admin groups + 1 treasurer group) securely separated. Each mnemonic group can derive and manage multiple addresses through different derivation paths (a master wallet plus multiple sub-wallets), and the 4 branches together can be used to register and manage multiple merchants.</p></div></div>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="supplemental-note-what-is-an-hd-wallet">Supplemental Note: What Is an HD Wallet?<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#supplemental-note-what-is-an-hd-wallet" class="hash-link" aria-label="Direct link to Supplemental Note: What Is an HD Wallet?" title="Direct link to Supplemental Note: What Is an HD Wallet?" translate="no">​</a></h2>
<p>An HD wallet (Hierarchical Deterministic Wallet) is a wallet model that derives addresses from a mnemonic phrase according to a fixed hierarchical rule.</p>
<ul>
<li class="">One mnemonic group can restore all accounts and addresses under that group.</li>
<li class="">The same mnemonic group can continuously derive and manage multiple addresses, without generating a new mnemonic for each new address.</li>
<li class="">A master wallet and its sub-wallets are essentially accounts on different derivation paths under the same mnemonic group.</li>
<li class="">As long as the derivation path is the same, the same address can be restored on a different device.</li>
</ul>
<p>In the context of this guide, it can be understood as follows:</p>
<ul>
<li class="">You maintain 4 mnemonic groups, corresponding to 4 master wallets (3 multisig admin wallets + 1 treasurer wallet).</li>
<li class="">Each merchant derives 1 sub-wallet from each of these 4 master wallets.</li>
<li class="">Since every address has a deterministic derivation source, multi-merchant management is clearer and permission separation is more explicit.</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Key Takeaway</div><div class="admonitionContent_BuS1"><p>The ability for one mnemonic group to manage multiple addresses is the fundamental capability of an HD wallet. This guide builds on that capability and uses 4 mnemonic groups to isolate 4 derivation branches (3 multisig admin groups + 1 treasurer group), then generates the corresponding sub-wallets for different merchants from each branch.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-use-cases">1. Use Cases<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#1-use-cases" class="hash-link" aria-label="Direct link to 1. Use Cases" title="Direct link to 1. Use Cases" translate="no">​</a></h2>
<p>If you need to repeat the merchant registration flow for multiple merchants while keeping mnemonic management simple, this approach is a better fit:</p>
<ul>
<li class="">Use 4 master wallets as the fixed base accounts (3 multisig admin master wallets + 1 treasurer master wallet)</li>
<li class="">For each new merchant, derive 1 sub-wallet from each of the 4 master wallets</li>
<li class="">Use 3 of the sub-wallets as that merchant's multisig admins, and 1 sub-wallet as the treasurer wallet</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-wallet-structure-and-prerequisites">2. Wallet Structure and Prerequisites<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#2-wallet-structure-and-prerequisites" class="hash-link" aria-label="Direct link to 2. Wallet Structure and Prerequisites" title="Direct link to 2. Wallet Structure and Prerequisites" translate="no">​</a></h2>
<p>Before registering a new merchant, confirm the wallet hierarchy and the required parameters.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="wallet-hierarchy">Wallet Hierarchy<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#wallet-hierarchy" class="hash-link" aria-label="Direct link to Wallet Hierarchy" title="Direct link to Wallet Hierarchy" translate="no">​</a></h3>
<ul>
<li class="">First layer: 4 mnemonic groups (3 multisig admin groups + 1 treasurer group)
Description: each mnemonic group is kept separately and corresponds to 1 master wallet</li>
<li class="">Second layer: 3 multisig admin master wallets + 1 treasurer master wallet
Description: each is derived from its own mnemonic group and can be used on both TRON and EVM chains</li>
<li class="">Third layer: sub-wallets
Description: each master wallet derives 1 sub-wallet; 3 sub-wallets serve as multisig admins and 1 sub-wallet serves as the treasurer wallet</li>
</ul>
<p>Process diagram:</p>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-to-prepare-before-registration">What to Prepare Before Registration<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#what-to-prepare-before-registration" class="hash-link" aria-label="Direct link to What to Prepare Before Registration" title="Direct link to What to Prepare Before Registration" translate="no">​</a></h3>
<ul>
<li class="">Multisig admin master wallets: 3, each derived from one multisig admin mnemonic group</li>
<li class="">Treasurer master wallet: 1, derived from the treasurer mnemonic group</li>
<li class="">Sub-wallets per merchant: 4, one from each of the 4 master wallets above</li>
<li class="">Registration code: obtain from the business team</li>
<li class="">Supported chains: the flow is the same for TRON and EVM chains</li>
</ul>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Security Reminder</div><div class="admonitionContent_BuS1"><ul>
<li class="">The admin wallets and treasurer wallet carry important permissions, so the mnemonics and private keys must be protected carefully.</li>
<li class="">Never leak or share mnemonics or private keys with anyone else.</li>
</ul></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-create-the-admin-and-treasurer-sub-wallet-addresses">3. Create the Admin and Treasurer Sub-Wallet Addresses<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#3-create-the-admin-and-treasurer-sub-wallet-addresses" class="hash-link" aria-label="Direct link to 3. Create the Admin and Treasurer Sub-Wallet Addresses" title="Direct link to 3. Create the Admin and Treasurer Sub-Wallet Addresses" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="option-1-create-sub-wallets-with-tronlink-tron">Option 1: Create Sub-Wallets with TronLink (TRON)<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#option-1-create-sub-wallets-with-tronlink-tron" class="hash-link" aria-label="Direct link to Option 1: Create Sub-Wallets with TronLink (TRON)" title="Direct link to Option 1: Create Sub-Wallets with TronLink (TRON)" translate="no">​</a></h3>
<p>Reference: <a class="" href="https://doc.coinbac.vip/docs/quick-start/create-wallet">TronLink Wallet Setup Tutorial</a></p>
<p>The basic flow is as follows:</p>
<ol>
<li class="">
<p>Switch to multisig admin master wallet 1 and confirm that the current account is master wallet 1.</p>
<p><img decoding="async" loading="lazy" alt="Master wallet" src="https://doc.coinbac.vip/assets/images/1-8ca62093f2a8877f38a9ecc8e6d3de6e.png" width="451" height="750" class="img_ev3q"></p>
</li>
<li class="">
<p>In TronLink, open the wallet-add flow.</p>
<p><img decoding="async" loading="lazy" alt="Switch wallet" src="https://doc.coinbac.vip/assets/images/2-b4c220c55ad90d38c2ad2ec33c1d2e3b.png" width="448" height="741" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Add wallet" src="https://doc.coinbac.vip/assets/images/3-d160370a4cfb073fc701fc0d06a1effd.png" width="459" height="750" class="img_ev3q"></p>
</li>
<li class="">
<p>Choose "Create sub-account", select the TRON chain, and enter a sub-wallet name such as "Merchant A Multisig Admin 1".</p>
<p><img decoding="async" loading="lazy" alt="Create sub-account" src="https://doc.coinbac.vip/assets/images/4-3c4311e72c38e74a5915d1ae2f9a9738.png" width="454" height="735" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Select network" src="https://doc.coinbac.vip/assets/images/5-26ce7242a7a6f2507ff506ac4ffec2e2.png" width="458" height="745" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Enter name" src="https://doc.coinbac.vip/assets/images/6-41dc3533edc47482b0fc08cd8a63c0f6.png" width="451" height="735" class="img_ev3q"></p>
</li>
<li class="">
<p>After creation, copy the sub-wallet address for later use.</p>
<p><img decoding="async" loading="lazy" alt="Click create" src="https://doc.coinbac.vip/assets/images/7-fb5edfcaa10057d81f7ceb3e720b6a35.png" width="456" height="746" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Copy address" src="https://doc.coinbac.vip/assets/images/8-f140f2975e01bd5612a05bc52d226b54.png" width="440" height="726" class="img_ev3q"></p>
</li>
<li class="">
<p>Switch to multisig admin master wallets 2 and 3, and then to the treasurer master wallet, and derive 1 sub-wallet from each. Name them "Merchant A Multisig Admin 2/3" and "Merchant A Treasurer Wallet".</p>
</li>
<li class="">
<p>Once you have the 4 sub-wallet addresses, use them to register Merchant A. See the registration steps below.</p>
<p><img decoding="async" loading="lazy" alt="Register merchant" src="https://doc.coinbac.vip/assets/images/9-039dfd6a9037a8a6369c5e96faca49ed.png" width="828" height="811" class="img_ev3q"></p>
</li>
<li class="">
<p>After the merchant is successfully registered, switch to the corresponding sub-account and log in to the backend.</p>
<p><img decoding="async" loading="lazy" alt="Log in with sub-account" src="https://doc.coinbac.vip/assets/images/10-b63c4d989320801e5c2c2d1cd7064c8a.png" width="1309" height="526" class="img_ev3q"></p>
</li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Reusing the Setup for Multiple Merchants</div><div class="admonitionContent_BuS1"><p>When registering Merchant B, derive a new sub-wallet from each of the 3 multisig admin master wallets and 1 treasurer master wallet, for example "Merchant B Multisig Admin 1 ~ 3" and "Merchant B Treasurer Wallet". Each merchant should use its own set of 4 sub-wallets, and the wallets must not be mixed.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="option-2-create-sub-wallets-with-metamask-evm">Option 2: Create Sub-Wallets with MetaMask (EVM)<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#option-2-create-sub-wallets-with-metamask-evm" class="hash-link" aria-label="Direct link to Option 2: Create Sub-Wallets with MetaMask (EVM)" title="Direct link to Option 2: Create Sub-Wallets with MetaMask (EVM)" translate="no">​</a></h3>
<p>Reference: <a href="https://support.metamask.io/zh-cn/start/getting-started-with-metamask/" target="_blank" rel="noopener noreferrer" class="">MetaMask Getting Started</a></p>
<p>The basic flow is as follows:</p>
<ol>
<li class="">
<p>Open MetaMask and switch to multisig admin master wallet 1.</p>
<p><img decoding="async" loading="lazy" alt="Master wallet" src="https://doc.coinbac.vip/assets/images/11-b68298789d85d5a3e2e668060a11211c.png" width="460" height="820" class="img_ev3q"></p>
</li>
<li class="">
<p>Click "Add account" or "Create new account" to derive one sub-account under master wallet 1.</p>
<p><img decoding="async" loading="lazy" alt="Add account" src="https://doc.coinbac.vip/assets/images/12-127af44c61a96328229271f8ac146989.png" width="496" height="735" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Added successfully" src="https://doc.coinbac.vip/assets/images/13-7711770a63c7c7a727e7853c1068d1bc.png" width="490" height="729" class="img_ev3q"></p>
</li>
<li class="">
<p>Rename the sub-account, for example "Merchant A Multisig Admin 1", and copy the address for later use.</p>
<p><img decoding="async" loading="lazy" alt="Select account actions" src="https://doc.coinbac.vip/assets/images/14-26bd8555cba401568cb850ead9977843.png" width="501" height="756" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Rename" src="https://doc.coinbac.vip/assets/images/15-a78dc880019bfc2fcce663f4d205fa80.png" width="491" height="735" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Save name" src="https://doc.coinbac.vip/assets/images/16-7320fd237cb91ad3b8e5cb81cd42a672.png" width="498" height="750" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Click Receive" src="https://doc.coinbac.vip/assets/images/17-fcf7c8fbf7d37f81458c1c4bde144426.png" width="496" height="739" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Copy address" src="https://doc.coinbac.vip/assets/images/18-fc967680ddeb15080c457b968e0bb109.png" width="490" height="740" class="img_ev3q"></p>
</li>
<li class="">
<p>Switch to multisig admin master wallets 2 and 3, and then to the treasurer master wallet, and derive 1 sub-account from each.</p>
</li>
<li class="">
<p>You will end up with 4 sub-account addresses, which are used to register the same merchant.</p>
</li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Naming Suggestion</div><div class="admonitionContent_BuS1"><p>Use a consistent naming pattern such as "Merchant Name + Admin Number / Treasurer", for example "Merchant A Multisig Admin 1" and "Merchant A Treasurer Wallet". This makes troubleshooting and permission management much clearer.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-register-the-pay-protocol-admin-console">4. Register the Pay Protocol Admin Console<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#4-register-the-pay-protocol-admin-console" class="hash-link" aria-label="Direct link to 4. Register the Pay Protocol Admin Console" title="Direct link to 4. Register the Pay Protocol Admin Console" translate="no">​</a></h2>
<p>Use the 3 multisig admin sub-wallets and 1 treasurer sub-wallet created above to complete merchant registration at the sign-up page.</p>
<p>Sign-up page (sandbox): <a href="https://adm-sandbox.payprotocol.network/signUp" target="_blank" rel="noopener noreferrer" class="">https://adm-sandbox.payprotocol.network/signUp</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="registration-steps">Registration Steps<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#registration-steps" class="hash-link" aria-label="Direct link to Registration Steps" title="Direct link to Registration Steps" translate="no">​</a></h3>
<ol>
<li class="">
<p>Open the sign-up link.</p>
<p><img decoding="async" loading="lazy" alt="Registration form" src="https://doc.coinbac.vip/assets/images/19-17a5186627b8966298f85b85d8a68f2a.png" width="835" height="820" class="img_ev3q"></p>
</li>
<li class="">
<p>Choose "Standard" as the organization type.</p>
</li>
<li class="">
<p>Select the blockchain, such as TRON or ETH.</p>
</li>
<li class="">
<p>Enter the registration code. Obtain it from the business team.</p>
</li>
<li class="">
<p>Fill in the 3 multisig admin addresses and 1 treasurer wallet address, which are the 4 sub-wallet addresses prepared above.</p>
</li>
<li class="">
<p>Review the information and click "Submit".</p>
</li>
<li class="">
<p>Wait for Pay Protocol to complete the approval.</p>
</li>
</ol>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Address Entry Rule</div><div class="admonitionContent_BuS1"><p>The 3 multisig admin addresses and 1 treasurer wallet address of the same merchant must come from 4 different master-wallet derivation paths, so that roles from the same master wallet are not mistaken for independent identities.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-log-in-to-the-admin-console-and-get-the-api-key">5. Log in to the Admin Console and Get the API Key<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#5-log-in-to-the-admin-console-and-get-the-api-key" class="hash-link" aria-label="Direct link to 5. Log in to the Admin Console and Get the API Key" title="Direct link to 5. Log in to the Admin Console and Get the API Key" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-log-in-to-the-chain-admin-console">1. Log in to the Chain Admin Console<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#1-log-in-to-the-chain-admin-console" class="hash-link" aria-label="Direct link to 1. Log in to the Chain Admin Console" title="Direct link to 1. Log in to the Chain Admin Console" translate="no">​</a></h3>
<p>Use the admin wallet for the corresponding chain to log in.</p>
<p><img decoding="async" loading="lazy" alt="Log in to Admin Console" src="https://doc.coinbac.vip/assets/images/20-75c99f36c25667e2edfcf82613b7888b.png" width="1254" height="480" class="img_ev3q"></p>
<ul>
<li class="">If this is a TRON admin account, choose <code>Tron</code> as the blockchain type</li>
<li class="">If this is an EVM admin account, choose the corresponding EVM network</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-get-the-api-key">2. Get the API Key<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#2-get-the-api-key" class="hash-link" aria-label="Direct link to 2. Get the API Key" title="Direct link to 2. Get the API Key" translate="no">​</a></h3>
<ol>
<li class="">
<p>After logging in, go to the "Organization Info" page.</p>
</li>
<li class="">
<p>Click "Reset API Key".</p>
<p><img decoding="async" loading="lazy" alt="Reset API Key" src="https://doc.coinbac.vip/assets/images/21-d70c649c7cbfbccc4b24f96a8d5e1bc8.png" width="1610" height="486" class="img_ev3q"></p>
</li>
<li class="">
<p>Copy the API Key and API Secret.</p>
<p><img decoding="async" loading="lazy" alt="Copy API Key and API Secret" src="https://doc.coinbac.vip/assets/images/22-2438f0dc7fa2cb6af9e0f718dd3e2ff0.png" width="715" height="535" class="img_ev3q"></p>
</li>
<li class="">
<p>Provide the API Key / API Secret to the development team for subsequent system integration.</p>
</li>
</ol>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important</div><div class="admonitionContent_BuS1"><p>The API Secret is shown only once when it is reset. Save it immediately, otherwise you will need to reset it again.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-enable-additional-chains-and-currencies">6. Enable Additional Chains and Currencies<a href="https://doc.coinbac.vip/blog/multi-merchant-registration#6-enable-additional-chains-and-currencies" class="hash-link" aria-label="Direct link to 6. Enable Additional Chains and Currencies" title="Direct link to 6. Enable Additional Chains and Currencies" translate="no">​</a></h2>
<p>After the merchant is registered successfully, you can continue to enable more chains and currencies. See the following guides:</p>
<ul>
<li class=""><a class="" href="https://doc.coinbac.vip/blog/add-new-chain">Enable a New Chain and Currency</a></li>
<li class=""><a class="" href="https://doc.coinbac.vip/blog/multisig-tutorial">Multisig Withdrawal Limit Configuration Guide</a></li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Configuration Suggestion</div><div class="admonitionContent_BuS1"><p>When configuring the initial maximum withdrawal amount, it is recommended to follow the data baseline of existing merchants so that multi-merchant configurations remain consistent.</p></div></div>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>wallet</category>
        </item>
        <item>
            <title><![CDATA[Cold Contract Replacement and Emergency Sweep Address Setup Guide]]></title>
            <link>https://doc.coinbac.vip/blog/replace-cold-contract</link>
            <guid>https://doc.coinbac.vip/blog/replace-cold-contract</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A guide to replacing the cold contract and configuring emergency sweep and withdraw addresses, covering the full multisig proposal flow for blacklisted sub-contract funds.]]></description>
            <content:encoded><![CDATA[<p>This guide is intended for merchant operations and fund security teams. It covers the full workflow for cold contract replacement, emergency sweep address setup, emergency rebalancing address setup, and high-risk fund handling.</p>
<p>You can execute the process in the following order:</p>
<ul>
<li class="">Replace the cold contract (multisig)</li>
<li class="">Set the emergency sweep address (multisig)</li>
<li class="">Set the emergency rebalancing address (multisig)</li>
<li class="">Sweep and withdraw funds from blacklisted sub-contracts</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-cold-contract-replacement">1. Cold Contract Replacement<a href="https://doc.coinbac.vip/blog/replace-cold-contract#1-cold-contract-replacement" class="hash-link" aria-label="Direct link to 1. Cold Contract Replacement" title="Direct link to 1. Cold Contract Replacement" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="overview">Overview<a href="https://doc.coinbac.vip/blog/replace-cold-contract#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h3>
<p>The cold contract stores large merchant balances. To avoid contamination from high-risk transactions or other security risks, merchants can replace the cold contract address through multisig. This operation requires two admin wallets (one to create the proposal, one to approve and submit on-chain) to protect fund security.</p>
<p>This section uses the Pro console as an example and explains the full replacement procedure.</p>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Pre-checks</div><div class="admonitionContent_BuS1"><ul>
<li class="">Make sure both admin wallets can log in and have enough gas.</li>
<li class="">Make sure the selected network matches the merchant's actual operating network.</li>
</ul></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="steps">Steps<a href="https://doc.coinbac.vip/blog/replace-cold-contract#steps" class="hash-link" aria-label="Direct link to Steps" title="Direct link to Steps" translate="no">​</a></h3>
<ol>
<li class="">
<p>Log in with an admin wallet and go to "System Configuration -&gt; Multi-Signature Management".</p>
<p><img decoding="async" loading="lazy" alt="Multisig management entry" src="https://doc.coinbac.vip/assets/images/1-19dca3018de23fe7e469bba1e31ec31f.jpg" width="1694" height="759" class="img_ev3q"></p>
</li>
<li class="">
<p>On the Multi-Signature Management page, open the "Edit Parameter Proposal" tab, click "Modify", and choose "Modify Cold Contract Address" from the "Category" dropdown.</p>
<p><img decoding="async" loading="lazy" alt="Select modify cold contract address" src="https://doc.coinbac.vip/assets/images/2-37dd2ae75bb1cfd323721f995af5bb80.jpg" width="1578" height="804" class="img_ev3q"></p>
</li>
<li class="">
<p>In the "Address" dropdown, choose the target cold contract address:</p>
<ul>
<li class="">If no replacement address exists, choose "New" and let the system generate a new cold contract address.</li>
<li class="">If historical addresses exist, select one of the previously used cold contract addresses.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Choose new or historical cold contract address" src="https://doc.coinbac.vip/assets/images/3-e960221e697123283b1314a3ae467be4.jpg" width="1583" height="815" class="img_ev3q"></p>
</li>
<li class="">
<p>Confirm and sign with the current admin wallet to create the proposal.</p>
</li>
<li class="">
<p>Sign out, switch to another admin wallet, go to "Multi-Signature Management -&gt; Edit Parameter Proposal", find the pending proposal, and click "Approve".</p>
<p><img decoding="async" loading="lazy" alt="View pending cold contract proposal" src="https://doc.coinbac.vip/assets/images/4-cd80bd3711f8a4984f2d72fa0f5ede97.jpg" width="1751" height="635" class="img_ev3q"></p>
</li>
<li class="">
<p>Verify the details in the approval dialog, sign with the wallet, then confirm on-chain in the wallet (a small gas fee is required).</p>
<p><img decoding="async" loading="lazy" alt="Approve and submit cold contract proposal on-chain" src="https://doc.coinbac.vip/assets/images/5-9f52d7f2f4cc18ec17fd02c6fda5f762.jpg" width="1488" height="766" class="img_ev3q"></p>
</li>
<li class="">
<p>Wait about 1 minute. When the proposal status changes to "Approved", the cold contract address replacement is complete.</p>
<p><img decoding="async" loading="lazy" alt="Cold contract proposal approved" src="https://doc.coinbac.vip/assets/images/6-0b2b97e1b673a7b6dd4cd242be7043d3.jpg" width="1765" height="451" class="img_ev3q"></p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="additional-note-hot-contract-address-update">Additional Note: Hot Contract Address Update<a href="https://doc.coinbac.vip/blog/replace-cold-contract#additional-note-hot-contract-address-update" class="hash-link" aria-label="Direct link to Additional Note: Hot Contract Address Update" title="Direct link to Additional Note: Hot Contract Address Update" translate="no">​</a></h3>
<p>The hot contract address update follows the same multisig proposal workflow as cold contract replacement:</p>
<ol>
<li class="">
<p>Log in with an admin wallet, choose "Modify Hot Contract Address" in "Edit Parameter Proposal", create the proposal, and sign.</p>
<p><img decoding="async" loading="lazy" alt="Create hot contract address update proposal" src="https://doc.coinbac.vip/assets/images/7-c0049728b9646a399fcae9b6cebd6150.jpg" width="1696" height="734" class="img_ev3q"></p>
</li>
<li class="">
<p>Switch to another admin wallet, approve the proposal, and confirm on-chain in the wallet.</p>
<p><img decoding="async" loading="lazy" alt="Approve hot contract address update proposal" src="https://doc.coinbac.vip/assets/images/8-1833dd7ebc21f407fd948ed5689911d1.jpg" width="1675" height="676" class="img_ev3q"></p>
</li>
<li class="">
<p>Wait about 1 minute. Once status becomes "Approved", the hot contract address update is complete.</p>
<p><img decoding="async" loading="lazy" alt="Hot contract proposal approved" src="https://doc.coinbac.vip/assets/images/9-202f841d65d3e0ece0d32685d7d3cdc7.jpg" width="1713" height="440" class="img_ev3q"></p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-set-emergency-sweep-and-emergency-rebalancing-addresses">2. Set Emergency Sweep and Emergency Rebalancing Addresses<a href="https://doc.coinbac.vip/blog/replace-cold-contract#2-set-emergency-sweep-and-emergency-rebalancing-addresses" class="hash-link" aria-label="Direct link to 2. Set Emergency Sweep and Emergency Rebalancing Addresses" title="Direct link to 2. Set Emergency Sweep and Emergency Rebalancing Addresses" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="overview-1">Overview<a href="https://doc.coinbac.vip/blog/replace-cold-contract#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h3>
<p>The Emergency Sweep Address and Emergency Rebalancing Address are used to handle funds from high-risk sub-contracts. When a merchant's receiving sub-contract is marked as high-risk or blacklisted, funds can be swept to the Emergency Sweep Address first, then moved to a safe external wallet through the Emergency Rebalancing Address. This isolates risk and protects the main contract funds.</p>
<p>This feature is typically used with the blacklist API. See: <a class="" href="https://doc.coinbac.vip/docs/api/merchant/add-user-to-black-list">Blacklist API</a>.</p>
<p>The full process includes three phases:</p>
<ol>
<li class="">Set the Emergency Sweep Address (multisig)</li>
<li class="">Set the Emergency Rebalancing Address (multisig)</li>
<li class="">Sweep funds from high-risk sub-contracts and withdraw them to an external wallet</li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Standard Merchant Note</div><div class="admonitionContent_BuS1"><p>For Standard merchants, you only need to set a hot wallet address as the Emergency Rebalancing Address. After sweep, funds go directly to this address, and no follow-up transfer proposal is required.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="phase-1-set-the-emergency-sweep-address">Phase 1: Set the Emergency Sweep Address<a href="https://doc.coinbac.vip/blog/replace-cold-contract#phase-1-set-the-emergency-sweep-address" class="hash-link" aria-label="Direct link to Phase 1: Set the Emergency Sweep Address" title="Direct link to Phase 1: Set the Emergency Sweep Address" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Goal</div><div class="admonitionContent_BuS1"><p>Use a multisig proposal to define the entry address for high-risk funds. Funds from blacklisted sub-contracts will be swept here first.</p></div></div>
<ol>
<li class="">
<p>Log in with an admin wallet and go to "System Configuration -&gt; Multi-Signature Management -&gt; Edit Parameter Proposal".</p>
<p><img decoding="async" loading="lazy" alt="Open edit parameter proposal page" src="https://doc.coinbac.vip/assets/images/10-9de6c87a9aa7ab926e59e73d107a9b28.jpg" width="1704" height="735" class="img_ev3q"></p>
</li>
<li class="">
<p>Click "Modify", choose "Modify Emergency Sweep Address" in "Category", then choose the address:</p>
<ul>
<li class="">If no Emergency Sweep Address exists yet, choose "New" to let the system generate one.</li>
<li class="">If historical emergency sweep addresses exist, select one for replacement.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Select modify emergency sweep address" src="https://doc.coinbac.vip/assets/images/11-520612aabdc9a11a0f526269c7a705d3.jpg" width="1704" height="730" class="img_ev3q"></p>
</li>
<li class="">
<p>Connect the wallet and sign to create the proposal.</p>
<p><img decoding="async" loading="lazy" alt="Sign to create emergency sweep address proposal" src="https://doc.coinbac.vip/assets/images/12-cc5824688ac70aaba6db6d4ac1938b1d.jpg" width="1464" height="589" class="img_ev3q"></p>
</li>
<li class="">
<p>Sign out, switch to another admin wallet, go to "Multi-Signature Management -&gt; Edit Parameter Proposal", find the pending proposal, and click "Approve".</p>
<p><img decoding="async" loading="lazy" alt="View pending emergency sweep address proposal" src="https://doc.coinbac.vip/assets/images/13-88d57a768d5307861cfb864e3ac6a67e.jpg" width="1740" height="511" class="img_ev3q"></p>
</li>
<li class="">
<p>Verify details in the approval dialog, sign with the wallet, and confirm on-chain (a small gas fee is required).</p>
<p><img decoding="async" loading="lazy" alt="Approve and submit emergency sweep address proposal on-chain" src="https://doc.coinbac.vip/assets/images/14-62ba87dcc2e479a5894d4901c2e62666.jpg" width="1825" height="675" class="img_ev3q"></p>
</li>
<li class="">
<p>Wait about 1 minute. When status becomes "Approved", Emergency Sweep Address setup is complete.</p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="phase-2-set-the-emergency-rebalancing-address">Phase 2: Set the Emergency Rebalancing Address<a href="https://doc.coinbac.vip/blog/replace-cold-contract#phase-2-set-the-emergency-rebalancing-address" class="hash-link" aria-label="Direct link to Phase 2: Set the Emergency Rebalancing Address" title="Direct link to Phase 2: Set the Emergency Rebalancing Address" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Goal</div><div class="admonitionContent_BuS1"><p>Use a multisig proposal to define the safe outbound address that receives funds after emergency sweep.</p></div></div>
<p>The setup flow is identical to Emergency Sweep Address setup. In the "Category" dropdown, choose "Modify Emergency Rebalancing Address".</p>
<ol>
<li class="">
<p>Log in with an admin wallet, choose "Modify Emergency Rebalancing Address" in "Edit Parameter Proposal", select "New" or a historical address, click "Submit", and sign.</p>
<p><img decoding="async" loading="lazy" alt="Create emergency rebalancing address proposal" src="https://doc.coinbac.vip/assets/images/15-0ef3a01c4973669982cc7e9d2b04a8c6.jpg" width="1660" height="774" class="img_ev3q"></p>
</li>
<li class="">
<p>Switch to another admin wallet and approve the proposal.</p>
<p><img decoding="async" loading="lazy" alt="Approve emergency rebalancing address proposal" src="https://doc.coinbac.vip/assets/images/16-3eab62a2ff1666fd0145d8f2940e35d8.jpg" width="1710" height="531" class="img_ev3q"></p>
</li>
<li class="">
<p>Confirm on-chain in the wallet (a small gas fee is required), then wait for status to become "Approved".</p>
<p><img decoding="async" loading="lazy" alt="Confirm emergency rebalancing address proposal on-chain" src="https://doc.coinbac.vip/assets/images/17-405a26843d0947aea8d55f04cfa2dc54.jpg" width="1795" height="755" class="img_ev3q"></p>
</li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Standard Merchant Note</div><div class="admonitionContent_BuS1"><p>At this phase, Standard merchants only need to set a hot wallet as the Emergency Rebalancing Address. Funds swept to the Emergency Sweep Address will then move to this hot wallet automatically, with no follow-up transfer operation.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="phase-3-sweep-high-risk-funds-and-withdraw-to-an-external-wallet">Phase 3: Sweep High-Risk Funds and Withdraw to an External Wallet<a href="https://doc.coinbac.vip/blog/replace-cold-contract#phase-3-sweep-high-risk-funds-and-withdraw-to-an-external-wallet" class="hash-link" aria-label="Direct link to Phase 3: Sweep High-Risk Funds and Withdraw to an External Wallet" title="Direct link to Phase 3: Sweep High-Risk Funds and Withdraw to an External Wallet" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Prerequisite</div><div class="admonitionContent_BuS1"><p>Make sure proposals in Phase 1 and Phase 2 are both "Approved" before executing follow-up sweep and withdraw actions.</p></div></div>
<p>After both addresses are configured, you can sweep and withdraw funds from blacklisted sub-contracts.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-sweep-funds-from-high-risk-sub-contracts">1. Sweep Funds from High-Risk Sub-Contracts<a href="https://doc.coinbac.vip/blog/replace-cold-contract#1-sweep-funds-from-high-risk-sub-contracts" class="hash-link" aria-label="Direct link to 1. Sweep Funds from High-Risk Sub-Contracts" title="Direct link to 1. Sweep Funds from High-Risk Sub-Contracts" translate="no">​</a></h4>
<ol>
<li class="">
<p>Go to "Funds -&gt; Sweep".</p>
<p><img decoding="async" loading="lazy" alt="Open funds sweep page" src="https://doc.coinbac.vip/assets/images/18-3ff52e4a8a9a70a6cdaa0fb45c4e12f2.jpg" width="1725" height="327" class="img_ev3q"></p>
</li>
<li class="">
<p>Switch to the "Blacklist" tab, select the sub-contracts to sweep, and click "Batch Sweep".</p>
</li>
<li class="">
<p>Confirm the transaction in the wallet and wait for sweep to complete.</p>
<p><img decoding="async" loading="lazy" alt="Confirm batch sweep transaction" src="https://doc.coinbac.vip/assets/images/19-39691e009bbdf9c403159014df5cd1ff.jpg" width="1781" height="635" class="img_ev3q"></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-one-click-rebalance-from-emergency-sweep-address-to-emergency-rebalancing-address">2. One-Click Rebalance from Emergency Sweep Address to Emergency Rebalancing Address<a href="https://doc.coinbac.vip/blog/replace-cold-contract#2-one-click-rebalance-from-emergency-sweep-address-to-emergency-rebalancing-address" class="hash-link" aria-label="Direct link to 2. One-Click Rebalance from Emergency Sweep Address to Emergency Rebalancing Address" title="Direct link to 2. One-Click Rebalance from Emergency Sweep Address to Emergency Rebalancing Address" translate="no">​</a></h4>
<ol>
<li class="">
<p>Go to "Asset Details" and click "Emergency Withdraw" in the top-right corner.</p>
<p><img decoding="async" loading="lazy" alt="Enter emergency rebalance from asset details" src="https://doc.coinbac.vip/assets/images/20-053dc0e3ca86bd4f681affecba541691.jpg" width="1736" height="750" class="img_ev3q"></p>
</li>
<li class="">
<p>On the Emergency Withdraw page, check "Total Balance of Emergency Sweep Address". After funds are confirmed in place, click "One-Click Rebalance".</p>
<p><img decoding="async" loading="lazy" alt="Execute one-click rebalance on emergency rebalance page" src="https://doc.coinbac.vip/assets/images/21-fbc262d7d116c01278e6775843c12e18.jpg" width="1733" height="760" class="img_ev3q"></p>
</li>
<li class="">
<p>If the page shows "Hot contract max limit is not set for some currencies", configure hot contract limits via multisig first. See: <a class="" href="https://doc.coinbac.vip/blog/multisig-tutorial#merchant-config">Modify Merchant Configuration with Multisig</a>.</p>
<p><img decoding="async" loading="lazy" alt="Prompt to set hot contract max limit" src="https://doc.coinbac.vip/assets/images/22-fad6e060c35de3992dda62314cd50383.jpg" width="1709" height="820" class="img_ev3q"></p>
</li>
<li class="">
<p>After configuration, click "One-Click Rebalance" again and confirm on-chain in the wallet. Funds will move from the Emergency Sweep Address to the Emergency Rebalancing Address.</p>
<p><img decoding="async" loading="lazy" alt="Run one-click rebalance again and confirm on-chain" src="https://doc.coinbac.vip/assets/images/23-e7bf709bca8082e514f0d28d7dc98e26.jpg" width="1771" height="730" class="img_ev3q"></p>
</li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Edition Difference</div><div class="admonitionContent_BuS1"><p>For Standard merchants, funds are transferred directly to the configured emergency rebalancing hot wallet, and the process ends here. The next step, "3. Transfer from Emergency Rebalancing Address", only applies to Pro merchants.</p></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-transfer-from-emergency-rebalancing-address-pro-merchants">3. Transfer from Emergency Rebalancing Address (Pro Merchants)<a href="https://doc.coinbac.vip/blog/replace-cold-contract#3-transfer-from-emergency-rebalancing-address-pro-merchants" class="hash-link" aria-label="Direct link to 3. Transfer from Emergency Rebalancing Address (Pro Merchants)" title="Direct link to 3. Transfer from Emergency Rebalancing Address (Pro Merchants)" translate="no">​</a></h4>
<ol>
<li class="">
<p>Go to "Asset Details -&gt; Emergency Withdraw -&gt; Transfer from Emergency Rebalancing Address" and click "Transfer".</p>
<p><img decoding="async" loading="lazy" alt="Open transfer from emergency rebalancing address" src="https://doc.coinbac.vip/assets/images/24-3541235fa719b00f8e1830336d22f243.jpg" width="1709" height="730" class="img_ev3q"></p>
</li>
<li class="">
<p>In the transfer dialog, choose the currency (e.g., USDT), fill in destination address and amount, optionally click "Add Row" for batch transfers, then click "Submit".</p>
<p><img decoding="async" loading="lazy" alt="Fill transfer details and submit proposal" src="https://doc.coinbac.vip/assets/images/25-b63221f3d6266957b061cbf7dfe6760e.jpg" width="1699" height="804" class="img_ev3q"></p>
</li>
<li class="">
<p>Sign the transfer proposal with the finance wallet.</p>
</li>
<li class="">
<p>Sign out, switch to another finance wallet, approve the transfer proposal via multisig, and confirm on-chain in the wallet.</p>
<p><img decoding="async" loading="lazy" alt="Multisig approve transfer proposal and submit on-chain" src="https://doc.coinbac.vip/assets/images/26-21bf5c677a61ff00bc14630cee2dcd12.jpg" width="1746" height="681" class="img_ev3q"></p>
</li>
<li class="">
<p>Wait for confirmation. Funds in the Emergency Rebalancing Address will be transferred to the specified external wallet.</p>
</li>
</ol>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>multisig</category>
            <category>funds</category>
        </item>
        <item>
            <title><![CDATA[Tutorial on Batch Creating Sub-Contracts for Payments]]></title>
            <link>https://doc.coinbac.vip/blog/create-sub-contracts</link>
            <guid>https://doc.coinbac.vip/blog/create-sub-contracts</guid>
            <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This document describes how to rapidly batch-create TRON sub-contracts for payment business. The core approach is: first activate TRX currency in the admin console, then generate sub-contract addresses by creating payment orders, and finally deploy the contracts by transferring a small amount of TRX (approximately 1.277 TRX, valued at around 0.5 USDT) to complete batch initialization at minimal cost.]]></description>
            <content:encoded><![CDATA[<p>This document describes how to rapidly batch-create TRON sub-contracts for payment business. The core approach is: first activate TRX currency in the admin console, then generate sub-contract addresses by creating payment orders, and finally deploy the contracts by transferring a small amount of TRX (approximately 1.277 TRX, valued at around 0.5 USDT) to complete batch initialization at minimal cost.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-cases">Use Cases<a href="https://doc.coinbac.vip/blog/create-sub-contracts#use-cases" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no">​</a></h2>
<ul>
<li class="">Payment business based on the TRON (TRC20) network</li>
<li class="">Merchants need to pre-provision large quantities of payment-collection sub-contract wallets to handle high-concurrency payment demands</li>
<li class="">Desire to reduce batch sub-contract creation costs by paying gas fees in TRX</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="overall-process-flow">Overall Process Flow<a href="https://doc.coinbac.vip/blog/create-sub-contracts#overall-process-flow" class="hash-link" aria-label="Direct link to Overall Process Flow" title="Direct link to Overall Process Flow" translate="no">​</a></h2>
<!-- -->
<table><thead><tr><th>Step</th><th>Operation</th><th>Executor</th></tr></thead><tbody><tr><td>1</td><td>Enable TRX currency in admin console (wallet signature confirmation)</td><td>Admin</td></tr><tr><td>2</td><td>Call API to create payment order</td><td>Merchant System</td></tr><tr><td>3</td><td>Call API to update payment info to TRX (currencyId: 1)</td><td>Merchant System</td></tr><tr><td>4</td><td>Retrieve generated sub-contract address from order details</td><td>Merchant System</td></tr><tr><td>5</td><td>Transfer 0.01 TRX to the address</td><td>Operations/Finance</td></tr><tr><td>6</td><td>Wait for on-chain confirmation; sub-contract automatically deploys</td><td>—</td></tr><tr><td>7</td><td>Repeat steps 2~6 for batch operations</td><td>Merchant System</td></tr><tr><td>8</td><td>Disable TRX currency from admin console upon completion</td><td>Admin</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Cost Breakdown</div><div class="admonitionContent_BuS1"><p>Each sub-contract transfer costs approximately 1.277 TRX (equivalent to around 0.5 USDT), comprising: 0.01 TRX transfer amount, 0.267 TRX bandwidth fee, and 1 TRX new address activation fee. Compared to deploying contracts directly using USDT, this significantly reduces gas costs.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="detailed-steps">Detailed Steps<a href="https://doc.coinbac.vip/blog/create-sub-contracts#detailed-steps" class="hash-link" aria-label="Direct link to Detailed Steps" title="Direct link to Detailed Steps" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-enable-trx-currency-in-admin-console">1. Enable TRX Currency in Admin Console<a href="https://doc.coinbac.vip/blog/create-sub-contracts#1-enable-trx-currency-in-admin-console" class="hash-link" aria-label="Direct link to 1. Enable TRX Currency in Admin Console" title="Direct link to 1. Enable TRX Currency in Admin Console" translate="no">​</a></h3>
<p>Log in to the admin console using an admin wallet, navigate to "System Configuration → Currency List", add the TRX currency, and confirm via wallet signature.</p>
<p>Admin console URL: <a href="https://adm.payprotocol.network/login" target="_blank" rel="noopener noreferrer" class="">https://adm.payprotocol.network/login</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="11-select-the-currency-to-enable">1.1 Select the currency to enable<a href="https://doc.coinbac.vip/blog/create-sub-contracts#11-select-the-currency-to-enable" class="hash-link" aria-label="Direct link to 1.1 Select the currency to enable" title="Direct link to 1.1 Select the currency to enable" translate="no">​</a></h4>
<p>Click the "Manage Currencies" button. In the modal that appears, select TRX (TRX) from the dropdown list.</p>
<p><img decoding="async" loading="lazy" alt="Manage currencies modal" src="https://doc.coinbac.vip/assets/images/1-e9a4acb09b7dae8eaf338bf53947c472.png" width="1494" height="869" class="img_ev3q"></p>
<p><em>Figure 1: Select TRX (TRX) from the dropdown in the "Manage Currencies" modal</em></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="12-submit-the-activation-request">1.2 Submit the activation request<a href="https://doc.coinbac.vip/blog/create-sub-contracts#12-submit-the-activation-request" class="hash-link" aria-label="Direct link to 1.2 Submit the activation request" title="Direct link to 1.2 Submit the activation request" translate="no">​</a></h4>
<p>After confirming that the selected currencies include Tether(TRC20) (USDT) and TRX (TRX), click the "Submit" button.</p>
<p><img decoding="async" loading="lazy" alt="Submit activation request" src="https://doc.coinbac.vip/assets/images/2-5daaaa8a2d9266ed36ca3771c9f89883.png" width="1450" height="621" class="img_ev3q"></p>
<p><em>Figure 2: Click "Submit" after confirming the selected currencies</em></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="13-confirm-wallet-signature">1.3 Confirm wallet signature<a href="https://doc.coinbac.vip/blog/create-sub-contracts#13-confirm-wallet-signature" class="hash-link" aria-label="Direct link to 1.3 Confirm wallet signature" title="Direct link to 1.3 Confirm wallet signature" translate="no">​</a></h4>
<p>The system will trigger your wallet to display a "Trigger Smart Contract" signature request, with an estimated gas fee of approximately 2.4785 TRX. Click the "Sign" button to complete the on-chain operation.</p>
<p><img decoding="async" loading="lazy" alt="Signature confirmation" src="https://doc.coinbac.vip/assets/images/3-f14d362001fade9e9e873d62a3d2b817.png" width="1815" height="629" class="img_ev3q"></p>
<p><em>Figure 3: Click "Sign" in the wallet popup to complete TRX currency activation</em></p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Operation Tips</div><div class="admonitionContent_BuS1"><p>After successful signature, the TRX currency record will appear in the currency list, indicating successful activation. The system now has the capability to process TRX payments, and you can proceed to the next steps.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-call-api-to-create-payment-order">2. Call API to Create Payment Order<a href="https://doc.coinbac.vip/blog/create-sub-contracts#2-call-api-to-create-payment-order" class="hash-link" aria-label="Direct link to 2. Call API to Create Payment Order" title="Direct link to 2. Call API to Create Payment Order" translate="no">​</a></h3>
<p>Create a payment order through the merchant API. Each order will correspond to an independent sub-contract wallet address.</p>
<p>API Documentation: <a class="" href="https://doc.coinbac.vip/docs/api/merchant/create-payment-order">Create Payment Order</a></p>
<p><strong>Request Example</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">POST /payment/order/create</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">{</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "chainId": 1,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "description": "A sample order",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "isLegalTender": 0,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "notifyUrl": "https://www.payment.com/api/notify",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "outTradeNo": "P2026010100000001",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "quoteAmount": "0.01",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "quoteCurrencySymbol": "TRX",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "redirectionUrl": "https://www.payment.com/order/redirect",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "tagId": 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span></code></pre></div></div>
<p>Upon successful API call, the response will include the order's unique identifier <code>orderNo</code>, which you'll need for subsequent steps.</p>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Batch Calling Recommendations</div><div class="admonitionContent_BuS1"><p>It is recommended to loop this API call in your program, using a unique <code>merchantOrderNo</code> (merchant order number) for each call. Add an appropriate delay between calls (e.g., 200~500ms).</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-update-payment-information-to-trx">3. Update Payment Information to TRX<a href="https://doc.coinbac.vip/blog/create-sub-contracts#3-update-payment-information-to-trx" class="hash-link" aria-label="Direct link to 3. Update Payment Information to TRX" title="Direct link to 3. Update Payment Information to TRX" translate="no">​</a></h3>
<p>After the order is created, call the "Update Payment Info" API to switch the order's payment currency to TRX. This is a critical step: by setting <code>currencyId</code> to 1 (TRX), the subsequent 0.01 TRX transfer will trigger sub-contract wallet generation with minimal gas cost.</p>
<p>API Documentation: <a class="" href="https://doc.coinbac.vip/docs/api/merchant/update-payment-info">Update Payment Info</a></p>
<p><strong>Request Example</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">POST /payment/payInfo/update</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">{</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "chainId": 1,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "currencyId": 1,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  "outTradeNo": "P2026010100000001"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span></code></pre></div></div>
<p><strong>Key Parameters</strong></p>
<table><thead><tr><th>Parameter</th><th>Description</th><th>Example Value</th></tr></thead><tbody><tr><td><code>orderNo</code></td><td>Order number returned after step 2</td><td><code>P2026010100000001</code></td></tr><tr><td><code>currencyId</code></td><td>Currency ID; TRX corresponds to 1</td><td><code>1</code></td></tr></tbody></table>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important Notice</div><div class="admonitionContent_BuS1"><p><code>currencyId</code> must be set to 1 (TRX's ID), otherwise subsequent TRX payments will not be recognized as valid. If the call fails, verify that TRX currency was successfully enabled in step 1.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-retrieve-sub-contract-wallet-address-from-order">4. Retrieve Sub-Contract Wallet Address from Order<a href="https://doc.coinbac.vip/blog/create-sub-contracts#4-retrieve-sub-contract-wallet-address-from-order" class="hash-link" aria-label="Direct link to 4. Retrieve Sub-Contract Wallet Address from Order" title="Direct link to 4. Retrieve Sub-Contract Wallet Address from Order" translate="no">​</a></h3>
<p>After updating payment information, use the "<a class="" href="https://doc.coinbac.vip/docs/api/merchant/get-payment-detail">Query Payment Order Details</a>" or "<a class="" href="https://doc.coinbac.vip/docs/api/merchant/get-payment-info">Query Payment Page Info</a>" API to retrieve the sub-contract wallet receiving address associated with the order.</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Address Purpose</div><div class="admonitionContent_BuS1"><p>The payment collection sub-contract is the sub-contract wallet address that will be deployed. Save this address to your batch task list for transferring 0.01 TRX in subsequent steps.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-transfer-001-trx-to-the-sub-contract-address">5. Transfer 0.01 TRX to the Sub-Contract Address<a href="https://doc.coinbac.vip/blog/create-sub-contracts#5-transfer-001-trx-to-the-sub-contract-address" class="hash-link" aria-label="Direct link to 5. Transfer 0.01 TRX to the Sub-Contract Address" title="Direct link to 5. Transfer 0.01 TRX to the Sub-Contract Address" translate="no">​</a></h3>
<p>Using any exchange or wallet (e.g., TronLink, Binance, OKX, etc.), transfer 0.01 TRX to the payment collection sub-contract address obtained in step 4.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-wait-for-sub-contract-wallet-deployment">6. Wait for Sub-Contract Wallet Deployment<a href="https://doc.coinbac.vip/blog/create-sub-contracts#6-wait-for-sub-contract-wallet-deployment" class="hash-link" aria-label="Direct link to 6. Wait for Sub-Contract Wallet Deployment" title="Direct link to 6. Wait for Sub-Contract Wallet Deployment" translate="no">​</a></h3>
<p>After on-chain confirmation (typically within 1 minute), the system will detect the TRX transfer transaction and automatically trigger the sub-contract deployment logic. Once deployment completes, the new sub-contract wallet is ready to use as an independent payment-receiving address.</p>
<p><strong>Ways to Confirm Sub-Contract Deployment Success</strong></p>
<ul>
<li class="">Query the address via the TRON blockchain explorer (e.g., Tronscan) to see contract creation transaction records</li>
<li class="">Receive order status change notifications via the merchant callback interface (<code>notifyUrl</code>)</li>
<li class="">Call the "Query Payment Order Details" API again to verify the order status has been updated</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-batch-looping-operations">7. Batch Looping Operations<a href="https://doc.coinbac.vip/blog/create-sub-contracts#7-batch-looping-operations" class="hash-link" aria-label="Direct link to 7. Batch Looping Operations" title="Direct link to 7. Batch Looping Operations" translate="no">​</a></h3>
<p>Encapsulate steps 2 through 6 in a program loop or batch processing script to batch-generate multiple sub-contract wallets.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-disable-trx-currency-after-completion">8. Disable TRX Currency After Completion<a href="https://doc.coinbac.vip/blog/create-sub-contracts#8-disable-trx-currency-after-completion" class="hash-link" aria-label="Direct link to 8. Disable TRX Currency After Completion" title="Direct link to 8. Disable TRX Currency After Completion" translate="no">​</a></h3>
<p>After batch creation is complete, disable TRX currency from the admin console to prevent accidental use of the TRX payment channel for regular payment collection operations.</p>
<p><strong>Steps</strong></p>
<ul>
<li class="">Log in to the admin console using an admin wallet</li>
<li class="">Navigate to "System Configuration → Currency List"</li>
<li class="">Click "Manage Currencies", then in the dialog that appears, click the "×" next to TRX (TRX) to remove it</li>
<li class="">Click "Submit"</li>
<li class="">Confirm via wallet signature (similar to step 1.3)</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Operation Instructions</div><div class="admonitionContent_BuS1"><p>The process for disabling TRX currency is identical to step 1 (enabling currency), with the only difference being: uncheck TRX from the dropdown list. After removal, already-deployed sub-contract wallets remain unaffected and continue functioning normally as payment-receiving addresses.</p></div></div>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[Cross-Chain Swap in Admin Console]]></title>
            <link>https://doc.coinbac.vip/blog/cross-chain-swap</link>
            <guid>https://doc.coinbac.vip/blog/cross-chain-swap</guid>
            <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[1. Introduction to Cross-Chain Bridges]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-introduction-to-cross-chain-bridges">1. Introduction to Cross-Chain Bridges<a href="https://doc.coinbac.vip/blog/cross-chain-swap#1-introduction-to-cross-chain-bridges" class="hash-link" aria-label="Direct link to 1. Introduction to Cross-Chain Bridges" title="Direct link to 1. Introduction to Cross-Chain Bridges" translate="no">​</a></h2>
<p>A cross-chain bridge is a protocol mechanism used to transfer assets between different blockchain networks. Because various public blockchains (such as TRON, Ethereum, BSC, etc.) are independent and use incompatible protocols, assets cannot be transferred directly. Cross-chain bridges enable equivalent circulation of the same asset across different chains through mechanisms like "lock → mint" or "swap → release".</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cross-chain-capabilities-of-this-platform">Cross-Chain Capabilities of This Platform<a href="https://doc.coinbac.vip/blog/cross-chain-swap#cross-chain-capabilities-of-this-platform" class="hash-link" aria-label="Direct link to Cross-Chain Capabilities of This Platform" title="Direct link to Cross-Chain Capabilities of This Platform" translate="no">​</a></h3>
<p>This admin console already has built-in cross-chain swap functionality, allowing you to complete asset transfers between major blockchains without integrating an external bridge. It works similarly to "currency exchange": select the asset to sell, choose the destination chain for the asset to buy, enter the receiving address on the counterparty chain, and confirm to complete the cross-chain transfer.</p>
<table><thead><tr><th>Feature</th><th>Description</th></tr></thead><tbody><tr><td>Supported Assets</td><td>USDT and other mainstream stablecoins, native coins</td></tr><tr><td>Supported Chains</td><td>TRON (TRC20)、Ethereum (ERC20)、BSC (BEP20), etc.</td></tr><tr><td>Fund Source</td><td>Hot wallet (Finance) account balance</td></tr><tr><td>Settlement Time</td><td>Typically within minutes (subject to on-chain congestion)</td></tr><tr><td>Fees</td><td>Charged by the cross-chain bridge at real-time rates (included in the swap rate)</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Prerequisites</div><div class="admonitionContent_BuS1"><ul>
<li class=""><strong>Available only for Standard and Lite merchant versions</strong></li>
<li class="">Operator account must have "Treasurer" permissions</li>
<li class="">Hot wallet (Finance) must have sufficient available balance</li>
<li class="">Target chain receiving address must be prepared (verify carefully; incorrect addresses will result in irretrievable funds)</li>
</ul></div></div>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-operation-steps">2. Operation Steps<a href="https://doc.coinbac.vip/blog/cross-chain-swap#2-operation-steps" class="hash-link" aria-label="Direct link to 2. Operation Steps" title="Direct link to 2. Operation Steps" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-log-in-to-admin-console">1. Log in to Admin Console<a href="https://doc.coinbac.vip/blog/cross-chain-swap#1-log-in-to-admin-console" class="hash-link" aria-label="Direct link to 1. Log in to Admin Console" title="Direct link to 1. Log in to Admin Console" translate="no">​</a></h3>
<p>Log in to the admin console using a "Treasurer" account.</p>
<p>Admin Console URL: <a href="https://adm.payprotocol.network/login" target="_blank" rel="noopener noreferrer" class="">https://adm.payprotocol.network/login</a></p>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Permission Notice</div><div class="admonitionContent_BuS1"><p>Swap operations involve fund transfers and must use an account with "Treasurer" permissions. Regular admin accounts cannot access the swap functionality.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-ensure-hot-wallet-treasurer-has-sufficient-balance">2. Ensure Hot Wallet (Treasurer) Has Sufficient Balance<a href="https://doc.coinbac.vip/blog/cross-chain-swap#2-ensure-hot-wallet-treasurer-has-sufficient-balance" class="hash-link" aria-label="Direct link to 2. Ensure Hot Wallet (Treasurer) Has Sufficient Balance" title="Direct link to 2. Ensure Hot Wallet (Treasurer) Has Sufficient Balance" translate="no">​</a></h3>
<p>The fund source for cross-chain swaps is the "Hot Wallet (Treasurer)". If the hot wallet balance is insufficient, you need to first withdraw assets from the cold contract wallet to the hot wallet, or transfer from other external addresses to the hot wallet.</p>
<p><strong>Method A: One-Click Withdrawal from Cold Contract</strong></p>
<p>Go to the "Asset Details" page and click the "One-Click Withdraw" button in the top-right corner. The system will automatically withdraw the available balance from the cold contract wallet to the hot wallet.</p>
<p><img decoding="async" loading="lazy" alt="One-click withdraw" src="https://doc.coinbac.vip/assets/images/1-c6f085501581972b42a7a0da522866e3.png" width="1505" height="831" class="img_ev3q"></p>
<p><em>Figure 2-1: Click "One-Click Withdraw" on the "Asset Details" page</em></p>
<p><strong>Method B: Transfer from External Address</strong></p>
<p>If the cold contract also has no available balance, you can transfer directly from other addresses you own (such as exchange withdrawal, wallet transfer) to the hot wallet (Finance) address. You can find the hot wallet address in the "Asset Details → Hot Wallet" tab.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-enter-swap-page-and-fill-in-information">3. Enter Swap Page and Fill in Information<a href="https://doc.coinbac.vip/blog/cross-chain-swap#3-enter-swap-page-and-fill-in-information" class="hash-link" aria-label="Direct link to 3. Enter Swap Page and Fill in Information" title="Direct link to 3. Enter Swap Page and Fill in Information" translate="no">​</a></h3>
<p>Click the top navigation "Fund Management → Swap" to enter the cross-chain swap page.</p>
<p><img decoding="async" loading="lazy" alt="Navigation menu" src="https://doc.coinbac.vip/assets/images/2-c02d9c8a44ff7f78fb8d8315f57bcff8.png" width="1490" height="851" class="img_ev3q"></p>
<p><em>Figure 3-1: Navigate to "Fund Management → Swap"</em></p>
<p>Fill in the following information on the swap page:</p>
<p><img decoding="async" loading="lazy" alt="Swap form" src="https://doc.coinbac.vip/assets/images/3-8179d26af6aba44ed0680c1af3f86e2d.png" width="1506" height="838" class="img_ev3q"></p>
<p><em>Figure 3-2: Swap form (Sell / Buy / Receiving Address)</em></p>
<table><thead><tr><th>Field</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td>Sell (Amount)</td><td>Quantity to swap</td><td>100</td></tr><tr><td>Sell (Asset)</td><td>Source chain asset, select from dropdown</td><td>USDT (TRC20)</td></tr><tr><td>Buy (Chain)</td><td>Target chain network</td><td>Ethereum</td></tr><tr><td>Buy (Asset)</td><td>Asset to receive on target chain</td><td>USDT</td></tr><tr><td>Receiving Address</td><td>Receiving address on target chain (required)</td><td><code>0x...</code> (ETH address)</td></tr><tr><td>Slippage Tolerance</td><td>Maximum acceptable price slippage</td><td>1%</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Verify Receiving Address</div><div class="admonitionContent_BuS1"><p>Please verify the receiving address carefully; an incorrect address will result in irretrievable funds! For Ethereum target chain, the address should start with <code>0x</code>; for TRON, it should start with <code>T</code>. It is recommended to copy and paste from the target wallet to avoid manual entry errors.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-confirm-and-initiate-swap">4. Confirm and Initiate Swap<a href="https://doc.coinbac.vip/blog/cross-chain-swap#4-confirm-and-initiate-swap" class="hash-link" aria-label="Direct link to 4. Confirm and Initiate Swap" title="Direct link to 4. Confirm and Initiate Swap" translate="no">​</a></h3>
<p>After completing the information, the page will display a real-time quote (e.g., 1 USDT ≈ 1.000000 USDT). This quote is for reference only; the final execution rate will be the rate at the time of swap execution.</p>
<p>After confirming everything is correct, click the "Start Swap" button below to submit. The system will deduct the corresponding amount from the hot wallet and transfer the assets to the receiving address on the target chain via the cross-chain bridge.</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Settlement Time</div><div class="admonitionContent_BuS1"><ul>
<li class="">TRON ↔ Ethereum: typically 3~10 minutes</li>
<li class="">TRON ↔ BSC: typically 1~5 minutes</li>
<li class="">During on-chain congestion or gas anomalies, actual times may vary</li>
</ul></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-check-arrival-status-at-target-address">5. Check Arrival Status at Target Address<a href="https://doc.coinbac.vip/blog/cross-chain-swap#5-check-arrival-status-at-target-address" class="hash-link" aria-label="Direct link to 5. Check Arrival Status at Target Address" title="Direct link to 5. Check Arrival Status at Target Address" translate="no">​</a></h3>
<p>After initiating the swap, you can confirm arrival using any of the following methods:</p>
<ul>
<li class="">Open the block explorer of the target chain (e.g., Etherscan, BscScan) and check the latest transaction records of the receiving address</li>
<li class="">Open your wallet app (e.g., MetaMask, TronLink), switch to the target network and check balance changes</li>
<li class="">Return to the admin console and check the swap transaction status in "Asset Details → Withdrawal Records"</li>
</ul>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Late Arrival Troubleshooting</div><div class="admonitionContent_BuS1"><p>If funds do not arrive within 30 minutes, please troubleshoot in the following order:</p><ol>
<li class="">Verify in the block explorer that the transaction on the source chain has been successfully confirmed</li>
<li class="">Double-check that the receiving address you entered is correct</li>
<li class="">If confirmed to be correct, save a screenshot of the order and contact platform technical support</li>
</ol></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-important-considerations">3. Important Considerations<a href="https://doc.coinbac.vip/blog/cross-chain-swap#3-important-considerations" class="hash-link" aria-label="Direct link to 3. Important Considerations" title="Direct link to 3. Important Considerations" translate="no">​</a></h2>
<ul>
<li class="">Cross-chain swaps are irreversible; once submitted, they cannot be cancelled. Please verify the address and amount multiple times before operating</li>
<li class="">Swaps between different assets will be settled at real-time market rates, with some slippage</li>
<li class="">For large swaps, it is recommended to test with a small amount (e.g., 1 USDT) first, then proceed with larger amounts after confirming arrival</li>
<li class="">Certain chain pairs (e.g., obscure small-cap assets) may have insufficient liquidity, resulting in longer settlement times or even failure</li>
<li class="">Cross-chain bridge fees are already included in the swap rate; no additional fees apply</li>
<li class="">Source chain transactions require on-chain gas (borne by the hot wallet account); ensure the account has a small amount of native currency (e.g., TRX)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-reference-materials">4. Reference Materials<a href="https://doc.coinbac.vip/blog/cross-chain-swap#4-reference-materials" class="hash-link" aria-label="Direct link to 4. Reference Materials" title="Direct link to 4. Reference Materials" translate="no">​</a></h2>
<ul>
<li class="">Etherscan (Ethereum Explorer): <a href="https://etherscan.io/" target="_blank" rel="noopener noreferrer" class="">https://etherscan.io</a></li>
<li class="">Tronscan (TRON Explorer): <a href="https://tronscan.org/" target="_blank" rel="noopener noreferrer" class="">https://tronscan.org</a></li>
<li class="">BscScan (BSC Explorer): <a href="https://bscscan.com/" target="_blank" rel="noopener noreferrer" class="">https://bscscan.com</a></li>
</ul>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>funds</category>
        </item>
        <item>
            <title><![CDATA[Emergency Sweep of Contaminated Sub-Contracts]]></title>
            <link>https://doc.coinbac.vip/blog/emergency-sweep</link>
            <guid>https://doc.coinbac.vip/blog/emergency-sweep</guid>
            <pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A user's sub-contract can sometimes be contaminated by malicious transfers (e.g., receiving blacklisted USDT). If a normal sweep is performed, the blacklisted funds would be transferred into the cold contract, putting the merchant's main funds at risk. To prevent this, merchants should first blacklist the contaminated sub-contract to exclude it from the normal sweep flow, then use the emergency sweep feature to sweep the funds to a safe external address instead of the cold contract, achieving risk isolation.]]></description>
            <content:encoded><![CDATA[<p>A user's sub-contract can sometimes be contaminated by malicious transfers (e.g., receiving blacklisted USDT). If a normal sweep is performed, the blacklisted funds would be transferred into the cold contract, putting the merchant's main funds at risk. To prevent this, merchants should first blacklist the contaminated sub-contract to exclude it from the normal sweep flow, then use the emergency sweep feature to sweep the funds to a safe external address instead of the cold contract, achieving risk isolation.</p>
<p>The steps to use the emergency sweep feature are as follows:</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-blacklist-the-sub-contract">1. Blacklist the Sub-Contract<a href="https://doc.coinbac.vip/blog/emergency-sweep#1-blacklist-the-sub-contract" class="hash-link" aria-label="Direct link to 1. Blacklist the Sub-Contract" title="Direct link to 1. Blacklist the Sub-Contract" translate="no">​</a></h2>
<p>When the merchant's KYT (Know Your Transaction) system detects that an incoming payment contains blacklisted USDT, call the <a class="" href="https://doc.coinbac.vip/docs/api/merchant/add-user-to-black-list">Add User Sub-Contract to Blacklist</a> API immediately to blacklist the contaminated sub-contract. Blacklisted sub-contracts will no longer be used for payment and will be excluded from the normal sweep flow.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-set-the-emergency-sweep-address">2. Set the Emergency Sweep Address<a href="https://doc.coinbac.vip/blog/emergency-sweep#2-set-the-emergency-sweep-address" class="hash-link" aria-label="Direct link to 2. Set the Emergency Sweep Address" title="Direct link to 2. Set the Emergency Sweep Address" translate="no">​</a></h2>
<p>Log in to the merchant console with an admin wallet, go to the <strong>Multi-Sig Management</strong> page, edit the multi-sig parameter configuration, select <strong>Modify Emergency Sweep Address</strong>, and enter a safe external address. The change takes effect once the multi-sig approval is complete.</p>
<p><img decoding="async" loading="lazy" alt="Set emergency sweep address" src="https://doc.coinbac.vip/assets/images/1-a27e809fbfcf0d82a51763f7654c3b83.jpeg" width="1356" height="773" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-execute-the-emergency-sweep">3. Execute the Emergency Sweep<a href="https://doc.coinbac.vip/blog/emergency-sweep#3-execute-the-emergency-sweep" class="hash-link" aria-label="Direct link to 3. Execute the Emergency Sweep" title="Direct link to 3. Execute the Emergency Sweep" translate="no">​</a></h2>
<p>Go to the <strong>Sweep</strong> page and select the <strong>Blacklist</strong> tab to view the previously blacklisted sub-contracts. Select the sub-contracts to sweep and click the <strong>Batch Sweep</strong> button. The system will sweep the funds from those sub-contracts to the emergency sweep address configured in the previous step.</p>
<p><img decoding="async" loading="lazy" alt="Execute emergency sweep" src="https://doc.coinbac.vip/assets/images/2-baf5afc2596c7506731409655f9e57bf.jpeg" width="1340" height="469" class="img_ev3q"></p>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>funds</category>
        </item>
        <item>
            <title><![CDATA[Tag Address Usage Guide]]></title>
            <link>https://doc.coinbac.vip/blog/tag-address-guide</link>
            <guid>https://doc.coinbac.vip/blog/tag-address-guide</guid>
            <pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[1. Overview]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-overview">1. Overview<a href="https://doc.coinbac.vip/blog/tag-address-guide#1-overview" class="hash-link" aria-label="Direct link to 1. Overview" title="Direct link to 1. Overview" translate="no">​</a></h2>
<p>Tag Address is used to categorize and manage wallet addresses.
When creating a payment order, merchants can specify <code>tagId</code> so the system automatically assigns a receiving address from the corresponding tagged address pool.</p>
<p>Address allocation rules:</p>
<ul>
<li class="">If an available address exists under the tag, the system prioritizes reusing it.</li>
<li class="">If all addresses under the tag are occupied, the system automatically creates a new address.</li>
<li class="">The newly created address is automatically assigned to the same tag.</li>
</ul>
<p>This mechanism helps merchants achieve:</p>
<ul>
<li class="">Address categorization</li>
<li class="">Address reuse</li>
<li class="">Automatic address expansion</li>
</ul>
<p>This mechanism is ideal for merchant scenarios that require managing a large number of receiving addresses.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-end-to-end-workflow">2. End-to-End Workflow<a href="https://doc.coinbac.vip/blog/tag-address-guide#2-end-to-end-workflow" class="hash-link" aria-label="Direct link to 2. End-to-End Workflow" title="Direct link to 2. End-to-End Workflow" translate="no">​</a></h2>
<p>The overall process is as follows:</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-create-a-tag">3. Create a Tag<a href="https://doc.coinbac.vip/blog/tag-address-guide#3-create-a-tag" class="hash-link" aria-label="Direct link to 3. Create a Tag" title="Direct link to 3. Create a Tag" translate="no">​</a></h2>
<p>Documentation: <a class="" href="https://doc.coinbac.vip/docs/api/merchant/create-tag">Create Tag API</a></p>
<p>Before creating payment orders, merchants must create a tag first.</p>
<p>Endpoint:</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">POST /api/mer/user/tag</span><br></span></code></pre></div></div>
<p>Request example:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"tagName"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"A1"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<p>This example creates tag <code>A1</code>.</p>
<p>After successful creation, the API returns <code>data</code> as the tag ID (for example, <code>1</code>), which can be referenced in payment orders.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-create-a-payment-order">4. Create a Payment Order<a href="https://doc.coinbac.vip/blog/tag-address-guide#4-create-a-payment-order" class="hash-link" aria-label="Direct link to 4. Create a Payment Order" title="Direct link to 4. Create a Payment Order" translate="no">​</a></h2>
<p>When creating an order, include <code>tagId</code> in the request parameters to specify which tagged address group should be used.</p>
<p>Endpoint:</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">POST /api/mer/payment/createPaymentOrder</span><br></span></code></pre></div></div>
<p>Request example:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"chainId"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">136</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"A sample order"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"isLegalTender"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"notifyUrl"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://www.payment.com/api/notify"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"outTradeNo"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"C3"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"quoteAmount"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.01"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"quoteCurrencySymbol"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"USDT"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"redirectionUrl"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://www.payment.com/result?order=202312131805041280413"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"tagId"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="parameters">Parameters<a href="https://doc.coinbac.vip/blog/tag-address-guide#parameters" class="hash-link" aria-label="Direct link to Parameters" title="Direct link to Parameters" translate="no">​</a></h3>
<table><thead><tr><th>Parameter</th><th>Description</th></tr></thead><tbody><tr><td>chainId</td><td>Blockchain network ID</td></tr><tr><td>description</td><td>Order description</td></tr><tr><td>isLegalTender</td><td>Whether the order is a fiat order</td></tr><tr><td>notifyUrl</td><td>Callback URL used after successful payment</td></tr><tr><td>outTradeNo</td><td>Merchant order number</td></tr><tr><td>quoteAmount</td><td>Payment amount</td></tr><tr><td>quoteCurrencySymbol</td><td>Payment currency</td></tr><tr><td>redirectionUrl</td><td>Redirect URL after payment completion</td></tr><tr><td>tagId</td><td>Tag ID used for address categorization</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-address-allocation-rules">5. Address Allocation Rules<a href="https://doc.coinbac.vip/blog/tag-address-guide#5-address-allocation-rules" class="hash-link" aria-label="Direct link to 5. Address Allocation Rules" title="Direct link to 5. Address Allocation Rules" translate="no">​</a></h2>
<p>After an order is successfully created, the system runs the following logic:</p>
<ol>
<li class="">Read <code>tagId</code> from the order</li>
<li class="">Query the address pool under that tag</li>
<li class="">Check whether any available address exists</li>
</ol>
<p>Processing logic:</p>
<ul>
<li class="">If an available address exists, reuse an existing address first.</li>
<li class="">If all addresses are occupied, create a new address automatically.</li>
</ul>
<p>Address allocation decision flow:</p>
<!-- -->
<p>Example (<code>A1</code> tag address pool):</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Address1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Address2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Address3</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Address4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Address5</span><br></span></code></pre></div></div>
<p>Address allocation results:</p>
<ul>
<li class="">Order1 -&gt; Address1</li>
<li class="">Order2 -&gt; Address2</li>
<li class="">Order3 -&gt; Address3</li>
</ul>
<p>If all addresses are occupied, the system automatically creates a new address (for example, Address6) and adds it to the <strong>A1 tag address pool</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-reassign-address-tag">6. Reassign Address Tag<a href="https://doc.coinbac.vip/blog/tag-address-guide#6-reassign-address-tag" class="hash-link" aria-label="Direct link to 6. Reassign Address Tag" title="Direct link to 6. Reassign Address Tag" translate="no">​</a></h2>
<p>Documentation: <a class="" href="https://doc.coinbac.vip/docs/api/merchant/update-wallet-tag">Update Wallet Tag API</a></p>
<p>If you need to change the tag assigned to an address, use the API below.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-query-address-list">1. Query Address List<a href="https://doc.coinbac.vip/blog/tag-address-guide#1-query-address-list" class="hash-link" aria-label="Direct link to 1. Query Address List" title="Direct link to 1. Query Address List" translate="no">​</a></h3>
<p>Endpoint:</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">GET /api/mer/user/list</span><br></span></code></pre></div></div>
<p>The response includes:</p>
<ul>
<li class=""><code>walletId</code></li>
<li class=""><code>tagId</code></li>
<li class=""><code>address</code></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-update-address-tag">2. Update Address Tag<a href="https://doc.coinbac.vip/blog/tag-address-guide#2-update-address-tag" class="hash-link" aria-label="Direct link to 2. Update Address Tag" title="Direct link to 2. Update Address Tag" translate="no">​</a></h3>
<p>Endpoint:</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">POST /api/mer/user/wallet/tag</span><br></span></code></pre></div></div>
<p>Request example:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"walletId"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">123456</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"tagId"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
<p>After a successful update, the address is assigned to the new tag.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-complete-process-example">7. Complete Process Example<a href="https://doc.coinbac.vip/blog/tag-address-guide#7-complete-process-example" class="hash-link" aria-label="Direct link to 7. Complete Process Example" title="Direct link to 7. Complete Process Example" translate="no">​</a></h2>
<p>The complete workflow example is as follows:</p>
]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
            <category>tag-address</category>
        </item>
        <item>
            <title><![CDATA[How to enable a new blockchain or token in Coinbac?]]></title>
            <link>https://doc.coinbac.vip/blog/add-new-chain</link>
            <guid>https://doc.coinbac.vip/blog/add-new-chain</guid>
            <pubDate>Fri, 16 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Documentation Overview]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="documentation-overview">Documentation Overview<a href="https://doc.coinbac.vip/blog/add-new-chain#documentation-overview" class="hash-link" aria-label="Direct link to Documentation Overview" title="Direct link to Documentation Overview" translate="no">​</a></h2>
<p>This guide helps <strong>merchant administrators</strong> complete the following configurations:</p>
<ul>
<li class="">Enable new blockchain networks (such as ETH, BSC)</li>
<li class="">Add new cryptocurrencies (Tokens) on the blockchain</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Example Note</div><div class="admonitionContent_BuS1"><p>This document demonstrates how to add the <strong>ETH chain</strong> for merchants who have already enabled the Tron chain. The operation process for BSC chain is exactly the same as ETH.</p></div></div>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enable-new-blockchain-network">Enable New Blockchain Network<a href="https://doc.coinbac.vip/blog/add-new-chain#enable-new-blockchain-network" class="hash-link" aria-label="Direct link to Enable New Blockchain Network" title="Direct link to Enable New Blockchain Network" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="prerequisites">Prerequisites<a href="https://doc.coinbac.vip/blog/add-new-chain#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no">​</a></h3>
<p>Before enabling a new chain, you need to prepare <strong>4 administrator wallet addresses</strong>. These addresses will be used for:</p>
<ul>
<li class="">Asset management on the new chain</li>
<li class="">Multi-signature configuration</li>
</ul>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Security Reminder</div><div class="admonitionContent_BuS1"><ul>
<li class="">Administrator wallets have the highest system privileges</li>
<li class="">Please keep your private keys safe and never disclose them to others</li>
</ul></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-administrator-wallet-using-eth-as-example">Create Administrator Wallet (Using ETH as Example)<a href="https://doc.coinbac.vip/blog/add-new-chain#create-administrator-wallet-using-eth-as-example" class="hash-link" aria-label="Direct link to Create Administrator Wallet (Using ETH as Example)" title="Direct link to Create Administrator Wallet (Using ETH as Example)" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-wallet-with-metamask">Create Wallet with MetaMask<a href="https://doc.coinbac.vip/blog/add-new-chain#create-wallet-with-metamask" class="hash-link" aria-label="Direct link to Create Wallet with MetaMask" title="Direct link to Create Wallet with MetaMask" translate="no">​</a></h4>
<ol>
<li class="">Install <a href="https://metamask.io/" target="_blank" rel="noopener noreferrer" class="">MetaMask</a> browser extension or mobile app</li>
<li class="">Follow the prompts to create a new wallet, <strong>be sure to back up your seed phrase</strong></li>
<li class="">The wallet connects to Ethereum Mainnet by default</li>
<li class="">Copy the wallet address (you need to create 4 administrator addresses, repeat this step for each)</li>
</ol>
<p><img decoding="async" loading="lazy" alt="MetaMask Interface Example" src="https://doc.coinbac.vip/assets/images/1-7e8ee54e84dc34234b8f3f46f0e526ba.png" width="510" height="726" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Copy Wallet Address" src="https://doc.coinbac.vip/assets/images/2-e145fde4f64ffaa4eb3b5fc1acef4d37.png" width="481" height="720" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Reference Tutorials</div><div class="admonitionContent_BuS1"><ul>
<li class=""><a href="https://support.metamask.io/start/getting-started-with-metamask/" target="_blank" rel="noopener noreferrer" class="">MetaMask Getting Started Guide</a></li>
<li class=""><a class="" href="https://doc.coinbac.vip/docs/quick-start/create-wallet">TronLink Wallet Creation Tutorial</a></li>
</ul></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="login-to-system-backend">Login to System Backend<a href="https://doc.coinbac.vip/blog/add-new-chain#login-to-system-backend" class="hash-link" aria-label="Direct link to Login to System Backend" title="Direct link to Login to System Backend" translate="no">​</a></h3>
<p>Use the <strong>Tron chain administrator account</strong> to connect your wallet and log in to the backend system.</p>
<p><img decoding="async" loading="lazy" alt="Login Interface" src="https://doc.coinbac.vip/assets/images/3-5177f94f070c1557d80b975031470277.png" width="1309" height="590" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-eth-chain-administrator">Configure ETH Chain Administrator<a href="https://doc.coinbac.vip/blog/add-new-chain#configure-eth-chain-administrator" class="hash-link" aria-label="Direct link to Configure ETH Chain Administrator" title="Direct link to Configure ETH Chain Administrator" translate="no">​</a></h3>
<ol>
<li class="">Select <strong>ETH Chain</strong> from the chain list</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Select ETH Chain" src="https://doc.coinbac.vip/assets/images/4-d60f67b01459ba26970654e3e3567a45.png" width="1475" height="190" class="img_ev3q"></p>
<ol start="2">
<li class="">Fill in administrator addresses</li>
</ol>
<ul>
<li class="">Use the 4 ETH wallet addresses created earlier</li>
<li class="">Carefully verify the address information before submitting</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Add Administrator Addresses" src="https://doc.coinbac.vip/assets/images/5-a54734c2c7fb9b90104cafb48c67900c.png" width="904" height="568" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Important Note</div><div class="admonitionContent_BuS1"><p>Each administrator address must be unique and cannot be added repeatedly.</p></div></div>
<ol start="3">
<li class="">After submission, the system will proceed with the approval process</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-bsc-chain">Configure BSC Chain<a href="https://doc.coinbac.vip/blog/add-new-chain#configure-bsc-chain" class="hash-link" aria-label="Direct link to Configure BSC Chain" title="Direct link to Configure BSC Chain" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>BSC Chain Configuration</div><div class="admonitionContent_BuS1"><p>The BSC chain setup process is exactly the same as ETH:</p><ul>
<li class="">Select <strong>BSC</strong> for blockchain type</li>
<li class="">Fill in BSC chain administrator wallet addresses (you can use the same addresses as ETH since they use the same address format)</li>
</ul></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-new-cryptocurrency-token">Add New Cryptocurrency (Token)<a href="https://doc.coinbac.vip/blog/add-new-chain#add-new-cryptocurrency-token" class="hash-link" aria-label="Direct link to Add New Cryptocurrency (Token)" title="Direct link to Add New Cryptocurrency (Token)" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Wallet Login Methods</div><div class="admonitionContent_BuS1"><ul>
<li class=""><strong>MetaMask Wallet</strong>: You can log in directly using the MetaMask browser extension</li>
<li class=""><strong>Trust Wallet or Other Wallets</strong>: You need to import the wallet into the MetaMask extension first (same method as Tron chain)</li>
</ul></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="import-wallet-to-metamask-if-needed">Import Wallet to MetaMask (If Needed)<a href="https://doc.coinbac.vip/blog/add-new-chain#import-wallet-to-metamask-if-needed" class="hash-link" aria-label="Direct link to Import Wallet to MetaMask (If Needed)" title="Direct link to Import Wallet to MetaMask (If Needed)" translate="no">​</a></h3>
<p>If your wallet address was previously created using Trust Wallet or another wallet, you can import it to MetaMask by following these steps:</p>
<p><img decoding="async" loading="lazy" alt="Import Step 1" src="https://doc.coinbac.vip/assets/images/6-b14e40779be00aa42f1f6d4642ca7346.png" width="404" height="593" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Import Step 2" src="https://doc.coinbac.vip/assets/images/7-7c2188d835ce359a413e42f327b07390.png" width="505" height="744" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Import Interface" src="https://doc.coinbac.vip/assets/images/8-cd4051aa92611d89e22d26d60b089da3.png" width="506" height="738" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="login-to-chain-management-backend">Login to Chain Management Backend<a href="https://doc.coinbac.vip/blog/add-new-chain#login-to-chain-management-backend" class="hash-link" aria-label="Direct link to Login to Chain Management Backend" title="Direct link to Login to Chain Management Backend" translate="no">​</a></h3>
<p>Use the <strong>ETH chain administrator account</strong> to connect your wallet and log in to the backend, then select "ETH" in the blockchain options.</p>
<p><img decoding="async" loading="lazy" alt="ETH Chain Login" src="https://doc.coinbac.vip/assets/images/9-382cae3f4826ea233c78e20c4288f9cb.png" width="1264" height="560" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-tokens-using-eth-chain-as-example">Configure Tokens (Using ETH Chain as Example)<a href="https://doc.coinbac.vip/blog/add-new-chain#configure-tokens-using-eth-chain-as-example" class="hash-link" aria-label="Direct link to Configure Tokens (Using ETH Chain as Example)" title="Direct link to Configure Tokens (Using ETH Chain as Example)" translate="no">​</a></h3>
<ol>
<li class="">Navigate to backend management menu: <strong>System Configuration → Token List</strong></li>
</ol>
<p><img decoding="async" loading="lazy" alt="Menu Path" src="https://doc.coinbac.vip/assets/images/10-26c8840f0b227951e35154707b7642c8.png" width="1495" height="195" class="img_ev3q"></p>
<ol start="2">
<li class="">Click the <strong>Manage Tokens</strong> button and select the tokens you want to enable from the list</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Manage Tokens Interface" src="https://doc.coinbac.vip/assets/images/11-553962ddd8f31a9af5ef33be11fad386.png" width="1371" height="634" class="img_ev3q"></p>
<ol start="3">
<li class="">After confirming your selection, click the <strong>"Submit"</strong> button</li>
</ol>
<ul>
<li class="">This operation requires executing a transaction on the blockchain</li>
<li class="">It will consume a small amount of Gas fees</li>
<li class="">Once the transaction is confirmed, the token is successfully added</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Submit to Blockchain" src="https://doc.coinbac.vip/assets/images/12-e822783fe12a564c42872de6594afb35.png" width="1558" height="393" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Gas Fee Information</div><div class="admonitionContent_BuS1"><p>On-chain operations consume a small amount of Gas fees. Please ensure your wallet has sufficient native tokens (ETH chain requires ETH, BSC chain requires BNB).</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="bsc-chain-token-configuration">BSC Chain Token Configuration<a href="https://doc.coinbac.vip/blog/add-new-chain#bsc-chain-token-configuration" class="hash-link" aria-label="Direct link to BSC Chain Token Configuration" title="Direct link to BSC Chain Token Configuration" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>BSC Token Configuration</div><div class="admonitionContent_BuS1"><p>The token configuration process for BSC chain is exactly the same as ETH chain, just select BSC chain when logging in.</p></div></div>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Test Environment Note</div><div class="admonitionContent_BuS1"><p>The demonstration screenshots in this document are from the sandbox test environment. You can familiarize yourself with the entire configuration process in the test environment before performing actual configuration in the mainnet environment. For example, you can add commonly used tokens such as USDC in the mainnet environment.</p></div></div>]]></content:encoded>
            <category>tutorial</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[Coinbac Merchant Sub-Contract Guide]]></title>
            <link>https://doc.coinbac.vip/blog/sub-contract</link>
            <guid>https://doc.coinbac.vip/blog/sub-contract</guid>
            <pubDate>Tue, 23 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[In traditional Web2 internet, when large merchants integrate with payment platforms, they often need to allocate independent payment sub-accounts for different business lines, stores, or even individual users (such as Alipay's PID or bank virtual accounts) to achieve fund allocation management and reconciliation.]]></description>
            <content:encoded><![CDATA[<p>In traditional Web2 internet, when large merchants integrate with payment platforms, they often need to allocate independent payment sub-accounts for different business lines, stores, or even individual users (such as Alipay's PID or bank virtual accounts) to achieve fund allocation management and reconciliation.</p>
<p>In Pay Protocol's blockchain world, the core concept that realizes this functionality is <strong>Merchant Sub-Contract</strong>. It is not the merchant's sole payment address, but rather smart contract addresses that merchants can generate on-demand in batches, specifically serving particular scenarios (such as one user or one order). Due to its foundation on blockchain and smart contracts, the generation and management methods are more flexible, transparent, and secure.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-why-do-we-need-sub-contracts-why-not-transfer-directly-to-cold-contracts">1. Why Do We Need Sub-Contracts? Why Not Transfer Directly to Cold Contracts?<a href="https://doc.coinbac.vip/blog/sub-contract#1-why-do-we-need-sub-contracts-why-not-transfer-directly-to-cold-contracts" class="hash-link" aria-label="Direct link to 1. Why Do We Need Sub-Contracts? Why Not Transfer Directly to Cold Contracts?" title="Direct link to 1. Why Do We Need Sub-Contracts? Why Not Transfer Directly to Cold Contracts?" translate="no">​</a></h2>
<p>Having all users transfer to the same cold contract address would cause several core issues, and sub-contracts are designed to elegantly solve them:</p>
<ol>
<li class=""><strong>Business Matching Requirements</strong>: Modern business scenarios are complex, and merchants need to create unique identifiers for massive users or transactions. Sub-contracts can <strong>generate unique payment addresses in batches</strong>, perfectly matching business models like "one address per user" or "one address per order," facilitating precise tracking of fund flows.</li>
<li class=""><strong>Fund Security Isolation</strong>: There are risky assets (such as blacklisted USDT) on the blockchain. If using a single address for payments, once problematic funds are received, it may lead to contamination or freezing of the merchant's entire main fund pool. Sub-contracts <strong>isolate risks to the smallest unit</strong>. If a certain sub-contract address receives abnormal funds, it can be handled separately without affecting the merchant's cold or hot main wallets.</li>
<li class=""><strong>Protecting Cold Contract Security</strong>: Cold contracts, as the main treasury, are designed to minimize on-chain interactions to maximize security. Sub-contracts serve as "frontline cashier points," handling all high-frequency payment activities, while cold contracts only make secure calls when fund sweeping is needed, forming clear security boundaries.</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-generation-mechanism-pre-generated-addresses-and-on-demand-deployment">2. Generation Mechanism: Pre-generated Addresses and On-Demand Deployment<a href="https://doc.coinbac.vip/blog/sub-contract#2-generation-mechanism-pre-generated-addresses-and-on-demand-deployment" class="hash-link" aria-label="Direct link to 2. Generation Mechanism: Pre-generated Addresses and On-Demand Deployment" title="Direct link to 2. Generation Mechanism: Pre-generated Addresses and On-Demand Deployment" translate="no">​</a></h2>
<p>Sub-contract generation is based on a secure factory template pattern. <strong>Each merchant's sub-contract factory template is strongly bound to their cold contract address upon deployment</strong>, ensuring that all sub-contracts generated through this template have the same security rules and fund flow directions.</p>
<ul>
<li class=""><strong>For deposit business</strong>: Merchants can actively call APIs to <strong>manually generate a dedicated sub-contract address</strong> for specific users and bind them together, achieving clear fund attribution.</li>
<li class=""><strong>For payment business</strong>: The payment system allocates sub-contract addresses from a pre-generated address pool <strong>on-demand</strong> to different orders based on order volume. To improve efficiency, <strong>orders from different time periods can reuse the same sub-contract address</strong>.</li>
<li class=""><strong>Key upgrade point</strong>: All pre-generated sub-contract addresses are initially just regular EOA addresses. Only when they receive funds and <strong>trigger the sweeping operation for the first time</strong> does the system formally deploy smart contract code on the blockchain, "upgrading" them into fully functional <strong>sub-contracts</strong>.</li>
</ul>
<p><strong>Importantly, due to the factory template's binding design, all funds in sub-contracts can only be swept to the designated cold contract through the unique sweeping operation path</strong>, fundamentally eliminating the risk of funds flowing to other addresses.</p>
<p>This process can be compared to a hotel allocating room cards to guests: The hotel reception has blank room cards (<strong>pre-generated sub-contract addresses</strong>). When guests check in (<strong>order generation/user binding</strong>), the reception authorizes a blank room card to a specific room (<strong>address allocation</strong>). Only when the guest first swipes the card to enter the room (<strong>first sweeping</strong>) is this check-in relationship formally activated and recorded (<strong>sub-contract deployment</strong>). After the guest checks out, the room is cleaned, and this room card can be re-authorized to the next guest (<strong>address reuse</strong>).</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-complete-fund-flow-process">3. Complete Fund Flow Process<a href="https://doc.coinbac.vip/blog/sub-contract#3-complete-fund-flow-process" class="hash-link" aria-label="Direct link to 3. Complete Fund Flow Process" title="Direct link to 3. Complete Fund Flow Process" translate="no">​</a></h2>
<p>Combined with sub-contracts, the fund flow path is clear and secure. <strong>Based on the binding relationship between templates and cold contracts, all sub-contract fund flows are strictly restricted</strong>:</p>
<ol>
<li class=""><strong>User Payment</strong> → Funds enter the dedicated sub-contract address generated for their order or account.</li>
<li class=""><strong>Sub-contract Sweeping</strong> → Merchants trigger operations to <strong>sweep funds from that address to the bound cold contract</strong> (main treasury); at this point, the address is formally "upgraded" to a sub-contract on-chain.</li>
<li class=""><strong>Cold Contract Allocation</strong> → As needed, transfer funds from the cold contract to the hot contract (operational liquidity account).</li>
<li class=""><strong>Merchant Withdrawal</strong> → Perform withdrawals or external payments through the hot contract.</li>
</ol>
<p>To better understand the entire system, we can compare it to the financial management of a large chain enterprise:</p>
<ul>
<li class=""><strong>Merchant</strong> is like a large chain enterprise</li>
<li class=""><strong>Cold Contract</strong> is the enterprise's "headquarters central treasury," secure but not frequently accessed</li>
<li class=""><strong>Sub-contract Factory Template</strong> is the enterprise's "standardized branch establishment guidelines," ensuring all branch funds ultimately flow to headquarters</li>
<li class=""><strong>Sub-contract Address</strong> is a batch of "payment account numbers" pre-applied by the enterprise</li>
<li class=""><strong>Sub-contract</strong> is the state after a "payment account number" is actually used and has established complete accounting records</li>
<li class=""><strong>Hot Contract</strong> is the enterprise's "daily operational cash account"</li>
</ul>
<p><strong>Specific Process</strong>: Customers pay to designated payment account numbers (<strong>sub-contract address receives payment</strong>) → Periodically sweep money from various account numbers <strong>according to established rules</strong> to the headquarters treasury, at which point the account number completes formal accounting (<strong>upgraded to sub-contract and swept to cold contract</strong>) → Headquarters allocates budget to operational accounts (<strong>cold contract → hot contract</strong>) → Enterprise makes daily expenditures (<strong>hot contract payments</strong>).</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-summary">⚡ Summary<a href="https://doc.coinbac.vip/blog/sub-contract#-summary" class="hash-link" aria-label="Direct link to ⚡ Summary" title="Direct link to ⚡ Summary" translate="no">​</a></h2>
<ul>
<li class=""><strong>Sub-contract Factory Template</strong> = "Standardized sub-account generator" bound to cold contract</li>
<li class=""><strong>Sub-contract Address</strong> = Pre-generated "payment account number"</li>
<li class=""><strong>Sub-contract</strong> = Activated and formally established "independent payment account"</li>
<li class=""><strong>Cold Contract</strong> = Merchant's "headquarters main treasury"</li>
<li class=""><strong>Hot Contract</strong> = Merchant's "daily operational account"</li>
</ul>
<p>This mechanism, through template binding, pre-generation, and on-demand activation strategies, not only achieves refined fund management and risk isolation but also ensures absolute controllability of fund flows. All sub-contract funds can only be swept to the bound cold contract through sweeping operations, meeting complex business requirements while architecturally ensuring asset security.</p>]]></content:encoded>
            <category>introduction</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[Why Coinbac Doesn't Use ERC-4337 for Now?]]></title>
            <link>https://doc.coinbac.vip/blog/erc4337</link>
            <guid>https://doc.coinbac.vip/blog/erc4337</guid>
            <pubDate>Fri, 29 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[In the blockchain field, ERC-4337 (Account Abstraction) has been very popular in recent years. It proposes a new account system that allows wallets to move beyond traditional Externally Owned Accounts (EOA) and be completely defined by smart contracts.]]></description>
            <content:encoded><![CDATA[<p>In the blockchain field, ERC-4337 (Account Abstraction) has been very popular in recent years. It proposes a new account system that allows wallets to move beyond traditional Externally Owned Accounts (EOA) and be completely defined by smart contracts.</p>
<p>It sounds ideal:</p>
<ul>
<li class="">User operations are submitted through <strong>UserOperation (UserOps)</strong> instead of regular transactions.</li>
<li class=""><strong>Bundlers</strong> collect users' UserOps, bundle them into a single transaction, and submit to the blockchain.</li>
<li class="">Account logic (signature methods, multi-factor authentication, limits, recovery mechanisms) is completely controlled by contracts, providing more flexible wallet experiences.</li>
</ul>
<p>However, after in-depth research, we found: <strong>The real-world effectiveness of ERC-4337 in payment business is not as perfect as imagined.</strong></p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-cost-issue-gas-is-not-actually-cheaper">1. Cost Issue: Gas Is Not Actually Cheaper<a href="https://doc.coinbac.vip/blog/erc4337#1-cost-issue-gas-is-not-actually-cheaper" class="hash-link" aria-label="Direct link to 1. Cost Issue: Gas Is Not Actually Cheaper" title="Direct link to 1. Cost Issue: Gas Is Not Actually Cheaper" translate="no">​</a></h2>
<ul>
<li class="">
<p><strong>ERC-4337's Problem</strong></p>
<ul>
<li class="">Each UserOps requires individual verification of signatures, nonces, and limit logic.</li>
<li class="">These validations are not natively executed by the blockchain main protocol, but simulated by Bundlers in the memory pool.</li>
<li class="">The final calldata submitted on-chain is longer and more complex, resulting in <strong>transaction fees often 2-3 times higher than regular transactions</strong>.</li>
<li class="">This extra overhead essentially trades "higher costs for more complex wallet logic".</li>
</ul>
</li>
<li class="">
<p><strong>Pay Protocol's Solution</strong></p>
<ul>
<li class="">Users don't need to operate themselves; merchants can batch operations, significantly reducing costs.</li>
<li class="">No additional verification logic, more concise on-chain data, Gas consumption cheaper than standard transactions.</li>
</ul>
</li>
</ul>
<p>👉 In payment scenarios, <strong>low cost is far more important than complex features</strong>. Merchants want "cheaper per transaction", not "fancier signature methods".</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-compatibility-issues">2. Compatibility Issues<a href="https://doc.coinbac.vip/blog/erc4337#2-compatibility-issues" class="hash-link" aria-label="Direct link to 2. Compatibility Issues" title="Direct link to 2. Compatibility Issues" translate="no">​</a></h2>
<ul>
<li class="">
<p><strong>ERC-4337's Problem</strong></p>
<ul>
<li class="">While the standard unifies UserOps interfaces, specific implementations vary greatly.</li>
<li class="">Smart contract wallets provided by different service providers (like ZeroDev, Biconomy) have inconsistent structures.</li>
<li class="">Application layer faces extremely high compatibility costs when supporting multiple providers. In practice, developers are often forced to choose one provider and get locked into their ecosystem.</li>
</ul>
</li>
<li class="">
<p><strong>Pay Protocol's Solution</strong></p>
<ul>
<li class="">Our keyless accounts are based on contract factories, following standard EVM logic.</li>
<li class=""><strong>Works out-of-the-box on any EVM public chain</strong>, without depending on specific service providers.</li>
</ul>
</li>
</ul>
<p>👉 For merchants, the real meaning of openness is not "new standards", but "switch chains anytime, integrate anytime".</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-upgrade--maintenance-proxy-complexity-vs-template-simplicity">3. Upgrade &amp; Maintenance: Proxy Complexity vs Template Simplicity<a href="https://doc.coinbac.vip/blog/erc4337#3-upgrade--maintenance-proxy-complexity-vs-template-simplicity" class="hash-link" aria-label="Direct link to 3. Upgrade &amp; Maintenance: Proxy Complexity vs Template Simplicity" title="Direct link to 3. Upgrade &amp; Maintenance: Proxy Complexity vs Template Simplicity" translate="no">​</a></h2>
<ul>
<li class="">
<p><strong>ERC-4337's Problem</strong></p>
<ul>
<li class="">
<p>Once contract wallets are deployed, their logic is hardcoded.</p>
</li>
<li class="">
<p>To add new features, the <strong>Proxy upgrade pattern</strong> is typically required:</p>
<ol>
<li class="">Write a new logic contract first.</li>
<li class="">Modify Proxy pointer to point to new logic.</li>
<li class="">Handle old data migration and security audits.</li>
</ol>
</li>
<li class="">
<p>This process is not only cumbersome but also prone to introducing new vulnerabilities, increasing audit costs.</p>
</li>
</ul>
</li>
<li class="">
<p><strong>Pay Protocol's Solution</strong></p>
<ul>
<li class="">Keyless accounts are batch-generated based on template contracts.</li>
<li class="">When upgrades are needed, simply publish a new template version and batch-generate new accounts.</li>
<li class="">No need to handle Proxy complexity; migration path is simple and direct.</li>
</ul>
</li>
</ul>
<p>👉 <strong>Simplicity is security</strong>; the more complex the contract structure, the higher the probability of issues.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-security-risks-greater-flexibility-also-brings-larger-attack-surface">4. Security Risks: Greater Flexibility Also Brings Larger Attack Surface<a href="https://doc.coinbac.vip/blog/erc4337#4-security-risks-greater-flexibility-also-brings-larger-attack-surface" class="hash-link" aria-label="Direct link to 4. Security Risks: Greater Flexibility Also Brings Larger Attack Surface" title="Direct link to 4. Security Risks: Greater Flexibility Also Brings Larger Attack Surface" translate="no">​</a></h2>
<ul>
<li class="">
<p><strong>ERC-4337's Problem</strong></p>
<ul>
<li class="">Since account logic is programmable, it can theoretically support any signature or permission control method.</li>
<li class="">But greater flexibility also means more ambiguous security boundaries.</li>
<li class="">Past cases have shown: attackers can create "unauthorized accounts" through vulnerabilities, even bypassing verification.</li>
<li class="">Such risks are unacceptable in payment business.</li>
</ul>
</li>
<li class="">
<p><strong>Pay Protocol's Solution</strong></p>
<ul>
<li class="">The logic of keyless accounts is extremely simple: just a factory contract responsible for generating standard accounts.</li>
<li class="">No complex multi-factor verification or external dependencies, thus no additional attack surface.</li>
</ul>
</li>
</ul>
<p>👉 For the payment industry, <strong>security comes first</strong>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-target-customer-base-toc-vs-tob-fundamental-differences">5. Target Customer Base: toC vs toB Fundamental Differences<a href="https://doc.coinbac.vip/blog/erc4337#5-target-customer-base-toc-vs-tob-fundamental-differences" class="hash-link" aria-label="Direct link to 5. Target Customer Base: toC vs toB Fundamental Differences" title="Direct link to 5. Target Customer Base: toC vs toB Fundamental Differences" translate="no">​</a></h2>
<ul>
<li class="">
<p><strong>ERC-4337's Positioning</strong></p>
<ul>
<li class="">Primarily targets <strong>C-end individual users</strong>, providing them with smarter wallet experiences.</li>
<li class="">Focuses on solving individual user pain points: forgetting private keys, complex signature operations, lack of social recovery, etc.</li>
<li class="">Users are willing to pay extra costs for better experiences, with relatively low sensitivity to Gas fees.</li>
<li class="">Pursues wallet functionality differentiation and personalization.</li>
</ul>
</li>
<li class="">
<p><strong>Pay Protocol's Positioning</strong></p>
<ul>
<li class="">Focuses on serving <strong>B-end merchants and payment platforms</strong>, helping them quickly integrate blockchain payments.</li>
<li class="">Emphasizes enterprise-level needs: batch processing, cost control, compliance requirements, system integration.</li>
<li class="">Merchants are extremely cost-sensitive; even a 1% reduction in transaction fees brings significant benefits.</li>
<li class="">Pursues stability, predictability, and large-scale operations.</li>
</ul>
</li>
</ul>
<p>👉 <strong>Different customer groups have completely different core demands</strong>. ERC-4337 solves "making personal wallets more user-friendly", while Pay Protocol solves "making merchant payments more cost-effective".</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="comparison-summary">Comparison Summary<a href="https://doc.coinbac.vip/blog/erc4337#comparison-summary" class="hash-link" aria-label="Direct link to Comparison Summary" title="Direct link to Comparison Summary" translate="no">​</a></h2>
<table><thead><tr><th>Dimension</th><th>ERC-4337</th><th>Pay Protocol Keyless Accounts</th></tr></thead><tbody><tr><td>Target Customer</td><td><strong>Individual Users</strong>, pursuing wallet experience upgrades</td><td><strong>Merchants &amp; Payment Platforms</strong>, pursuing cost &amp; efficiency</td></tr><tr><td>Cost</td><td>UserOps cost 2-3x higher, increased Gas cost</td><td>Merchant batch sweeping, low operation cost, minimal Gas cost</td></tr><tr><td>Compatibility</td><td>Large provider differences, difficult cross-platform application</td><td>Works directly on any EVM chain</td></tr><tr><td>Upgrade &amp; Maintenance</td><td>Requires Proxy upgrades, complex and costly</td><td>Update template once, batch deploy, simple maintenance</td></tr><tr><td>Security Risk</td><td>Flexible but large attack surface, known vulnerability cases</td><td>Extremely simple logic, small attack surface</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="our-conclusion">Our Conclusion<a href="https://doc.coinbac.vip/blog/erc4337#our-conclusion" class="hash-link" aria-label="Direct link to Our Conclusion" title="Direct link to Our Conclusion" translate="no">​</a></h2>
<p>ERC-4337 represents the future direction of wallet development: more flexible, more personalized, more intelligent. But it's still in early stages with an immature ecosystem:</p>
<ul>
<li class="">Bundler operation relies on a few service providers → <strong>De facto centralization</strong>.</li>
<li class="">High costs → <strong>Not suitable for high-frequency payments</strong>.</li>
<li class="">Upgrade and compatibility not friendly enough → <strong>Increases maintenance costs</strong>.</li>
</ul>
<p>For payment business, <strong>saving money, peace of mind, and security</strong> are the core values.</p>
<p>Therefore, Pay Protocol will not adopt ERC-4337 for now, but chooses a <strong>more direct, controllable, and stable keyless account solution</strong> to provide merchants and users with a payment experience that's usable today and secure enough.</p>
<p><strong>Summary in one sentence: ERC-4337 focuses on enhancing personal wallet experiences, while Pay Protocol focuses on solving enterprise payment cost issues.</strong></p>
<hr>]]></content:encoded>
            <category>introduction</category>
            <category>wallet</category>
        </item>
        <item>
            <title><![CDATA[Analysis of Blockchain Wallet Types and Differences]]></title>
            <link>https://doc.coinbac.vip/blog/wallet-types</link>
            <guid>https://doc.coinbac.vip/blog/wallet-types</guid>
            <pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Blockchain wallets are the "keychains" of the blockchain world, determining how you access and manage assets while impacting security and functionality. Wallet differences can be categorized by usage patterns or underlying protocol models. This article provides a comprehensive understanding of both classification methods, including security recommendations and a comparison table of common wallets.]]></description>
            <content:encoded><![CDATA[<p>Blockchain wallets are the "keychains" of the blockchain world, determining how you access and manage assets while impacting security and functionality. Wallet differences can be categorized by <strong>usage patterns</strong> or underlying <strong>protocol models</strong>. This article provides a comprehensive understanding of both classification methods, including security recommendations and a comparison table of common wallets.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="i-usage-based-classification">I. Usage-Based Classification<a href="https://doc.coinbac.vip/blog/wallet-types#i-usage-based-classification" class="hash-link" aria-label="Direct link to I. Usage-Based Classification" title="Direct link to I. Usage-Based Classification" translate="no">​</a></h2>
<p>From user experience and key management perspectives, wallets can be divided into:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-by-connectivity-hot-wallet-vs-cold-wallet">1. By Connectivity: Hot Wallet vs Cold Wallet<a href="https://doc.coinbac.vip/blog/wallet-types#1-by-connectivity-hot-wallet-vs-cold-wallet" class="hash-link" aria-label="Direct link to 1. By Connectivity: Hot Wallet vs Cold Wallet" title="Direct link to 1. By Connectivity: Hot Wallet vs Cold Wallet" translate="no">​</a></h3>
<table><thead><tr><th><strong>Type</strong></th><th><strong>Definition</strong></th><th><strong>Advantages</strong></th><th><strong>Disadvantages</strong></th><th><strong>Use Cases</strong></th></tr></thead><tbody><tr><td>Hot Wallet</td><td>Private key on online device</td><td>Easy operation, instant transactions</td><td>Vulnerable to hacking</td><td>Frequent trading, small funds</td></tr><tr><td>Cold Wallet</td><td>Private key on offline device</td><td>High security</td><td>Inconvenient to use</td><td>Long-term holding of large amounts</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-by-custody-custodial-vs-non-custodial">2. By Custody: Custodial vs Non-Custodial<a href="https://doc.coinbac.vip/blog/wallet-types#2-by-custody-custodial-vs-non-custodial" class="hash-link" aria-label="Direct link to 2. By Custody: Custodial vs Non-Custodial" title="Direct link to 2. By Custody: Custodial vs Non-Custodial" translate="no">​</a></h3>
<table><thead><tr><th><strong>Type</strong></th><th><strong>Definition</strong></th><th><strong>Advantages</strong></th><th><strong>Disadvantages</strong></th><th><strong>Target Users</strong></th></tr></thead><tbody><tr><td>Custodial</td><td>Third-party key custody</td><td>User-friendly, no key loss risk</td><td>Platform risk</td><td>Beginners, small amounts</td></tr><tr><td>Non-Custodial</td><td>User self-custody</td><td>Full asset control</td><td>Irrecoverable if keys lost</td><td>Experienced users, large amounts</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-by-physical-form">3. By Physical Form<a href="https://doc.coinbac.vip/blog/wallet-types#3-by-physical-form" class="hash-link" aria-label="Direct link to 3. By Physical Form" title="Direct link to 3. By Physical Form" translate="no">​</a></h3>
<ul>
<li class=""><strong>Software Wallets</strong>: Mobile apps, desktop clients, browser extensions (e.g., MetaMask, Trust Wallet)</li>
<li class=""><strong>Hardware Wallets</strong>: Offline devices (e.g., Ledger, Trezor, OneKey)</li>
<li class=""><strong>Paper Wallets</strong>: Printed/handwritten private keys and addresses</li>
<li class=""><strong>Multi-Sig Wallets</strong>: Require multiple signatures for transactions (e.g., Gnosis Safe)</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ii-protocolaccount-model-classification">II. Protocol/Account Model Classification<a href="https://doc.coinbac.vip/blog/wallet-types#ii-protocolaccount-model-classification" class="hash-link" aria-label="Direct link to II. Protocol/Account Model Classification" title="Direct link to II. Protocol/Account Model Classification" translate="no">​</a></h2>
<p>Different blockchain account designs at the protocol layer:</p>
<table><thead><tr><th><strong>Model</strong></th><th><strong>Control Method</strong></th><th><strong>Characteristics</strong></th><th><strong>Representative Wallets/Chains</strong></th></tr></thead><tbody><tr><td>EOA (Externally Owned Account)</td><td>Single private key</td><td>Simple, compatible, key-dependent security</td><td>MetaMask, Trust Wallet (Ethereum)</td></tr><tr><td>CA (Contract Account)</td><td>Smart contract logic</td><td>Programmable, multi-sig, limits</td><td>Gnosis Safe, Pay Protocol (Merchant)</td></tr><tr><td>AA (Account Abstraction)</td><td>Key + contract combination</td><td>Gas sponsorship, social recovery, batch tx</td><td>ERC-4337 Smart Wallets</td></tr><tr><td>UTXO Model</td><td>Unspent transaction outputs</td><td>Better privacy, flexible tx structure</td><td>Bitcoin Core, Electrum</td></tr><tr><td>MPC (Multi-Party Computation)</td><td>Distributed key shards</td><td>No single point of failure, institutional use</td><td>Fireblocks, ZenGo</td></tr></tbody></table>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="pay-protocol-web3-payment-infrastructure">Pay Protocol: Web3 Payment Infrastructure<a href="https://doc.coinbac.vip/blog/wallet-types#pay-protocol-web3-payment-infrastructure" class="hash-link" aria-label="Direct link to Pay Protocol: Web3 Payment Infrastructure" title="Direct link to Pay Protocol: Web3 Payment Infrastructure" translate="no">​</a></h3>
<p><strong>Pay Protocol</strong> is a non-custodial, smart contract-driven decentralized payment and wallet infrastructure designed for B2C enterprises (e.g., retailers, fintech companies). It enables merchants to maintain full on-chain control while avoiding traditional centralized key management risks.</p>
<ul>
<li class=""><strong>Protocol Model</strong>: Contract Account (CA) type, managing funds through pure contract logic without server-side key storage.</li>
<li class=""><strong>Technical Advantages</strong>:<!-- -->
<ul>
<li class="">Funds remain recoverable even if merchant servers are compromised</li>
<li class="">Lower costs vs MPC solutions with no server maintenance</li>
<li class="">Flexible multi-sig and administrative policy configurations</li>
</ul>
</li>
<li class=""><strong>Use Cases</strong>: Merchants/financial institutions integrating crypto payments while maintaining on-chain asset control. Classified as CA-type wallet with smart contract management features.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iii-security-risks-and-prevention">III. Security Risks and Prevention<a href="https://doc.coinbac.vip/blog/wallet-types#iii-security-risks-and-prevention" class="hash-link" aria-label="Direct link to III. Security Risks and Prevention" title="Direct link to III. Security Risks and Prevention" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="common-risks">Common Risks<a href="https://doc.coinbac.vip/blog/wallet-types#common-risks" class="hash-link" aria-label="Direct link to Common Risks" title="Direct link to Common Risks" translate="no">​</a></h3>
<ol>
<li class=""><strong>Private Key/Seed Phrase Leak</strong> → Asset theft</li>
<li class=""><strong>Phishing Sites/Fake Apps</strong> → Unauthorized approvals</li>
<li class=""><strong>Malicious Contract Approvals</strong> → Asset draining</li>
<li class=""><strong>Counterfeit Hardware Wallets</strong> → Pre-installed backdoors</li>
<li class=""><strong>Device Infections</strong> → Remote control of hot wallets</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="prevention-recommendations">Prevention Recommendations<a href="https://doc.coinbac.vip/blog/wallet-types#prevention-recommendations" class="hash-link" aria-label="Direct link to Prevention Recommendations" title="Direct link to Prevention Recommendations" translate="no">​</a></h3>
<ul>
<li class="">🔒 Separate cold/hot wallets: Small amounts in hot, large amounts in cold</li>
<li class="">🛒 Buy hardware wallets from official channels</li>
<li class="">🔄 Regularly revoke unused contract approvals (e.g., Revoke.cash)</li>
<li class="">🌐 Never enter seed phrases on public networks</li>
<li class="">🔑 Enhance security with multi-sig or MPC</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iv-wallet-comparison-table">IV. Wallet Comparison Table<a href="https://doc.coinbac.vip/blog/wallet-types#iv-wallet-comparison-table" class="hash-link" aria-label="Direct link to IV. Wallet Comparison Table" title="Direct link to IV. Wallet Comparison Table" translate="no">​</a></h2>
<table><thead><tr><th><strong>Wallet Name</strong></th><th><strong>Usage Type</strong></th><th><strong>Protocol Model</strong></th><th><strong>Supported Chains</strong></th><th><strong>Key Features</strong></th></tr></thead><tbody><tr><td>MetaMask</td><td>Hot / Non-Custodial</td><td>EOA</td><td>EVM Chains</td><td>Extension+App, DeFi standard</td></tr><tr><td>Trust Wallet</td><td>Hot / Non-Custodial</td><td>EOA</td><td>Multi-chain</td><td>Mobile-optimized</td></tr><tr><td>Ledger</td><td>Cold / Non-Custodial / Hardware</td><td>EOA</td><td>Multi-chain</td><td>High hardware security</td></tr><tr><td>Gnosis Safe</td><td>Hot/Cold / Non-Custodial / Multi-sig</td><td>CA</td><td>EVM Chains</td><td>Team treasury management</td></tr><tr><td>Fireblocks</td><td>Custodial / MPC</td><td>MPC</td><td>Multi-chain</td><td>Institutional custody solution</td></tr><tr><td>Bitcoin Core</td><td>Hot/Cold / Non-Custodial / Software</td><td>UTXO</td><td>Bitcoin</td><td>Native Bitcoin wallet</td></tr><tr><td>Pay Protocol (Merchant)</td><td>Hot / Non-Custodial / Software</td><td>CA</td><td>EVM-compatible</td><td>Merchant integration, on-chain asset control</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://doc.coinbac.vip/blog/wallet-types#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<ul>
<li class=""><strong>Usage-based classification</strong> determines wallet security and convenience</li>
<li class=""><strong>Protocol model classification</strong> defines functional capabilities and security policies</li>
<li class="">Businesses/institutions should consider CA-type wallets (e.g., Pay Protocol) for on-chain asset control with flexible contract configurations for multi-sig, payments, and permissions</li>
</ul>]]></content:encoded>
            <category>introduction</category>
            <category>merchant</category>
            <category>wallet</category>
        </item>
        <item>
            <title><![CDATA[Signer Introduction]]></title>
            <link>https://doc.coinbac.vip/blog/security-signer</link>
            <guid>https://doc.coinbac.vip/blog/security-signer</guid>
            <pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[This article introduces the working principle, security design, and operational flow of the VAR::BRAND_NAME Signer, aiming to help merchants understand how to achieve high-security on-chain asset management through an "offline signing + on-chain broadcasting separation" model.]]></description>
            <content:encoded><![CDATA[<p>This article introduces the working principle, security design, and operational flow of the Pay Protocol Signer, aiming to help merchants understand how to achieve high-security on-chain asset management through an "offline signing + on-chain broadcasting separation" model.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-signing-principles-and-security-design">1. Signing Principles and Security Design<a href="https://doc.coinbac.vip/blog/security-signer#1-signing-principles-and-security-design" class="hash-link" aria-label="Direct link to 1. Signing Principles and Security Design" title="Direct link to 1. Signing Principles and Security Design" translate="no">​</a></h2>
<p><strong>What is on-chain signing?</strong></p>
<p>In the blockchain, "signing" refers to the process of using an account's private key to cryptographically confirm transaction data, ensuring that the transaction originates from a legitimate account and its content has not been tampered with. It follows the principles of asymmetric cryptography—signing with a private key and verifying with a public key—making it non-forgeable and tamper-proof.</p>
<p><strong>Why must signatures be protected?</strong></p>
<p>Traditional systems often host the signing process on servers, which poses the following risks:</p>
<ul>
<li class=""><strong>Private key leakage risk:</strong> If the server is compromised, assets face enormous losses.</li>
<li class=""><strong>Plaintext data exposure:</strong> Transaction content may be monitored or intercepted during transmission over the public network.</li>
<li class=""><strong>Non-auditable operations:</strong> If multiple people can access the server, signing activities lack transparency and a secure boundary.</li>
</ul>
<p><strong>Secure Signing Design Philosophy</strong></p>
<p>To address these issues, Pay Protocol has designed a security architecture of "localized signing + minimized data + separation of permissions":</p>
<ul>
<li class="">Signing is completed on the merchant's local server, and the private key never goes online.</li>
<li class="">The platform only processes the signature hash and never sees the plaintext data.</li>
<li class="">Signing and transaction broadcasting are performed by different entities, creating a separation of permissions.</li>
</ul>
<p>This architecture significantly reduces the risk of single-point-of-failure leaks and enhances the compliance and security of on-chain asset operations.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-secure-signing-flow-overview-five-steps">2. Secure Signing Flow Overview (Five Steps)<a href="https://doc.coinbac.vip/blog/security-signer#2-secure-signing-flow-overview-five-steps" class="hash-link" aria-label="Direct link to 2. Secure Signing Flow Overview (Five Steps)" title="Direct link to 2. Secure Signing Flow Overview (Five Steps)" translate="no">​</a></h2>
<p>The entire signing process is divided into the following five steps:</p>
<p>For specific deployment, please refer to the document: <a class="" href="https://doc.coinbac.vip/docs/api/signer/signer">Signer Installation and Deployment</a></p>
<ol>
<li class="">
<p><strong>Signer Installation</strong></p>
<p>Merchants deploy the Signer as a Docker container on their own intranet server:</p>
<ul>
<li class="">The server does not expose a public network interface.</li>
<li class="">Only the merchant has access rights.</li>
<li class="">It can be deployed on a physical machine, local IDC, or private cloud environment.</li>
</ul>
<p>This step ensures the privacy of the signing service, creating physical isolation.</p>
</li>
<li class="">
<p><strong>Batch Transfer Submission</strong></p>
<p>Merchants prepare a list of transfers (e.g., multiple addresses and amount combinations) and submit it to the Signer via an intranet interface. This process:</p>
<ul>
<li class="">Does not go through the platform or any third party.</li>
<li class="">Transaction data remains within the merchant's network.</li>
<li class="">Ensures the privacy of transaction information.</li>
</ul>
</li>
<li class="">
<p><strong>Generate Transfer Signatures</strong></p>
<p>The Signer uses the local hot wallet's private key to sign each transfer data one by one. The signing action does not depend on the platform's API and is completed locally:</p>
<ul>
<li class="">The private key never leaves the merchant's server.</li>
<li class="">The result of the signature is a hash + digital signature.</li>
</ul>
<p>Once completed, the merchant can batch export the signature data in preparation for broadcasting.</p>
</li>
<li class="">
<p><strong>Submit Signatures</strong></p>
<p>The merchant submits the signed transaction hashes to the platform. The platform only receives the following information:</p>
<ul>
<li class="">Signature hash.</li>
<li class="">Blockchain network type.</li>
<li class="">Does not include plaintext of the transfer.</li>
</ul>
<p>The platform cannot restore the transfer content, nor can it replay the transaction, ensuring "data invisibility."</p>
</li>
<li class="">
<p><strong>Confirm Transfer &amp; Callback Notification</strong></p>
<p>The platform broadcasts the received signature hashes to the blockchain network and verifies the legality of the signatures on-chain. After the transaction is successful, the platform will notify the merchant via a callback:</p>
<ul>
<li class="">The callback information includes the transaction hash, status, and block height.</li>
<li class="">If it fails, the failure status will also be synchronized for easy tracking.</li>
</ul>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-security-advantage-analysis">3. Security Advantage Analysis<a href="https://doc.coinbac.vip/blog/security-signer#3-security-advantage-analysis" class="hash-link" aria-label="Direct link to 3. Security Advantage Analysis" title="Direct link to 3. Security Advantage Analysis" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left">Security Mechanism</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><strong>Intranet Deployment</strong></td><td style="text-align:left">The signing process runs entirely on the merchant's local machine, preventing external intrusions.</td></tr><tr><td style="text-align:left"><strong>Private Key Isolation</strong></td><td style="text-align:left">The private key exists only in the Signer, is never uploaded, and is never exposed.</td></tr><tr><td style="text-align:left"><strong>No Plaintext Off-Network</strong></td><td style="text-align:left">Plaintext transfer data is not transmitted through the platform, so the transaction content cannot be inferred.</td></tr><tr><td style="text-align:left"><strong>Principle of Least Privilege</strong></td><td style="text-align:left">The platform only acts as a broadcast node and cannot control the merchant's funds.</td></tr><tr><td style="text-align:left"><strong>Separation of Powers Design</strong></td><td style="text-align:left">Signing and on-chain broadcasting are executed separately to avoid centralized control risks.</td></tr><tr><td style="text-align:left"><strong>Zero-Trust Architecture</strong></td><td style="text-align:left">The platform does not need to trust the merchant, and the merchant does not need to trust the platform; the system operates on a default untrusted model.</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-typical-application-scenarios">4. Typical Application Scenarios<a href="https://doc.coinbac.vip/blog/security-signer#4-typical-application-scenarios" class="hash-link" aria-label="Direct link to 4. Typical Application Scenarios" title="Direct link to 4. Typical Application Scenarios" translate="no">​</a></h2>
<ul>
<li class=""><strong>Batch Transfers:</strong> Such as payroll, project rewards, batch airdrops, etc.</li>
<li class=""><strong>Payment Sweeping:</strong> Batch consolidation operations after multiple small-amount collections.</li>
<li class=""><strong>On-chain Broadcasting After Off-chain Risk Control:</strong> The internal audit system confirms off-chain and then hands it over to the Signer for signing.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-summary">5. Summary<a href="https://doc.coinbac.vip/blog/security-signer#5-summary" class="hash-link" aria-label="Direct link to 5. Summary" title="Direct link to 5. Summary" translate="no">​</a></h2>
<p>The secure signing solution from Pay Protocol, through the Signer, builds a secure model of <strong>"offline signing + separate on-chain broadcasting,"</strong> featuring:</p>
<ul>
<li class=""><strong>Zero private key exposure risk.</strong></li>
<li class=""><strong>Strong privacy protection capabilities.</strong></li>
<li class=""><strong>Flexible distributed deployment.</strong></li>
</ul>
<p>It is particularly suitable for Web3 merchants or project parties with high-security requirements and batch operation needs, providing a highly reliable, auditable, and low-trust-dependent infrastructure for on-chain asset operations.</p>]]></content:encoded>
            <category>introduction</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[Contract Address Risk Notice]]></title>
            <link>https://doc.coinbac.vip/blog/contract-address-risk-notice</link>
            <guid>https://doc.coinbac.vip/blog/contract-address-risk-notice</guid>
            <pubDate>Tue, 10 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[When you make on-chain payments, wallets like TP (TokenPocket) and imToken may display a warning: "The address you entered is a contract address. Please verify before transferring." This warning often causes concern. Below is a detailed explanation.]]></description>
            <content:encoded><![CDATA[<p>When you make on-chain payments, wallets like TP (TokenPocket) and imToken may display a warning: "The address you entered is a contract address. Please verify before transferring." This warning often causes concern. Below is a detailed explanation.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-is-a-contract-address-safe"><strong>1. Is a Contract Address Safe?</strong><a href="https://doc.coinbac.vip/blog/contract-address-risk-notice#1-is-a-contract-address-safe" class="hash-link" aria-label="Direct link to 1-is-a-contract-address-safe" title="Direct link to 1-is-a-contract-address-safe" translate="no">​</a></h2>
<p>A contract address is an on-chain account used to execute smart contracts. The contract addresses used by our platform are payment contracts deployed and audited by us, <strong>with specific purposes and solely for receiving user payments</strong>. These contracts cannot initiate fund transfers or maliciously operate your wallet assets, making them <strong>secure</strong>.</p>
<p>✅ Contract addresses are publicly verifiable on-chain. You can check their code and transaction records in a blockchain explorer to ensure security.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-why-do-wallets-display-contract-address-risk"><strong>2. Why Do Wallets Display "Contract Address Risk"?</strong><a href="https://doc.coinbac.vip/blog/contract-address-risk-notice#2-why-do-wallets-display-contract-address-risk" class="hash-link" aria-label="Direct link to 2-why-do-wallets-display-contract-address-risk" title="Direct link to 2-why-do-wallets-display-contract-address-risk" translate="no">​</a></h2>
<p>This is the wallet's <strong>default risk warning mechanism</strong>, designed to remind users to proceed with caution and avoid sending assets to unknown or malicious contract addresses.</p>
<p>Rest assured, our contract addresses <strong>have been tested and verified</strong> and have been running stably for a long time.</p>
<p>⚠️ Wallets do not judge whether a contract is "good or bad"—they simply recognize it as a "contract" rather than a regular wallet address, thus triggering the warning automatically.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-warning-examples-in-tp-tokenpocket-and-imtoken-wallets"><strong>3. Warning Examples in TP (TokenPocket) and imToken Wallets</strong><a href="https://doc.coinbac.vip/blog/contract-address-risk-notice#3-warning-examples-in-tp-tokenpocket-and-imtoken-wallets" class="hash-link" aria-label="Direct link to 3-warning-examples-in-tp-tokenpocket-and-imtoken-wallets" title="Direct link to 3-warning-examples-in-tp-tokenpocket-and-imtoken-wallets" translate="no">​</a></h2>
<p>As shown below, when TP and imToken detect a contract address, they display:</p>
<p><strong>"The address you entered is a contract address. Please verify before transferring!"</strong>
<img decoding="async" loading="lazy" alt="TokenPocket Risk Warning Screenshot" src="https://doc.coinbac.vip/assets/images/1-dd8c6e92b6dda6a8f278eeffae106117.jpg" width="591" height="1280" class="img_ev3q">
<img decoding="async" loading="lazy" alt="imToken Risk Warning Screenshot" src="https://doc.coinbac.vip/assets/images/2-39f129bb9edae0835b386dda5798accb.jpg" width="591" height="1280" class="img_ev3q"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-we-recommend-the-following-actions"><strong>4. We Recommend the Following Actions:</strong><a href="https://doc.coinbac.vip/blog/contract-address-risk-notice#4-we-recommend-the-following-actions" class="hash-link" aria-label="Direct link to 4-we-recommend-the-following-actions" title="Direct link to 4-we-recommend-the-following-actions" translate="no">​</a></h2>
<ol>
<li class=""><strong>Confirm the address source is reliable</strong>: Ensure the receiving address is provided by our platform. Do not change it yourself.</li>
<li class=""><strong>Proceed with the transfer</strong>: Even if the wallet shows a warning, you can safely transfer as long as the address is correct.</li>
<li class=""><strong>Contact customer support for questions</strong>: We will promptly verify the contract address and provide technical support.</li>
</ol>
<hr>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Important Notice</div><div class="admonitionContent_BuS1"><p>Our platform's contract addresses operate stably, and transfers are secure. Wallet warnings are precautionary measures and do not indicate actual risks.
If you still have concerns, please contact us for verification.</p></div></div>]]></content:encoded>
            <category>wallet</category>
            <category>security</category>
        </item>
        <item>
            <title><![CDATA[Automatic Energy Purchase on ITRX Configuration Tutorial]]></title>
            <link>https://doc.coinbac.vip/blog/automatic-energy-purchase-on-itrx</link>
            <guid>https://doc.coinbac.vip/blog/automatic-energy-purchase-on-itrx</guid>
            <pubDate>Tue, 11 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[To help merchants further reduce energy costs, we have added support for the ITRX platform. Merchants can now choose to automatically purchase energy from ITRX or Neee before on-chain operations, thereby reducing TRX consumption.]]></description>
            <content:encoded><![CDATA[<p>To help merchants further reduce energy costs, we have added support for the <a href="https://itrx.me/" target="_blank" rel="noopener noreferrer" class="">ITRX</a> platform. Merchants can now choose to automatically purchase energy from ITRX or Neee before on-chain operations, thereby reducing TRX consumption.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="i-itrx-account-application-and-login">I. ITRX Account Application and Login<a href="https://doc.coinbac.vip/blog/automatic-energy-purchase-on-itrx#i-itrx-account-application-and-login" class="hash-link" aria-label="Direct link to I. ITRX Account Application and Login" title="Direct link to I. ITRX Account Application and Login" translate="no">​</a></h2>
<ol>
<li class="">
<p>Submit your email to Pay Protocol business or team members. After administrator review, they will activate your ITRX account.</p>
</li>
<li class="">
<p>Log in to <a href="https://itrx.me/" target="_blank" rel="noopener noreferrer" class="">ITRX</a> using your email and the initial password we sent. Please change your password promptly after logging in.</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ii-api-key-creation-and-deposit-address-retrieval">II. API Key Creation and Deposit Address Retrieval<a href="https://doc.coinbac.vip/blog/automatic-energy-purchase-on-itrx#ii-api-key-creation-and-deposit-address-retrieval" class="hash-link" aria-label="Direct link to II. API Key Creation and Deposit Address Retrieval" title="Direct link to II. API Key Creation and Deposit Address Retrieval" translate="no">​</a></h2>
<ol>
<li class="">
<p>After logging into ITRX, open <strong>"User Center-API"</strong>, create an API and copy the API Key and API Secret.</p>
<p><img decoding="async" loading="lazy" alt="Create API" src="https://doc.coinbac.vip/assets/images/1-6b13723e24e45058c7ba03e3702b3fcb.png" width="1920" height="795" class="img_ev3q"></p>
</li>
<li class="">
<p>Go to the <strong>Deposit &amp; Withdrawal</strong> page, copy the <strong>deposit address</strong>, and deposit TRX to this address using your wallet (ensure the deposit amount is sufficient for purchasing energy).</p>
<p><img decoding="async" loading="lazy" alt="Deposit Address" src="https://doc.coinbac.vip/assets/images/2-59495e480f58ab9890d9c4cdacf8b92d.png" width="1906" height="795" class="img_ev3q"></p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iii-configure-itrx-automatic-energy-purchase">III. Configure ITRX Automatic Energy Purchase<a href="https://doc.coinbac.vip/blog/automatic-energy-purchase-on-itrx#iii-configure-itrx-automatic-energy-purchase" class="hash-link" aria-label="Direct link to III. Configure ITRX Automatic Energy Purchase" title="Direct link to III. Configure ITRX Automatic Energy Purchase" translate="no">​</a></h2>
<ol>
<li class="">
<p>Log in to Pay Protocol <a href="https://adm.payprotocol.network/" target="_blank" rel="noopener noreferrer" class="">admin console</a> with an administrator account, click "Organization Info"-"Edit".</p>
<p><img decoding="async" loading="lazy" alt="Edit Organization Info" src="https://doc.coinbac.vip/assets/images/3-d776e67c95397fb6b4d04178d7a7c6b0.png" width="1755" height="904" class="img_ev3q"></p>
</li>
<li class="">
<p>Select ITRX as the preferred platform for automatic energy purchase, then fill in the ITRX <strong>API Key</strong>, <strong>API Secret</strong>, and <strong>deposit address</strong>. Click "Submit" to save after confirming everything is correct.</p>
<p><img decoding="async" loading="lazy" alt="Configure API" src="https://doc.coinbac.vip/assets/images/4-c39970df5aaa4c937ff77c4ffa16a30f.png" width="1414" height="650" class="img_ev3q"></p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iv-automatic-energy-purchase-demo-using-consolidation-as-example">IV. Automatic Energy Purchase Demo (Using Consolidation as Example)<a href="https://doc.coinbac.vip/blog/automatic-energy-purchase-on-itrx#iv-automatic-energy-purchase-demo-using-consolidation-as-example" class="hash-link" aria-label="Direct link to IV. Automatic Energy Purchase Demo (Using Consolidation as Example)" title="Direct link to IV. Automatic Energy Purchase Demo (Using Consolidation as Example)" translate="no">​</a></h2>
<ol>
<li class="">
<p>In the Pay Protocol admin console, click "Fund Management"-"Sweep", select any wallets pending sweeping for batch processing.</p>
<p><img decoding="async" loading="lazy" alt="Sweep" src="https://doc.coinbac.vip/assets/images/5-4235b6b3b219c499e61d8b3de3cf5ada.png" width="1722" height="921" class="img_ev3q"></p>
</li>
<li class="">
<p>If the current administrator wallet has insufficient energy, the system will prompt "Do you want to purchase energy". Select <strong>"Buy for me"</strong> and click <strong>"Buy on ITRX"</strong>, the system will automatically complete the energy purchase on the selected platform.</p>
<p><img decoding="async" loading="lazy" alt="Purchase Energy" src="https://doc.coinbac.vip/assets/images/6-438985f33e87ea5abeb061672a2d4d29.png" width="623" height="321" class="img_ev3q"></p>
</li>
<li class="">
<p>After the energy purchase is successful, follow the prompts to complete the signature operation in the wallet popup.</p>
<p><img decoding="async" loading="lazy" alt="Sign" src="https://doc.coinbac.vip/assets/images/7-cd7cd1a2837fd15188931d40806a4546.png" width="642" height="342" class="img_ev3q"></p>
</li>
</ol>
<hr>
<p>The above steps cover the complete configuration process for <strong>ITRX Automatic Energy Purchase</strong>, helping you simplify operations and save on Gas fees.</p>]]></content:encoded>
            <category>TRON</category>
            <category>tutorial</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[Security Validation Process]]></title>
            <link>https://doc.coinbac.vip/blog/security-validation-process</link>
            <guid>https://doc.coinbac.vip/blog/security-validation-process</guid>
            <pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[This document outlines a comprehensive security validation process, covering transaction operations, signature verification, payment flow, and the enhancement of service security and stability, with the goal of ensuring the security of transactions and the high availability of the system.]]></description>
            <content:encoded><![CDATA[<p>This document outlines a comprehensive security validation process, covering transaction operations, signature verification, payment flow, and the enhancement of service security and stability, with the goal of ensuring the security of transactions and the high availability of the system.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-what-is-the-guardian">1. What is the Guardian?<a href="https://doc.coinbac.vip/blog/security-validation-process#1-what-is-the-guardian" class="hash-link" aria-label="Direct link to 1. What is the Guardian?" title="Direct link to 1. What is the Guardian?" translate="no">​</a></h2>
<p>The Guardian (also known as a "Guardian") is a <strong>security service component</strong> deployed in the backend or on an independent server. It is used to perform <strong>secondary validation and permission review</strong> for on-chain transfer requests or other critical multi-signature operations originating from the merchant system.</p>
<p>Its core mechanism is:</p>
<p>After the merchant system completes the initial signature, the Guardian independently generates a signature using the same parameters and compares it with the original signature. Only when the content matches and the permissions are valid is the on-chain execution allowed.</p>
<p>This mechanism effectively prevents data tampering, forged signatures, and unauthorized operations.</p>
<hr>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-why-use-a-guardian">2. Why Use a Guardian?<a href="https://doc.coinbac.vip/blog/security-validation-process#2-why-use-a-guardian" class="hash-link" aria-label="Direct link to 2. Why Use a Guardian?" title="Direct link to 2. Why Use a Guardian?" translate="no">​</a></h2>
<p>In blockchain systems, a signature represents control. Any tampered or misused signature could result in severe asset loss. Introducing a security validation mechanism can:</p>
<ul>
<li class="">
<p><strong>Data Consistency Validation</strong>: Detect man-in-the-middle attacks and forged requests.</p>
</li>
<li class="">
<p><strong>Permission Control Mechanism</strong>: Prevent unauthorized or overstepped signatures.</p>
</li>
<li class="">
<p><strong>Audit and Traceability</strong>: Record all signature activities for easy backtracking and evidence collection.</p>
</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-merchant-system-and-backend-system-transfer-operation-flow">3. Merchant System and Backend System Transfer Operation Flow<a href="https://doc.coinbac.vip/blog/security-validation-process#3-merchant-system-and-backend-system-transfer-operation-flow" class="hash-link" aria-label="Direct link to 3. Merchant System and Backend System Transfer Operation Flow" title="Direct link to 3. Merchant System and Backend System Transfer Operation Flow" translate="no">​</a></h2>
<style>
  .mermaid-wrapper {
    cursor: zoom-in;
    position: relative;
  }

  .mermaid-wrapper:fullscreen {
    background: white;
    padding: 20px;
    cursor: zoom-out;
  }
</style>
<div class="mermaid-wrapper"></div>
<ol>
<li class="">
<p>Encrypt Transfer Request Information</p>
<p>When the merchant system sends a transfer request to the backend system, encryption algorithms are used to protect transfer data (such as address, amount, currency, etc.), ensuring the security of the information.</p>
</li>
<li class="">
<p>Request Wallet Signature</p>
<p>The backend system forwards the transfer request to the Web3 wallet plugin, which performs a multi-signature operation and returns the signature.</p>
</li>
<li class="">
<p>Signature Verification</p>
<p>Upon receiving the signature, the backend system submits it to the Guardian web interface. The Guardian generates a signature via the server and verifies that the backend system's signature matches the server's signature.</p>
</li>
<li class="">
<p>Execute Transfer via Wallet</p>
<p>Once the signature is verified successfully by the Guardian web interface, it instructs the Web3 wallet plugin to execute the transfer and place it on the blockchain.</p>
</li>
<li class="">
<p>Obtain Transaction Hash</p>
<p>After the Web3 wallet completes the transaction, it returns the transaction hash, which the Guardian web interface then retrieves and saves.</p>
</li>
<li class="">
<p>Callback Transaction Status</p>
<p>The Guardian web interface updates the transaction hash record by calling the backend system in one of two ways:</p>
<ul>
<li class="">Direct callback via the web interface to update the status.</li>
<li class="">The Guardian server makes the callback on behalf of the backend system, updating the transaction status based on the hash.</li>
</ul>
</li>
<li class="">
<p>Transaction Status Check</p>
<p>The backend system checks the status of the transaction hash and updates the transaction status record.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-guardian-signature-process">4. Guardian Signature Process<a href="https://doc.coinbac.vip/blog/security-validation-process#4-guardian-signature-process" class="hash-link" aria-label="Direct link to 4. Guardian Signature Process" title="Direct link to 4. Guardian Signature Process" translate="no">​</a></h2>
<div class="mermaid-wrapper"></div>
<ol>
<li class="">
<p>Merchant Data Initialization</p>
<p>When the backend system approves a merchant, it records merchant information (merchant ID, cold/hot contract addresses, etc.) and provides query and delete interfaces to the Guardian.</p>
</li>
<li class="">
<p>Guardian Data Storage</p>
<p>The Guardian requests the backend's query interface to obtain merchant data, storing it as a JSON file, and requests the deletion of old data.</p>
</li>
<li class="">
<p>Scheduled Task for Data Synchronization</p>
<p>A cron job is used to regularly request the Guardian interface, automatically updating the merchant's initialization data.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-end-to-end-security">5. End-to-End Security<a href="https://doc.coinbac.vip/blog/security-validation-process#5-end-to-end-security" class="hash-link" aria-label="Direct link to 5. End-to-End Security" title="Direct link to 5. End-to-End Security" translate="no">​</a></h2>
<ol>
<li class="">
<p>Server Security</p>
<p>Intrusion detection systems and firewalls are employed to protect the server from external attacks.</p>
</li>
<li class="">
<p>Encrypted Communication</p>
<p>HTTPS and encryption algorithms are used to ensure the security of all data during transmission.</p>
</li>
<li class="">
<p>Prevention of Replay Attacks</p>
<p>Blockchain mechanisms are utilized to prevent replay attacks by incorporating timestamps, nonces, or unique identifiers on the blockchain, ensuring that each transaction request is unique and non-repetitive.</p>
</li>
<li class="">
<p>Service Monitoring and Alerts</p>
<p>The system's health status is periodically checked, and alerts are issued for any anomalies, followed by prompt repairs.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-payment-flow">6. Payment Flow<a href="https://doc.coinbac.vip/blog/security-validation-process#6-payment-flow" class="hash-link" aria-label="Direct link to 6. Payment Flow" title="Direct link to 6. Payment Flow" translate="no">​</a></h2>
<div class="mermaid-wrapper"></div>
<ol>
<li class="">
<p>Encrypt Payment Link</p>
<p>When the merchant system generates a payment link, it uses a signed encryption parameter to ensure the legitimacy and security of the payment link.</p>
</li>
<li class="">
<p>Payment Information Verification</p>
<p>When the user submits payment, the payment information's signature and parameters are verified to ensure the request comes from a legitimate merchant.</p>
</li>
<li class="">
<p>Payment Callback Verification</p>
<p>After payment completion, the merchant system verifies the callback payment data to ensure the accuracy of the payment status.</p>
</li>
<li class="">
<p>Payment Interface Control</p>
<p>IP restrictions and access frequency limits are set to prevent misuse of the interface.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-docker-deployment-and-web-deployment">7. Docker Deployment and Web Deployment<a href="https://doc.coinbac.vip/blog/security-validation-process#7-docker-deployment-and-web-deployment" class="hash-link" aria-label="Direct link to 7. Docker Deployment and Web Deployment" title="Direct link to 7. Docker Deployment and Web Deployment" translate="no">​</a></h2>
<ol>
<li class="">
<p>Simplify Docker Deployment</p>
<p>Docker images and configuration files are provided, enabling merchants to easily deploy services using Docker Compose or Kubernetes.</p>
</li>
<li class="">
<p>Java Web Support</p>
<p>Web applications are supported to run on common Java web servers like Tomcat, ensuring compatibility.</p>
</li>
<li class="">
<p>Automatic Service Scaling</p>
<p>Load balancing and automatic scaling are configured to ensure the service can scale and remain stable during peak traffic periods.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-api-security">8. API Security<a href="https://doc.coinbac.vip/blog/security-validation-process#8-api-security" class="hash-link" aria-label="Direct link to 8. API Security" title="Direct link to 8. API Security" translate="no">​</a></h2>
<ol>
<li class="">
<p>Signature Verification</p>
<p>All API requests require the use of a signature mechanism to ensure the legitimacy of the request.</p>
</li>
<li class="">
<p>Encrypted Data Transmission</p>
<p>All API data transmission is encrypted using HTTPS protocol, ensuring the data is not tampered with.</p>
</li>
<li class="">
<p>Access Control</p>
<p>IP address access is restricted and request frequency limits are set to prevent malicious misuse of the interface.</p>
</li>
<li class="">
<p>Log Recording and Auditing</p>
<p>All API calls are logged and audited regularly to ensure operations are traceable.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-real-case-15-billion-stolen-from-an-exchange">9. Real Case: $1.5 Billion Stolen from an Exchange<a href="https://doc.coinbac.vip/blog/security-validation-process#9-real-case-15-billion-stolen-from-an-exchange" class="hash-link" aria-label="Direct link to 9. Real Case: $1.5 Billion Stolen from an Exchange" title="Direct link to 9. Real Case: $1.5 Billion Stolen from an Exchange" translate="no">​</a></h2>
<p>In February 2025, a leading international exchange suffered a $1.5 billion asset theft due to a lack of isolation and validation mechanisms in its signature process.</p>
<p>Attackers hijacked the signature process using a "masked transaction" technique, separating the displayed address on the frontend from the actual signature data. The cold contract and multi-signature mechanism failed to detect the forged transaction.</p>
<p>If a Guardian had been deployed, it could have identified parameter tampering and spoofing behaviors before signing, preventing asset loss at the source.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://doc.coinbac.vip/blog/security-validation-process#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>The Guardian is a core component of the Web3 security system, especially suitable for scenarios with the following requirements:</p>
<ul>
<li class="">Multi-party management and control of digital assets</li>
<li class="">Merchant platforms requiring on-chain transfers</li>
<li class="">Institutions needing to isolate business systems from private keys used for signing</li>
</ul>
<p>Through signature comparison, permission validation, and auditing mechanisms, the Guardian effectively prevents forgery, unauthorized access, and tampering attacks, making it an essential safeguard for building highly secure digital asset systems.</p>]]></content:encoded>
            <category>introduction</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[New Merchant Feature - Repair Abnormal Orders]]></title>
            <link>https://doc.coinbac.vip/blog/repair-orders</link>
            <guid>https://doc.coinbac.vip/blog/repair-orders</guid>
            <pubDate>Fri, 20 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This tutorial will guide you on how to repair orders where users have overpaid or underpaid through the backend management system.]]></description>
            <content:encoded><![CDATA[<p>This tutorial will guide you on how to repair orders where users have overpaid or underpaid through the backend management system.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prerequisites"><strong>Prerequisites</strong><a href="https://doc.coinbac.vip/blog/repair-orders#prerequisites" class="hash-link" aria-label="Direct link to prerequisites" title="Direct link to prerequisites" translate="no">​</a></h2>
<p>Before starting to repair orders, please ensure you have the following information:</p>
<ol>
<li class=""><strong>Order Number</strong>: The order number or payment number that needs to be repaired.</li>
<li class=""><strong>Transaction Hash</strong>: The transaction hash of the user's payment (can be obtained through a blockchain explorer or payment platform).</li>
</ol>
<hr>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-1-add-new-staff-wallet-address-optional"><strong>Step 1: Add New Staff Wallet Address (Optional)</strong><a href="https://doc.coinbac.vip/blog/repair-orders#step-1-add-new-staff-wallet-address-optional" class="hash-link" aria-label="Direct link to step-1-add-new-staff-wallet-address-optional" title="Direct link to step-1-add-new-staff-wallet-address-optional" translate="no">​</a></h2>
<p>If you need new staff to assist with order repairs, you can add their wallet address:</p>
<ol>
<li class=""><strong>Administrator Login to Backend</strong></li>
</ol>
<p>Log in to the backend system using the administrator account.</p>
<ol start="2">
<li class=""><strong>Navigate to Organization Information</strong></li>
</ol>
<ul>
<li class="">Click <strong>Organization</strong> &gt; <strong>Members</strong>.</li>
<li class="">On the page, select <strong>Add</strong>.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Members" src="https://doc.coinbac.vip/assets/images/1-3cb9746b09b6bc9006f2cb0feb6de31e.png" width="1796" height="859" class="img_ev3q"></p>
<ol start="3">
<li class=""><strong>Fill in Staff Information</strong></li>
</ol>
<ul>
<li class="">On the "Add" modal, enter the staff's wallet address, e.g., <code>TEYrHyvsssn2Kw6McY9vA1hF2taiZaEjyQ</code>.</li>
<li class="">Submit and wait for approval. Once approved, the new staff address will be added to the system.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Add Staff" src="https://doc.coinbac.vip/assets/images/2-c290b04928b1170777308fbdb61da685.png" width="1705" height="834" class="img_ev3q"></p>
<ol start="4">
<li class=""><strong>Complete Addition</strong></li>
</ol>
<p>After the staff wallet address is successfully added, it can be used to log in to the backend and perform order repair operations.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-2-log-in-to-backend-and-perform-order-repair"><strong>Step 2: Log in to Backend and Perform Order Repair</strong><a href="https://doc.coinbac.vip/blog/repair-orders#step-2-log-in-to-backend-and-perform-order-repair" class="hash-link" aria-label="Direct link to step-2-log-in-to-backend-and-perform-order-repair" title="Direct link to step-2-log-in-to-backend-and-perform-order-repair" translate="no">​</a></h2>
<ol>
<li class=""><strong>Log in to Backend System</strong></li>
</ol>
<p>Use the administrator address or the newly added staff address to log in to the backend.</p>
<ol start="2">
<li class=""><strong>Go to Reconciliation - Payment Report - Order Repair Page</strong></li>
</ol>
<p>Click <strong>Payment Report</strong> &gt; <strong>Order Repair</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Order Repair" src="https://doc.coinbac.vip/assets/images/3-b52649e161574a7d14da2a0b31d3003f.png" width="1840" height="849" class="img_ev3q"></p>
<ol start="3">
<li class=""><strong>Query Order</strong></li>
</ol>
<ul>
<li class="">On the order repair page, enter the user's <strong>Transaction Hash</strong> and <strong>Order Number</strong>.</li>
<li class="">Click <strong>Search</strong>.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Query Order" src="https://doc.coinbac.vip/assets/images/4-6311597104c1f7d2fff7db2438d9690a.png" width="1796" height="865" class="img_ev3q"></p>
<ol start="4">
<li class=""><strong>Verify Order Information</strong></li>
</ol>
<p>The system will automatically check the following information:</p>
<ul>
<li class=""><strong>Order Number Check</strong>: Confirm whether the order number matches.</li>
<li class=""><strong>Transaction Hash Check</strong>: Confirm the validity of the transaction record.</li>
<li class=""><strong>Sub-contract Check</strong>: Confirm whether the transaction's wallet is correct.</li>
<li class=""><strong>Currency and Amount Check</strong>: Confirm whether the transaction amount and currency match the order.</li>
<li class=""><strong>Transaction Time Check</strong>: Confirm whether the payment time meets the order requirements.</li>
</ul>
<ol start="5">
<li class=""><strong>Repair Order</strong></li>
</ol>
<ul>
<li class="">After confirming all information is correct, click <strong>Repair</strong>.</li>
<li class="">The system will automatically repair the order and send a callback notification.</li>
</ul>
<hr>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Notes</div><div class="admonitionContent_BuS1"><ul>
<li class="">Ensure that the entered Transaction Hash and Order Number are accurate.</li>
<li class="">If the order repair fails, please check if there are any anomalies with the sub-contract or transaction time, and try the operation again.</li>
</ul></div></div>]]></content:encoded>
            <category>funds</category>
            <category>tutorial</category>
            <category>merchant</category>
        </item>
        <item>
            <title><![CDATA[Contract Factory Design: Reducing Blockchain Gas Costs through Templates and Tight Packing]]></title>
            <link>https://doc.coinbac.vip/blog/contract-factory-design</link>
            <guid>https://doc.coinbac.vip/blog/contract-factory-design</guid>
            <pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[In the past decade, decentralized payments typically used EOA (Externally Owned Accounts) wallet solutions, including existing MPC solutions based on EOA wallet sharding. However, achieving fully decentralized payments without any custodial servers requires an all-contract solution for fund custody. The optimization of gas costs in full-contract solutions has been a core challenge for developers.]]></description>
            <content:encoded><![CDATA[<p>In the past decade, decentralized payments typically used EOA (Externally Owned Accounts) wallet solutions, including existing MPC solutions based on EOA wallet sharding. However, achieving fully decentralized payments without any custodial servers requires an all-contract solution for fund custody. The optimization of gas costs in full-contract solutions has been a core challenge for developers.</p>
<p>While full-contract solutions offer high security, optimizing their gas costs remains a core challenge for developers. This article will explore how to significantly reduce gas costs and promote the application of sub-contracts in real scenarios through <strong>contract factory template design</strong> and <strong>tight packing inline assembly solutions</strong>.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-contract-factory-template-design-dynamic-generation-and-cost-optimization"><strong>1. Contract Factory Template Design: Dynamic Generation and Cost Optimization</strong><a href="https://doc.coinbac.vip/blog/contract-factory-design#1-contract-factory-template-design-dynamic-generation-and-cost-optimization" class="hash-link" aria-label="Direct link to 1-contract-factory-template-design-dynamic-generation-and-cost-optimization" title="Direct link to 1-contract-factory-template-design-dynamic-generation-and-cost-optimization" translate="no">​</a></h2>
<p><strong>Traditional Problems</strong></p>
<p>Traditional contract deployment requires deploying complete code for each sub-contract separately, resulting in high gas consumption and redundant on-chain code storage. To address this issue, we designed and implemented the contract factory template pattern.</p>
<p><strong>Core Concepts</strong></p>
<p>Contract factory templates are mechanisms that dynamically generate sub-contracts through <strong>predefined template</strong> contracts. By <strong>mapping</strong> template contract addresses to generated sub-contracts, code <strong>reuse</strong> can be achieved. This design has several key features:</p>
<ul>
<li class=""><strong>Dynamic Generation</strong>: Factory contracts dynamically create sub-contracts based on needs, avoiding repeated template logic deployment.</li>
<li class=""><strong>Reduced Redundancy</strong>: All sub-contracts share the same template code, significantly reducing on-chain storage costs.</li>
<li class=""><strong>Gas Savings</strong>: Sub-contract generation only requires passing minimal parameters, avoiding full code deployment and reducing gas consumption.</li>
</ul>
<p><strong>Practical Application Scenarios</strong></p>
<p>For example, in multi-signature wallet scenarios, users can dynamically generate sub-contracts to execute tasks based on transaction requirements. Compared to traditional sub-contract solutions, this approach is more flexible and efficient, making it possible for sub-contracts to replace traditional sub-contract solutions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-tight-packing-inline-assembly-ultimate-optimization-for-batch-transfers"><strong>2. Tight Packing Inline Assembly: Ultimate Optimization for Batch Transfers</strong><a href="https://doc.coinbac.vip/blog/contract-factory-design#2-tight-packing-inline-assembly-ultimate-optimization-for-batch-transfers" class="hash-link" aria-label="Direct link to 2-tight-packing-inline-assembly-ultimate-optimization-for-batch-transfers" title="Direct link to 2-tight-packing-inline-assembly-ultimate-optimization-for-batch-transfers" translate="no">​</a></h2>
<p>Transfer operations are among the most common and gas-intensive scenarios in blockchain. To further optimize, we adopted a <strong>tight packing inline assembly solution</strong> that effectively reduces gas costs by minimizing transaction payload size and streamlining code logic.</p>
<p><strong>Solution Details</strong></p>
<ol>
<li class=""><strong>Parameter Tight Packing</strong>
<ul>
<li class="">Use minimum byte representation for parameters (such as addresses, amounts) off-chain.</li>
<li class="">Compress parameter storage size to reduce batch transfer payload volume.</li>
</ul>
</li>
<li class=""><strong>Inline Assembly Optimization</strong>
<ul>
<li class="">Extensive use of <strong>inline assembly</strong> instructions provided by EVM (Ethereum Virtual Machine) in transfer logic, these low-level operations directly manipulate the EVM stack, avoiding overhead from high-level languages.</li>
</ul>
</li>
<li class=""><strong>Batch Transfers</strong>
<ul>
<li class="">Combine multiple transfers into a single call, reducing transaction count and further lowering total gas consumption.</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-practical-results"><strong>3. Practical Results</strong><a href="https://doc.coinbac.vip/blog/contract-factory-design#3-practical-results" class="hash-link" aria-label="Direct link to 3-practical-results" title="Direct link to 3-practical-results" translate="no">​</a></h2>
<p><strong>Gas Cost Reduction</strong></p>
<p>Through contract factory templates and tight packing solutions, test results show:</p>
<ul>
<li class="">Gas consumption for contract deployment and calls reduced by approximately <strong>70%-81%</strong> compared to traditional methods.</li>
</ul>
<p>Example: Sub-contract Consolidation Gas Comparison Table</p>
<table><thead><tr><th><strong>Batch Operations(USDT)</strong></th><th><strong>Total Gas Limit</strong></th><th><strong>Average Gas Limit per Operation</strong></th><th><strong>Traditional 1.0 Transfer Gas Limit</strong></th><th><strong>Estimated Savings vs 1.0 Method</strong></th></tr></thead><tbody><tr><td>Create 10 Sub-contracts</td><td>409,383</td><td>40,938</td><td rowspan="2">Requires small ETH for gas</td><td rowspan="2">Only needs 1 creation</td></tr><tr><td>Create 50 Sub-contracts</td><td>1,932,200</td><td>38,644</td></tr><tr><td>Consolidate 10 Sub-contracts</td><td>156,015</td><td>15,601</td><td>54,177</td><td>71.2%</td></tr><tr><td>Consolidate 50 Sub-contracts</td><td>677,900</td><td>13,558</td><td>54,177</td><td>74.9%</td></tr></tbody></table>
<p>Test Date: July 29, 2024</p>
<p><strong>Enhanced User Experience</strong></p>
<ul>
<li class="">Significantly reduced user operation costs and gas fees</li>
<li class="">More efficient on-chain logic enables faster transaction confirmation</li>
</ul>
<p><strong>Support for Complex Scenarios</strong></p>
<p>This optimization solution is particularly suitable for:</p>
<ul>
<li class=""><strong>Multi-signature wallets</strong></li>
<li class=""><strong>Large-scale DApp batch operations</strong></li>
<li class=""><strong>High-frequency smart contract interaction scenarios</strong></li>
</ul>
<p>Through contract factory templates and tight packing inline assembly solutions, we have not only solved the gas cost optimization challenge but also provided more flexible and efficient solutions for practical application scenarios. In the future, this design will play a crucial role in more complex blockchain scenarios.</p>]]></content:encoded>
            <category>introduction</category>
        </item>
        <item>
            <title><![CDATA[Coinbac Secure Self-Custody Solution]]></title>
            <link>https://doc.coinbac.vip/blog/secure-self-custody</link>
            <guid>https://doc.coinbac.vip/blog/secure-self-custody</guid>
            <pubDate>Sun, 08 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[What is Secure Self-Custody?]]></description>
            <content:encoded><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-secure-self-custody"><strong>What is Secure Self-Custody?</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#what-is-secure-self-custody" class="hash-link" aria-label="Direct link to what-is-secure-self-custody" title="Direct link to what-is-secure-self-custody" translate="no">​</a></h3>
<p>Secure self-custody is a fully smart contract-based solution for managing crypto assets. This solution allows merchants to have complete control over all crypto assets and permissions within their system without relying on any third-party servers or services. At the same time, it ensures multi-node security, preventing the loss of funds or data due to the compromise of a single point of authority.</p>
<p>When evaluating whether a solution meets the standard of secure self-custody, two key considerations must be addressed:</p>
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-are-all-services-and-nodes-fully-owned-by-the-merchant-with-ultimate-authority"><strong>1. Are all services and nodes fully owned by the merchant with ultimate authority?</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#1-are-all-services-and-nodes-fully-owned-by-the-merchant-with-ultimate-authority" class="hash-link" aria-label="Direct link to 1-are-all-services-and-nodes-fully-owned-by-the-merchant-with-ultimate-authority" title="Direct link to 1-are-all-services-and-nodes-fully-owned-by-the-merchant-with-ultimate-authority" translate="no">​</a></h4>
<p>Traditional solutions and those based on Multi-Party Computation (MPC), while supporting source code-level private deployments, still heavily rely on the security of conventional servers. However, most merchants lack the capability to deploy high-security servers. Attempting to implement MPC deployments independently may introduce additional security risks.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-can-the-loss-of-any-single-node-or-server-authority-result-in-no-financial-loss-for-the-merchant"><strong>2. Can the loss of any single node or server authority result in no financial loss for the merchant?</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#2-can-the-loss-of-any-single-node-or-server-authority-result-in-no-financial-loss-for-the-merchant" class="hash-link" aria-label="Direct link to 2-can-the-loss-of-any-single-node-or-server-authority-result-in-no-financial-loss-for-the-merchant" title="Direct link to 2-can-the-loss-of-any-single-node-or-server-authority-result-in-no-financial-loss-for-the-merchant" translate="no">​</a></h4>
<p>In a secure self-custody solution, the service module and asset custody module are independent of each other:</p>
<ul>
<li class="">
<p><strong>Service Module</strong>: If the service module relies on Web2 servers and the loss of server authority could lead to asset loss, such a solution cannot be considered secure self-custody. A secure self-custody solution ensures that the service module and asset custody module are fully separated.</p>
</li>
<li class="">
<p><strong>Asset Custody Module</strong>: This module is implemented through a fully smart contract-based solution, sharing the same security level as the public blockchain and managed via a multi-signature system. Even if all server authorities are compromised, assets can still be recovered through the multi-signature permissions of senior administrators.</p>
</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="benefits-of-a-self-custody-solution"><strong>Benefits of a Self-Custody Solution</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#benefits-of-a-self-custody-solution" class="hash-link" aria-label="Direct link to benefits-of-a-self-custody-solution" title="Direct link to benefits-of-a-self-custody-solution" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-elimination-of-external-attack-risks"><strong>1. Elimination of External Attack Risks</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#1-elimination-of-external-attack-risks" class="hash-link" aria-label="Direct link to 1-elimination-of-external-attack-risks" title="Direct link to 1-elimination-of-external-attack-risks" translate="no">​</a></h4>
<p>With secure self-custody, merchants have complete control over their funds and permissions without relying on third-party services. Even if servers are compromised by hackers, merchants can continue operating independently without worrying about risks caused by third-party vulnerabilities or malicious actions.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-elimination-of-internal-malicious-risks"><strong>2. Elimination of Internal Malicious Risks</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#2-elimination-of-internal-malicious-risks" class="hash-link" aria-label="Direct link to 2-elimination-of-internal-malicious-risks" title="Direct link to 2-elimination-of-internal-malicious-risks" translate="no">​</a></h4>
<p>In traditional crypto asset custody solutions, it can be challenging to trace the root cause of incidents—whether it’s external attacks or internal malicious acts—due to risks in server maintenance, financial management configurations, and executive-level permissions. The PayProtocol secure self-custody solution records all sensitive asset operations on-chain, completely eliminating the possibility of internal malicious behavior.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-scalability-and-customization"><strong>3. Scalability and Customization</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#3-scalability-and-customization" class="hash-link" aria-label="Direct link to 3-scalability-and-customization" title="Direct link to 3-scalability-and-customization" translate="no">​</a></h4>
<p>Many industries require system functionality to be integrated with development needs. Through self-custody, project teams can customize the system according to specific requirements and flexibly meet the unique demands of business development. The self-custody solution is designed with a no-maintenance approach, allowing enterprises to fully control the system's operational state and avoid the aforementioned risks.</p>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-elements-for-achieving-secure-self-custody"><strong>Key Elements for Achieving Secure Self-Custody</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#key-elements-for-achieving-secure-self-custody" class="hash-link" aria-label="Direct link to key-elements-for-achieving-secure-self-custody" title="Direct link to key-elements-for-achieving-secure-self-custody" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-fully-smart-contract-based-solution"><strong>1. Fully Smart Contract-Based Solution</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#1-fully-smart-contract-based-solution" class="hash-link" aria-label="Direct link to 1-fully-smart-contract-based-solution" title="Direct link to 1-fully-smart-contract-based-solution" translate="no">​</a></h4>
<p>All crypto asset operations are managed by smart contracts, with permissions solely held by the project team, ensuring operational security.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-multi-signature-system-level-configuration"><strong>2. Multi-Signature System-Level Configuration</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#2-multi-signature-system-level-configuration" class="hash-link" aria-label="Direct link to 2-multi-signature-system-level-configuration" title="Direct link to 2-multi-signature-system-level-configuration" translate="no">​</a></h4>
<p>A multi-signature system is implemented at the system level to reduce the risks and inconveniences of frequent cold contract operations by avoiding direct interaction with the cold contract.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-strict-permission-management-and-isolation"><strong>3. Strict Permission Management and Isolation</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#3-strict-permission-management-and-isolation" class="hash-link" aria-label="Direct link to 3-strict-permission-management-and-isolation" title="Direct link to 3-strict-permission-management-and-isolation" translate="no">​</a></h4>
<ul>
<li class="">Funds in sub-contracts can only be transferred to cold contracts.</li>
<li class="">Crypto assets in cold contracts can only be accessed through multi-signature operations by super administrators.</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-continuous-monitoring-and-updates"><strong>4. Continuous Monitoring and Updates</strong><a href="https://doc.coinbac.vip/blog/secure-self-custody#4-continuous-monitoring-and-updates" class="hash-link" aria-label="Direct link to 4-continuous-monitoring-and-updates" title="Direct link to 4-continuous-monitoring-and-updates" translate="no">​</a></h4>
<p>Although this is a self-custody solution, project teams must still design or integrate automated security updates and monitoring mechanisms. We provide various detection scripts and alert modules to ensure the system is always prepared to address emerging threats.</p>
<hr>
<p>This secure self-custody solution empowers merchants to maintain complete control over their crypto assets while ensuring maximum security and operational efficiency.</p>]]></content:encoded>
            <category>introduction</category>
        </item>
        <item>
            <title><![CDATA[Buy Energy on Telegram]]></title>
            <link>https://doc.coinbac.vip/blog/buy-energy-on-telegram</link>
            <guid>https://doc.coinbac.vip/blog/buy-energy-on-telegram</guid>
            <pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This tutorial will guide you on how to buy energy through the TG mini program to reduce transaction fees when performing functions such as sweeping and rebalancing on the Tron network.]]></description>
            <content:encoded><![CDATA[<p>This tutorial will guide you on how to buy energy through the TG mini program to reduce transaction fees when performing functions such as sweeping and rebalancing on the Tron network.</p>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-1-calculate-the-energy-required-for-the-sweeping-operation">Step 1: Calculate the energy required for the sweeping operation<a href="https://doc.coinbac.vip/blog/buy-energy-on-telegram#step-1-calculate-the-energy-required-for-the-sweeping-operation" class="hash-link" aria-label="Direct link to Step 1: Calculate the energy required for the sweeping operation" title="Direct link to Step 1: Calculate the energy required for the sweeping operation" translate="no">​</a></h3>
<p><strong>Example scenario:</strong></p>
<ol>
<li class="">
<p>Log in to the admin console using the admin wallet and initiate the sweeping operation.</p>
<ul>
<li class="">Select the wallet to initiate the sweeping and enter the signature interface.</li>
<li class=""><strong>No need to click the signature operation</strong>, just check the total energy required for the transaction.</li>
<li class="">Example: The system shows the total energy consumption as <strong>132,233 energy</strong>.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Energy Requirement" src="https://doc.coinbac.vip/assets/images/1-1c46a04940610e9db2ffd5e41361b48c.png" width="564" height="610" class="img_ev3q"></p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-2-detailed-steps-to-buy-energy">Step 2: Detailed steps to buy energy<a href="https://doc.coinbac.vip/blog/buy-energy-on-telegram#step-2-detailed-steps-to-buy-energy" class="hash-link" aria-label="Direct link to Step 2: Detailed steps to buy energy" title="Direct link to Step 2: Detailed steps to buy energy" translate="no">​</a></h3>
<p><strong>Add and use the TG energy purchase Bot</strong></p>
<ol>
<li class="">
<p>Open the Telegram app</p>
<ul>
<li class="">Enter @nengliangvipBot in the search box and click on the found energy purchase bot.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Search Bot" src="https://doc.coinbac.vip/assets/images/2-69a94ffeefd51d29ed01dc8586bd105a.png" width="644" height="434" class="img_ev3q"></p>
</li>
<li class="">
<p>Click the "RESTART" button of the Bot</p>
<ul>
<li class="">Start the Bot function and enter the self-service menu page.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Start Bot" src="https://doc.coinbac.vip/assets/images/3-cd8ef27d3f6461c89812bdae147b1622.png" width="578" height="652" class="img_ev3q"></p>
</li>
<li class="">
<p>Select "Rent Energy" in the menu</p>
<ul>
<li class="">Rent energy as needed.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Rent Energy" src="https://doc.coinbac.vip/assets/images/4-72d31dd6395bff92e48844f84f47f5d1.png" width="423" height="482" class="img_ev3q"></p>
</li>
<li class="">
<p>Select the number of transactions and perform the conversion</p>
<ul>
<li class=""><strong>1 transaction = 65,500 energy</strong>.</li>
<li class="">For example: Sweeping one transaction requires 132,233 energy, calculated as: Required transactions = 132,233 / 65500 = 2.01</li>
<li class="">Approximately <strong>2 transactions</strong> of energy are needed.</li>
</ul>
</li>
<li class="">
<p>The Bot provides two payment methods</p>
<ol>
<li class="">
<p>Method 1: Direct transfer payment</p>
<ul>
<li class="">According to the Bot's price list, select the required number of transactions and get the TRX payment amount.</li>
<li class="">Example: The total amount to pay for 2 transactions of energy is <strong>6 TRX</strong> (equivalent to a unit price of 49sun/transaction).</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Payment Amount" src="https://doc.coinbac.vip/assets/images/5-9be379baf10474634a61faa02bf4b6db.png" width="331" height="417" class="img_ev3q"></p>
<ul>
<li class="">Copy the payment address provided by the Bot (e.g., TV5JYxy8GUjtjtg58aLnk7mxo8ZZZZZZZZ).</li>
<li class="">Use the wallet to transfer to this address, complete the payment, and check the energy in the wallet.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Check Energy" src="https://doc.coinbac.vip/assets/images/6-80d0409528b207aadf0f4357f4bf00f4.png" width="409" height="687" class="img_ev3q"></p>
</li>
<li class="">
<p>Method 2: Complete the payment by selecting the number of transactions</p>
<ul>
<li class="">Select <strong>"2 transactions"</strong> in the menu.</li>
<li class="">Enter the wallet address to receive the energy as prompted by the Bot.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Enter Address" src="https://doc.coinbac.vip/assets/images/7-ccb2534aa5656736bb2ae352c9878b75.png" width="361" height="423" class="img_ev3q"></p>
<ul>
<li class="">Use the TRX wallet to pay and complete the payment according to the order generated by the Bot.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Payment Order" src="https://doc.coinbac.vip/assets/images/8-7c33e465f77ec74e9e70b8aa549f0951.png" width="453" height="693" class="img_ev3q"></p>
</li>
</ol>
</li>
<li class="">
<p>Wait for the transfer to be credited</p>
<ul>
<li class="">After the payment is completed, wait for about <strong>6 seconds</strong>.</li>
<li class="">Refresh the wallet to check if the energy has been credited.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Credited" src="https://doc.coinbac.vip/assets/images/9-0cedd65261d57ec29e678ec7956976c1.png" width="683" height="291" class="img_ev3q"></p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-3-complete-the-operation-using-the-admin-wallet">Step 3: Complete the operation using the admin wallet<a href="https://doc.coinbac.vip/blog/buy-energy-on-telegram#step-3-complete-the-operation-using-the-admin-wallet" class="hash-link" aria-label="Direct link to Step 3: Complete the operation using the admin wallet" title="Direct link to Step 3: Complete the operation using the admin wallet" translate="no">​</a></h3>
<p><strong>Perform backend operations</strong></p>
<ol>
<li class="">
<p>Log in to the backend using the admin wallet.</p>
</li>
<li class="">
<p>Select the sweeping or other functions that require energy support.</p>
</li>
<li class="">
<p>Confirm that the energy has been credited and complete the corresponding operation as needed.</p>
<p><img decoding="async" loading="lazy" alt="Consume Energy" src="https://doc.coinbac.vip/assets/images/10-734fb73f0f78cfe21490035878eebfd5.png" width="420" height="464" class="img_ev3q"></p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="precautions">Precautions<a href="https://doc.coinbac.vip/blog/buy-energy-on-telegram#precautions" class="hash-link" aria-label="Direct link to Precautions" title="Direct link to Precautions" translate="no">​</a></h3>
<ol>
<li class=""><strong>Ensure payment security</strong>: Carefully check the payment address to avoid transfer errors.</li>
<li class=""><strong>Reserve transaction fees</strong>: Leave enough TRX as network fees in addition to the payment amount.</li>
<li class=""><strong>Energy demand conversion</strong>: Choose the number of transactions reasonably according to the actual transaction needs to avoid insufficient purchase or waste.</li>
</ol>
<p>By following the above steps, you can successfully complete the energy purchase and reduce transaction fees!</p>]]></content:encoded>
            <category>TRON</category>
            <category>tutorial</category>
            <category>merchant</category>
        </item>
    </channel>
</rss>