diff --git a/docs/.vitepress/config/en.ts b/docs/.vitepress/config/en.ts index 7a1df0b..d8d8e6b 100644 --- a/docs/.vitepress/config/en.ts +++ b/docs/.vitepress/config/en.ts @@ -116,49 +116,122 @@ function sidebarDappLink(): DefaultTheme.SidebarItem[] { items: [ { text: 'What is DappLink Layer3 ?', link: 'what-is-dapplink-layer3' } ] - }, + } ] } function sidebarWallet(): DefaultTheme.SidebarItem[] { return [ { - text: 'One-Click Wallet Deployment', items: [ - { text: 'System Architecture', link: 'system-architecture' }, - { text: 'Core Function', link: 'dapplink-wallet' }, { - text: 'Project Components', - base: '/wallet/', + text: 'Introduction', + base: '/en/wallet/', + collapsed: false, + items: [ + { text: 'Overview', link: 'overview' }, + { text: 'Functional Modules', link: 'core-function' } + ] + }, + { + text: 'Core Functional Modules', + base: '/en/wallet/', + collapsed: false, items: [ + { text: 'Unified Signature Service Workflow', link: 'signature' }, + { text: 'Centralized Wallet Workflow', link: 'centralized-wallet' }, { - text: 'Unified Browser API Code Library', - link: 'chain-explorer-api' + text: 'Decentralized Wallet Workflow', + link: 'decentralized-wallet' }, + { text: 'MPC Network', link: 'tss' } + ] + }, + { + text: 'Detailed Overview of Exchange Wallet Business Flow', + base: '/en/wallet/centralized/', + collapsed: false, + items: [ + { + text: 'Merchant Information Submission', + link: 'business-submit' + }, + { text: 'Merchant ID Configuration', link: 'business-id-config' }, + { + text: 'Token Configuration by Business Party', + link: 'set-chain-token' + }, + { + text: 'Batch Address Generation', + link: 'batch-generate-address' + }, + { text: 'Deposit Operation', link: 'deposit-flow' }, + { text: 'Withdrawal Operation', link: 'withdraw-flow' }, + { text: 'Fund Consolidation Operation', link: 'collection-flow' }, + { text: 'Hot-to-Cold Transfer', link: 'hot-to-cold' }, + { text: 'Cold-to-Hot Transfer', link: 'cold-to-hot' }, + { text: 'Rollback Operation', link: 'fallback' }, + { text: 'Service Deployment Method', link: 'service-deploy' } + ] + }, + { + text: 'Detailed Overview of Decentralized Wallet Business Flow', + base: '/en/wallet/decentralized/', + collapsed: false, + items: [ + { text: 'Wallet Address Generation', link: 'wallet-address-gen' }, + { text: 'Mnemonic Export', link: 'mnemonic-export' }, + { text: 'Mnemonic Import', link: 'mnemonic-import' }, + { text: 'Private Key Export', link: 'private-export' }, + { text: 'Private Key Import', link: 'private-import' }, + { text: 'Receive Funds', link: 'deposit' }, + { text: 'Transfer Funds', link: 'transform' }, + { text: 'Fetch Wallet Balance', link: 'get-wallet-balance' }, + { text: 'Transaction History', link: 'transaction-record' }, + { text: 'Token Discovery', link: 'token-find' }, + { text: 'Market Data Module', link: 'market-data-module' }, + { text: 'Asset Management Module', link: 'asset-manager-module' }, + { text: 'Quick Exchange', link: 'quick-exchange' }, + { text: 'DApp Browser', link: 'dapp-explorer' } + ] + }, + { + text: 'PayFi Technical Solution', + base: '/en/wallet/payfi/', + collapsed: false, + items: [ { - text: 'Unified RPC Interface Service', - link: 'wallet-chain-node' + text: 'AI-Based Mnemonic-Free Wallet Solution', + link: 'ai-wallet' }, - { text: 'Key Management Tool', link: 'key-locker' }, { - text: 'Underlying Library for Threshold Secret Sharing Algorithms', - link: 'dapplink-secret' + text: 'High-Performance and Decentralized PayFi Application Chain', + link: 'payfi-appchain' }, - { text: 'Market Aggregator', link: 'skyeye' }, - { text: 'Trade System', link: 'trade' }, - { text: 'Offline Sign SDK', link: 'wallet-sdk' }, - { text: 'MPC Network', link: 'tss' }, - { text: 'Cross-Chain Staking Project', link: 'linklayer' }, - { text: 'HD Wallet Backend Service', link: 'hailstone' }, + { text: 'PayFi QR Code Payment', link: 'payfi-scan' }, + { text: 'PayFi Web-Initiated Payment', link: 'payfi-link-network' }, + { text: 'Decentralized U-Card Payment', link: 'u-card-payment' }, { - text: 'Unified Wallet Services for Deposit, Withdrawal, Aggregation, Cold Transfer, and Risk Control', - link: 'wallet-scanner' + text: 'Crypto Card + POS Terminal Payment', + link: 'digital-currency-card-payment' }, { - text: 'Centralized Wallet Business Components', - link: 'centralized-wallet-servicer' + text: 'QR Code + POS Terminal Payment', + link: 'scan-qr-code-payment' } ] + }, + { + text: 'Local Test Run', + base: '/en/wallet/', + collapsed: false, + items: [{ text: 'Local Startup Network', link: 'chain-setup' }] + }, + { + text: 'DappLink TestNet', + base: '/en/wallet/', + collapsed: false, + items: [{ text: 'Introduction', link: 'dapplink-testnet' }] } ] } @@ -183,21 +256,26 @@ function sidebarChain(): DefaultTheme.SidebarItem[] { base: '/en/chain/', collapsed: false, items: [ - { text: 'RollUp and Proof System Layer', link: 'rollup-and-proof-system-abstraction' }, + { + text: 'RollUp and Proof System Layer', + link: 'rollup-and-proof-system-abstraction' + }, { text: 'Cross-Chain', link: 'cross-chain-abstraction' }, { text: 'Multi-Staking Protocol', link: 'multi-staking-protocol' }, { text: 'Fast Finality Network', link: 'fast-finality' }, - { text: 'Modular and Composable Layer3', link: 'layer3-app-chain' }, + { text: 'Modular and Composable Layer3', link: 'layer3-app-chain' } ] - }, { + }, + { text: 'Local Test Run', base: '/en/chain/', collapsed: false, items: [ { text: 'Local Startup Network', link: 'chain-setup' }, - { text: 'Quick Start', link: 'start-test' }, + { text: 'Quick Start', link: 'start-test' } ] - }, { + }, + { text: 'DappLink TestNet', base: '/en/chain/', collapsed: false, @@ -236,7 +314,7 @@ function sidebarDapp(): DefaultTheme.SidebarItem[] { { text: 'Staking And Lending', link: 'staking-protocol' }, { text: 'LSP And ReStaking', link: 'lsp-restaking' }, { text: 'On Chain Insurance', link: 'onchain-insurance' }, - { text: 'PayFi And RWA', link: 'payfi-rwa' }, + { text: 'PayFi And RWA', link: 'payfi-rwa' } ] }, { @@ -245,7 +323,7 @@ function sidebarDapp(): DefaultTheme.SidebarItem[] { collapsed: false, items: [ { text: 'Local network', link: 'chain-setup' }, - { text: 'Start', link: 'start-test' }, + { text: 'Start', link: 'start-test' } ] } ] diff --git a/docs/.vitepress/config/zh.ts b/docs/.vitepress/config/zh.ts index a2417b4..6055fbb 100644 --- a/docs/.vitepress/config/zh.ts +++ b/docs/.vitepress/config/zh.ts @@ -19,7 +19,8 @@ export const zh = defineConfig({ }, editLink: { - pattern: 'https://github.com/dapplink-labs/dapplink-docs/edit/main/docs/:path', + pattern: + 'https://github.com/dapplink-labs/dapplink-docs/edit/main/docs/:path', text: '在 GitHub 上编辑此页面' }, @@ -106,31 +107,27 @@ function sidebarDappLink(): DefaultTheme.SidebarItem[] { { text: '一键发钱包', collapsed: false, - items: [ - { text: '什么是一键发钱包', link: 'what-is-dapplink-wallet' }, - ] + items: [{ text: '什么是一键发钱包', link: 'what-is-dapplink-wallet' }] }, { text: '一键发公链', collapsed: false, - items: [ - { text: '什么是一键发链', link: 'what-is-dapplink-chain' }, - ] + items: [{ text: '什么是一键发链', link: 'what-is-dapplink-chain' }] }, { text: '一键发去中心化组合应用', collapsed: false, items: [ - { text: '什么是一键发去中心化组合应用', link: 'what-is-dapplink-dapps' }, + { text: '什么是一键发去中心化组合应用', link: 'what-is-dapplink-dapps' } ] }, { text: 'DappLink Layer3', collapsed: false, items: [ - { text: 'DappLink Layer3 是什么', link: 'what-is-dapplink-layer3' }, + { text: 'DappLink Layer3 是什么', link: 'what-is-dapplink-layer3' } ] - }, + } ] } @@ -173,40 +170,58 @@ function sidebarWallet(): DefaultTheme.SidebarItem[] { { text: '热转冷', link: 'hot-to-cold' }, { text: '冷转热', link: 'cold-to-hot' }, { text: '回滚业务', link: 'fallback' }, - { text: '服务部署方式', link: 'service-deploy' }, + { text: '服务部署方式', link: 'service-deploy' } ] }, { text: '去中心化钱包业务流详细介绍', - base: '/zh/wallet/setup', + base: '/zh/wallet/decentralized/', collapsed: false, items: [ - { text: '统一浏览器代码库', link: 'chain-explorer-api' }, + { text: '钱包地址生成', link: 'wallet-address-gen' }, + { text: '助记词导出', link: 'mnemonic-export' }, + { text: '助记词导入', link: 'mnemonic-import' }, + { text: '私钥导出', link: 'private-export' }, + { text: '私钥导入', link: 'private-import' }, + { text: '收款', link: 'deposit' }, + { text: '转帐', link: 'transform' }, + { text: '钱包余额获取', link: 'get-wallet-balance' }, + { text: '交易记录', link: 'transaction-record' }, + { text: '代币发现功能', link: 'token-find' }, + { text: '行情业务模块', link: 'market-data-module' }, + { text: '资产管理模块', link: 'asset-manager-module' }, + { text: '闪兑', link: 'chain-explorer-api' }, + { text: 'Dapp浏览器', link: 'dapp-explorer' } ] }, { text: 'PayFi 技术解决方案', - base: '/zh/wallet/setup', + base: '/zh/wallet/payfi/', collapsed: false, items: [ - { text: '统一浏览器代码库', link: 'chain-explorer-api' }, + { text: '基于 AI 的无助记词钱包方案', link: 'ai-wallet' }, + { text: '高效性和去中心化 PayFi 应用链', link: 'payfi-appchain' }, + { text: 'PayFi 扫码支付', link: 'payfi-scan' }, + { text: 'PayFi 唤起网页来支付', link: 'payfi-link-network' }, + { text: '去中心化 U 卡支付', link: 'u-card-payment' }, + { + text: '数字货币卡 + POS 机支付', + link: 'digital-currency-card-payment' + }, + { text: '二维码 + POS 机支付', link: 'scan-qr-code-payment' } ] }, { text: '本地运行测试', - base: '/zh/wallet/setup', + base: '/zh/wallet/', collapsed: false, - items: [ - { text: '统一浏览器代码库', link: 'chain-explorer-api' }, - ] + items: [{ text: '本地启动网络', link: 'start-test' }] }, { text: '使用 DappLink 测试网络测试', - base: '/zh/wallet/setup', + base: '/zh/wallet/', collapsed: false, - items: [ - { text: '统一浏览器代码库', link: 'chain-explorer-api' }, - ] + items: [{ text: '测试网络介绍', link: 'dapplink-testnet' }] } ] } @@ -231,21 +246,26 @@ function sidebarChain(): DefaultTheme.SidebarItem[] { base: '/zh/chain/', collapsed: false, items: [ - { text: 'RollUp 和证明系统抽象', link: 'rollup-and-proof-system-abstraction' }, + { + text: 'RollUp 和证明系统抽象', + link: 'rollup-and-proof-system-abstraction' + }, { text: '跨链抽象', link: 'cross-chain-abstraction' }, { text: '多重质押协议', link: 'multi-staking-protocol' }, { text: '快速验证网络抽象', link: 'fast-finality' }, - { text: '模块化可组合 Layer3', link: 'layer3-app-chain' }, + { text: '模块化可组合 Layer3', link: 'layer3-app-chain' } ] - }, { + }, + { text: '本地运行测试', base: '/zh/chain/', collapsed: false, items: [ { text: '本地启动网络', link: 'chain-setup' }, - { text: '开始使用', link: 'start-test' }, + { text: '开始使用', link: 'start-test' } ] - }, { + }, + { text: 'DappLink 测试网络测试', base: '/zh/chain/', collapsed: false, @@ -284,7 +304,7 @@ function sidebarDapp(): DefaultTheme.SidebarItem[] { { text: '质押借贷协议', link: 'staking-protocol' }, { text: 'LSP 和重新质押协议', link: 'lsp-restaking' }, { text: '链上保险', link: 'onchain-insurance' }, - { text: 'PayFi 和 RWA', link: 'payfi-rwa' }, + { text: 'PayFi 和 RWA', link: 'payfi-rwa' } ] }, { @@ -293,7 +313,7 @@ function sidebarDapp(): DefaultTheme.SidebarItem[] { collapsed: false, items: [ { text: '本地启动网络', link: 'chain-setup' }, - { text: '开始使用', link: 'start-test' }, + { text: '开始使用', link: 'start-test' } ] } ] diff --git a/docs/en/wallet/centralized-wallet.md b/docs/en/wallet/centralized-wallet.md new file mode 100644 index 0000000..a93f213 --- /dev/null +++ b/docs/en/wallet/centralized-wallet.md @@ -0,0 +1,123 @@ +# Centralized wallet business process +## + +![dapplink-wallet-3](images/dapplink-wallet-3.png) + +- Address Generation Process + - The business party schedules the signature machine to generate a key pair, with the private key stored in the signature machine, and the public key returned via the interface + - The business calls the gRPC interface, passing in the public key list to generate addresses. multichain-sync-utxo/multichain-sync-account schedules the underlying service to generate addresses based on the public key and returns the address list to the business party. +- Blockchain Scanning Process + - When recharging: The synchronizer service listens for blocks, parses transactions, and processes them into the database + - Recharge: The withdrawal address is an external address, and the deposit address is the exchange user's address + - Withdrawal: The withdrawal address is the hot wallet address, and the deposit address is an external address + - Aggregation: The withdrawal address is the user's address, and the deposit address is the hot wallet address + - Hot-to-warm transfer: The withdrawal address is the hot wallet address, and the deposit address is the warm wallet address + - Warm-to-hot transfer: The withdrawal address is the warm wallet address, and the deposit address is the hot wallet address +- Withdrawal + - Call multichain-sync's BuildUnSignTransaction to build a 32-byte MessageHash + - Use the MessageHash to sign in the signature machine and return the signature + - Send the transaction requestId and signature to multichain-sync, construct the complete transaction, and send it to the blockchain network + - The withdrawal task in multichain-sync constantly scans transactions and sends them to the blockchain. Once sent, it notifies the business layer that the transaction has been sent + - After scanning the withdrawal transaction, it notifies the business layer that the withdrawal is successful +- Aggregation, Hot-to-Warm and Warm-to-Hot transfer business logic is similar to the withdrawal process + +## 1.Unified RPC service Gateway +![dapplink-wallet-4](images/dapplink-wallet-4.png) + +## 2.wallet-chain-utxo Implemented interfaces +``` +GetSupportChains(req *utxo.SupportChainsRequest) (*utxo.SupportChainsResponse, error) +ConvertAddress(req *utxo.ConvertAddressRequest) (*utxo.ConvertAddressResponse, error) +ValidAddress(req *utxo.ValidAddressRequest) (*utxo.ValidAddressResponse, error) +GetFee(req *utxo.FeeRequest) (*utxo.FeeResponse, error) +GetAccount(req *utxo.AccountRequest) (*utxo.AccountResponse, error) +GetUnspentOutputs(req *utxo.UnspentOutputsRequest) (*utxo.UnspentOutputsResponse, error) +GetBlockByNumber(req *utxo.BlockNumberRequest) (*utxo.BlockResponse, error) +GetBlockByHash(req *utxo.BlockHashRequest) (*utxo.BlockResponse, error) +GetBlockHeaderByHash(req *utxo.BlockHeaderHashRequest) (*utxo.BlockHeaderResponse, error) +GetBlockHeaderByNumber(req *utxo.BlockHeaderNumberRequest) (*utxo.BlockHeaderResponse, error) +SendTx(req *utxo.SendTxRequest) (*utxo.SendTxResponse, error) +GetTxByAddress(req *utxo.TxAddressRequest) (*utxo.TxAddressResponse, error) +GetTxByHash(req *utxo.TxHashRequest) (*utxo.TxHashResponse, error) +BuildUnSignTransaction(req *utxo.UnSignTransactionRequest) (*utxo.UnSignTransactionResponse, error) +BuildSignedTransaction(req *utxo.SignedTransactionRequest) (*utxo.SignedTransactionResponse, error) +DecodeTransaction(req *utxo.DecodeTransactionRequest) (*utxo.DecodeTransactionResponse, error) +VerifySignedTransaction(req *utxo.VerifyTransactionRequest) (*utxo.VerifyTransactionResponse, error) +``` +- GetSupportChains: Query if a chain is supported +- ConvertAddress: Export address from public key +- ValidAddress: Check if the address format is correct +- GetFee: Estimate transaction fee +- GetAccount: Get account-related information, such as balance +- GetUnspentOutputs: Get the list of unspent transaction outputs +- GetBlockByNumber: Get block information based on the block number, including transaction list. If empty is passed, the latest block will be returned; if a block number is passed, information for that block will be returned. +- GetBlockByHash: Get block information based on block hash, including transaction list +- GetBlockHeaderByHash: Get block header information based on block hash +- GetBlockHeaderByNumber: Get block header information based on block number +- SendTx: Broadcast the signed transaction +- GetTxByAddress: Get transaction records related to the given address +- GetTxByHash: Get transaction details based on TxHash +- BuildUnSignTransaction: Generate a 32-byte MessageHash to be signed from the transaction data +- BuildSignedTransaction: Build the complete transaction using the signature returned by the signature machine and the transaction information +- DecodeTransaction: Decode the rawTx to obtain the original transaction +- VerifySignedTransaction: Verify the signed transaction + +## 3.wallet-chain-account Implemented interfaces +``` +type IChainAdaptor interface { + GetSupportChains(req *account.SupportChainsRequest) (*account.SupportChainsResponse, error) + ConvertAddress(req *account.ConvertAddressRequest) (*account.ConvertAddressResponse, error) + ValidAddress(req *account.ValidAddressRequest) (*account.ValidAddressResponse, error) + GetBlockByNumber(req *account.BlockNumberRequest) (*account.BlockResponse, error) + GetBlockByHash(req *account.BlockHashRequest) (*account.BlockResponse, error) + GetBlockHeaderByHash(req *account.BlockHeaderHashRequest) (*account.BlockHeaderResponse, error) + GetBlockHeaderByNumber(req *account.BlockHeaderNumberRequest) (*account.BlockHeaderResponse, error) + GetAccount(req *account.AccountRequest) (*account.AccountResponse, error) + GetFee(req *account.FeeRequest) (*account.FeeResponse, error) + SendTx(req *account.SendTxRequest) (*account.SendTxResponse, error) + GetTxByAddress(req *account.TxAddressRequest) (*account.TxAddressResponse, error) + GetTxByHash(req *account.TxHashRequest) (*account.TxHashResponse, error) + GetBlockByRange(req *account.BlockByRangeRequest) (*account.BlockByRangeResponse, error) + BuildUnSignTransaction(req *account.UnSignTransactionRequest) (*account.UnSignTransactionResponse, error) + BuildSignedTransaction(req *account.SignedTransactionRequest) (*account.SignedTransactionResponse, error) + DecodeTransaction(req *account.DecodeTransactionRequest) (*account.DecodeTransactionResponse, error) + VerifySignedTransaction(req *account.VerifyTransactionRequest) (*account.VerifyTransactionResponse, error) + GetExtraData(req *account.ExtraDataRequest) (*account.ExtraDataResponse, error) +} +``` +- GetSupportChains: Query if a chain is supported +- ConvertAddress: Convert public key to address +- ValidAddress: Validate if the address format is correct +- GetFee: Estimate transaction fee +- GetAccount: Get account-related information, such as balance +- GetBlockByNumber: Get block information by block number, including transaction list. If empty is passed, the latest block is returned; if a block number is passed, information for that block is returned +- GetBlockByHash: Get block information by block hash, including transaction list +- GetBlockHeaderByHash: Get block header information by block hash +- GetBlockHeaderByNumber: Get block header information by block number +- GetBlockByRange: Get block information for a range of blocks, specified by start and end block numbers +- SendTx: Broadcast signed transaction +- GetTxByAddress: Get transaction records for a specific address +- GetTxByHash: Get transaction details by TxHash +- BuildUnSignTransaction: Generate a 32-byte MessageHash to be signed from transaction data +- BuildSignedTransaction: Build the complete transaction using the signature returned by the signature machine and the transaction information +- DecodeTransaction: Decode rawTx to get the original transaction +- VerifySignedTransaction: Verify a signed transaction +- GetExtraData: Reserved interface + +## 4.multichain-sync-account/utxo service +``` +service BusinessMiddleWireServices { + rpc businessRegister(BusinessRegisterRequest) returns (BusinessRegisterResponse) {} + rpc exportAddressesByPublicKeys(ExportAddressesRequest) returns (ExportAddressesResponse) {} + rpc buildUnSignTransaction(UnSignWithdrawTransactionRequest) returns(UnSignWithdrawTransactionResponse){} + rpc buildSignedTransaction(SignedWithdrawTransactionRequest) returns(SignedWithdrawTransactionResponse){} + rpc setTokenAddress(SetTokenAddressRequest) returns (SetTokenAddressResponse) {} +} +``` +- businessRegister: Third-party businesses need to register in the system before they can use the full wallet service +- exportAddressesByPublicKeys: Batch generate addresses based on public keys +- createUnSignTransaction: Generate a 32-byte MessageHash to be signed from transaction data +- buildUnSignTransaction: Build the complete transaction using the signature returned by the signature machine and the transaction information +- setTokenAddress: Businesses configure the tokens they need to support based on their requirements + + diff --git a/docs/en/wallet/centralized/batch-generate-address.md b/docs/en/wallet/centralized/batch-generate-address.md new file mode 100644 index 0000000..da43154 --- /dev/null +++ b/docs/en/wallet/centralized/batch-generate-address.md @@ -0,0 +1,8 @@ +# Batch Address Generation +## + +![img.png](../images/centralized-wallet-4.png) + +- The business schedules its own signature to generate keys, with the private key never leaving the TEE or CloudHSM. However, the public key list will be returned to the business. +- The business provides the public key list to Multichain, which then schedules wallet-chain-account/utxo to export addresses based on the public keys. +- The generated address list is stored in the business table and the address list is returned. \ No newline at end of file diff --git a/docs/en/wallet/centralized/business-id-config.md b/docs/en/wallet/centralized/business-id-config.md new file mode 100644 index 0000000..0a9241b --- /dev/null +++ b/docs/en/wallet/centralized/business-id-config.md @@ -0,0 +1,7 @@ +# Merchant ID Configuration +## + +![img.png](../images/centralized-wallet-2.png) + +- Register with our DappLink wallet platform using the Merchant ID. Internally, the system will partition and manage the database based on the business. +- During business registration, the relevant callback interfaces for deposit, withdrawal, transaction records, etc., must be submitted to the DappLink wallet platform. \ No newline at end of file diff --git a/docs/en/wallet/centralized/business-submit.md b/docs/en/wallet/centralized/business-submit.md new file mode 100644 index 0000000..a66c5db --- /dev/null +++ b/docs/en/wallet/centralized/business-submit.md @@ -0,0 +1,7 @@ +# Merchant information submission +## + +![img.png](../images/centralized-wallet-1.png) + +- Business submits merchant information. +- DappLink business platform assigns Token and Merchant ID to the business. \ No newline at end of file diff --git a/docs/en/wallet/centralized/cold-to-hot.md b/docs/en/wallet/centralized/cold-to-hot.md new file mode 100644 index 0000000..1c9142e --- /dev/null +++ b/docs/en/wallet/centralized/cold-to-hot.md @@ -0,0 +1,4 @@ +# Cold to Hot transfer + +- If the hot wallet balance is below a certain threshold, trigger an alert to notify the business. +- The business manually initiates a transfer of funds from the cold wallet to the hot wallet. \ No newline at end of file diff --git a/docs/en/wallet/centralized/collection-flow.md b/docs/en/wallet/centralized/collection-flow.md new file mode 100644 index 0000000..944b501 --- /dev/null +++ b/docs/en/wallet/centralized/collection-flow.md @@ -0,0 +1,6 @@ +# Collection +## + +![img.png](../images/centralized-wallet-7.png) + +- Detect whether the user's address balance is greater than the minimum collection amount. If it is, initiate a transaction to aggregate the funds. \ No newline at end of file diff --git a/docs/en/wallet/centralized/deposit-flow.md b/docs/en/wallet/centralized/deposit-flow.md new file mode 100644 index 0000000..12939b2 --- /dev/null +++ b/docs/en/wallet/centralized/deposit-flow.md @@ -0,0 +1,18 @@ +# Recharge Business +## + +![img.png](../images/centralized-wallet-5.png) + +- Get the latest blockchain block. +- Get the highest block from local data. +- Compare the latest block on the chain with the highest block in the database. +- If the local data block height = the latest block height on the chain, wait for the new block to appear. +- If the local data block height > the latest block height on the chain, perform transaction rollback. +- If the local data block height < the latest block height on the chain +- Get the transaction list based on the block height. +- After parsing the transactions + - If the "from" address is an external address and the "to" address is an internal user address, it's a recharge. Call the callback interface to notify the business. + - If the "from" address is a user address and the "to" address is a hot wallet address, it's a consolidation. Call the callback interface to notify the business. + - If the "from" address is a hot wallet address and the "to" address is an external user address, it's a withdrawal. Call the callback interface to notify the business. + - If the "from" address is a hot wallet address and the "to" address is a cold wallet address, it's a hot-to-cold transfer. Call the callback interface to notify the business. + - If the "from" address is a cold wallet address and the "to" address is a hot wallet address, it's a cold-to-hot transfer. Call the callback interface to notify the business. \ No newline at end of file diff --git a/docs/en/wallet/centralized/fallback.md b/docs/en/wallet/centralized/fallback.md new file mode 100644 index 0000000..4ae6ae3 --- /dev/null +++ b/docs/en/wallet/centralized/fallback.md @@ -0,0 +1,5 @@ +# Rollback Business +## + +![img.png](../images/centralized-wallet-8.png) + diff --git a/docs/en/wallet/centralized/hot-to-cold.md b/docs/en/wallet/centralized/hot-to-cold.md new file mode 100644 index 0000000..1eba404 --- /dev/null +++ b/docs/en/wallet/centralized/hot-to-cold.md @@ -0,0 +1,4 @@ +# Hot to Cold transfer +## + +- Check if the funds in the hot wallet address exceed a certain threshold for cold transfer. If they do, initiate a transaction to move the funds to the cold wallet. The process is similar to withdrawal and aggregation. \ No newline at end of file diff --git a/docs/en/wallet/centralized/service-deploy.md b/docs/en/wallet/centralized/service-deploy.md new file mode 100644 index 0000000..2733716 --- /dev/null +++ b/docs/en/wallet/centralized/service-deploy.md @@ -0,0 +1,11 @@ +# Service Deployment Method +## + +- Signature Machine: Deployed by the project party +- Unified gRPC Service + - wallet-chain-utxo: Provided by DappLink. + - wallet-chain-account: Provided by DappLink. +- Unified Chain Scanning Service + - multichain-sync-account: Provided by DappLink. + - Multichain-sync-utxo: Provided by DappLink. +- Business Middle Platform: Provided by DappLink \ No newline at end of file diff --git a/docs/en/wallet/centralized/set-chain-token.md b/docs/en/wallet/centralized/set-chain-token.md new file mode 100644 index 0000000..112de72 --- /dev/null +++ b/docs/en/wallet/centralized/set-chain-token.md @@ -0,0 +1,5 @@ +# Business Configures Token +## +![img.png](../images/centralized-wallet-3.png) + +- The business configures the token by providing the token name, symbol, precision, minimum and maximum aggregation, cold storage financial information, and other related details. \ No newline at end of file diff --git a/docs/en/wallet/centralized/withdraw-flow.md b/docs/en/wallet/centralized/withdraw-flow.md new file mode 100644 index 0000000..242672b --- /dev/null +++ b/docs/en/wallet/centralized/withdraw-flow.md @@ -0,0 +1,11 @@ +# Withdrawal Process +## + +![img.png](../images/centralized-wallet-6.png) + +- The user initiates a withdrawal, and the business sends the withdrawal transaction to the DappLink wallet service. +- The business sends the transaction to multichain-sync-account/utxo to build the message to be signed. multichain-sync-account/utxo schedules wallet-chain-account/utxo to return the message to be signed. +- The business sends the message to be signed to its own deployed signature service for signing. +- The business sends the signature and transaction ID to multichain-sync-account/utxo, which then schedules wallet-chain-account/utxo to build the complete transaction and sends it to the blockchain network, returning the complete transaction and transaction hash to the business side. +- The withdrawal process will scan these transactions and send them to the blockchain network. +- The scanning part of the process refers to the recharge module. \ No newline at end of file diff --git a/docs/en/wallet/chain-explorer-api.md b/docs/en/wallet/chain-explorer-api.md deleted file mode 100644 index 021034a..0000000 --- a/docs/en/wallet/chain-explorer-api.md +++ /dev/null @@ -1,17 +0,0 @@ -# Unified Browser API Code Library {#dapplink-wallet} - -Chain Explorer API is a unified browser interface gateway that simplifies the calling process of browser APIs, provides a unified imported parameter exported parameter underlying call library, and helps third-party projects simplify the development process. - -### System Architecture -- Unified Entry Point: Offers a standardized API interface to receive user requests and perform parameter validation. -- Parameter Handling Module: Standardizes input parameters to ensure compatibility with internal modules. -- Third-Party Service Adapters: Invokes different third-party blockchain explorer services based on standardized parameters to retrieve the required data. -- Response Handling Module: Processes data obtained from third-party services, unifies the output format, and returns it to the user. -### Workflow -- Request Reception: Users send requests through the unified entry point, including the desired blockchain information and related parameters. -- Parameter Standardization: The Parameter Handling Module standardizes user input to ensure it meets internal processing requirements. -- Service Invocation: Based on the standardized parameters, the appropriate third-party service adapter is selected to call the corresponding blockchain explorer service for data retrieval. -- Data Processing: The Response Handling Module parses and formats the retrieved data to ensure consistency in the output. -- Result Return: The processed data is returned to the user through the unified entry point, completing the API call process. - -![img.png](img/explorer-api.png) \ No newline at end of file diff --git a/docs/en/wallet/core-function.md b/docs/en/wallet/core-function.md index b363537..f8aec19 100644 --- a/docs/en/wallet/core-function.md +++ b/docs/en/wallet/core-function.md @@ -1,2 +1,45 @@ -# DappLink Wallet {#dapplink-wallet} +# DappLink Core Function +## + +The DappLink one-click wallet deployment platform is composed of multiple core components to ensure security, scalability, and high performance + +![img.png](images/dapplink-wallet-1.png) + +key-locker: On-chain key management tool, supporting blockchains such as Ethereum, IPFS, Arweave, etc. + +Signature Machine: DappLink’s signature machine supports two modes: CloudHSM and TEE (Trusted Execution Environment). Currently, it supports ECDSA and EdDSA encryption algorithms and has been adopted by multiple vendors. The signature machine ensures the security of transaction signatures and can adapt to different security needs. + +MPC Network: DappLink adopts MPC and ZK technologies for decentralized key management mechanisms, dynamic signing committees, suitable for enterprise-level wallets and compliance custody needs. + +wallet-sdk: Provides standardized interfaces with multi-chain support, enabling developers to quickly integrate wallet functionality. It mainly includes: +- Address generation +- Transaction signing +- Asset queries +- On-chain interaction + +Unified gRPC Interface Service: Provides a unified gRPC interface, integrates third-party data platforms, and supports various blockchain models. This component offers a consistent API design, enabling different types of blockchains to interact through the same interface. +- chain-data-api: Unified wallet API for connecting to third-party platforms, mainly serving HD wallets. +- wallet-chain-account: Suitable for account models (Ethereum, Solana, etc.) +- wallet-chain-utxo: Suitable for UTXO models (Bitcoin, Litecoin, BCH, BSV, etc.) + +Unified Blockchain Scan Service: DappLink features robust on-chain data synchronization and monitoring capabilities, supporting transaction processing for both account models and UTXO models. For account model chains: multichain-sync-account and for UTXO model chains: multichain-sync-utxo. This module ensures that the wallet can track on-chain changes in real time and efficiently handle asset transfers. The module includes the following functions: +- Business configuration +- Address export +- Deposit & withdrawal +- Asset aggregation +- Hot-to-cold and cold-to-hot transfers +- Transaction rollback and other business logic + +Data and transaction services +- skeye: Unified market data service, integrating CEX and DEX, providing real-time market data. +- trade: Supports centralized wallet features like flash trading, leverage, futures, and options insurance, with future integration plans for exchanges. +- Decentralized Flash Trading: Optimizes trading paths through Aggregator APIs to improve exchange efficiency. + +Hailstone Business Middleware: Hailstone is the business middleware within the DappLink ecosystem, responsible for interfacing with upper-level business systems, providing efficient and stable middle-layer services. Hailstone enables seamless wallet integration with various Web3 applications, enhancing business integration capabilities. Main features include: +- User account management +- Transaction risk control +- Data analysis +- Cross-chain interaction +- Dapp aggregation + diff --git a/docs/en/wallet/dapplink-secret.md b/docs/en/wallet/dapplink-secret.md deleted file mode 100644 index 2688ea3..0000000 --- a/docs/en/wallet/dapplink-secret.md +++ /dev/null @@ -1,20 +0,0 @@ -# Underlying Library for Threshold Secret Sharing Algorithms {#dapplink-wallet} - -Dapplink-Secret is a foundational library developed based on the Shamir threshold secret sharing algorithm, with optimizations made on the original implementation. The library aims to provide a simple and secure solution for secret sharing and recovery. It is built with JavaScript and supports usage in both Node.js and browser environments, with compatibility for global variables and AMD module loading. -Features Overview -- Secret Splitting: Allows splitting any "secret" into n "shares." - - Examples of secrets: Passwords, text files, Bitcoin private keys, etc. - - Share size: Each share is the same size in bits as the original secret. -- Threshold Recovery: Any t (threshold) shares can be used to reconstruct the original secret. - Key Features -- Cross-platform Support: Compatible with Node.js and browser environments, supporting both global variables and AMD module loading. -- High Security: Based on the mathematically robust Shamir threshold sharing algorithm, ensuring the safety of secrets. -- Flexibility: Applicable to various use cases, including password storage, distributed key management, and more. - Use Cases -- Password Management: Split a password into multiple shares and distribute them to different custodians for enhanced security. -- Key Backup: Store Bitcoin private keys or other critical keys in a distributed manner to prevent single points of failure. -- File Security: Protect important files and manage access through threshold secret sharing. - -The following is a flowchart of the algorithm with 4 as the number of split keys and 2 as the threshold value. - -![img.png](img/dapplink-secret.png) \ No newline at end of file diff --git a/docs/en/wallet/centralized-wallet-servicer.md b/docs/en/wallet/dapplink-testnet.md similarity index 100% rename from docs/en/wallet/centralized-wallet-servicer.md rename to docs/en/wallet/dapplink-testnet.md diff --git a/docs/en/wallet/decentralized-wallet.md b/docs/en/wallet/decentralized-wallet.md new file mode 100644 index 0000000..93a8ce6 --- /dev/null +++ b/docs/en/wallet/decentralized-wallet.md @@ -0,0 +1,47 @@ +# Decentralized Wallet Services +## + +![dapplink-wallet-5](images/dapplink-wallet-5.png) + +Data Collection and Integration: Collect data from third-party data platforms, centralized exchange market data, decentralized exchange market data, and trading aggregators. +- Integrate and process multiple data sources via chain-data-api +- skyeye and dapplink-aggregator handle trading calculations, exchanges, and aggregation, providing data support for trading aggregators + +Blockchain Account and UTXO Processing: +- Handle UTXO account data through wallet-chain-utxo +- Process blockchain data based on account models via wallet-chain-account +- key-locker: Decentralized key vault component + +Hailstone Wallet Backend Services: +- Wallet Data Management: Basic management of user wallet information +- Wallet Asset Management: Storage and management of wallet assets +- Wallet Market Data: Real-time querying of market prices for wallet assets +- Dapp Module: Provide business support for Dapp-related functions +- Consultation Module: Provide market or product consultation information +- Instant Exchange Module: Provide fast exchange functionality +- RWA (Real-World Assets): Support the on-chain mapping of real-world assets +- PayFI: Provide payment and financial functions + +Frontend Dependency Libraries, Providing Wallet Interaction and Transaction Aggregation Functions: +- wallet-sdk: Generates offline wallet addresses, supports HD (Hierarchical Deterministic) mode, and performs offline signing +- inject-js: Handles JS bridge code for wallet and Dapp interaction +- dapplink-aggregator-js: Provides JS code for the trading aggregator API; handles data extraction and calculations, supports currency exchange functionality +- parapack (SQLite) and fishcake (SQLite): Used for local data storage, possibly for caching or lightweight data storage needs + +## 1.Market Data Services +![dapplink-wallet-6](images/dapplink-wallet-6.png) + +- Regularly pull market data from various exchanges +- After obtaining trading pair data, remove the lowest and highest values +- Perform weighted average calculation, and compute the 24-hour price change based on your own data +- Calculate the total network 24-hour trading volume and average trading volume based on the exchange's trading volume + + +## 2.Key Custody Services +![dapplink-wallet-7](images/dapplink-wallet-7.png) + +- The wallet private key is combined with a random number using the XOR algorithm to form the Body +- The random number is used as the Header, which is uploaded to the cloud +- The Body is split using the threshold secret sharing algorithm into multiple shadows, and each shadow is stored across multiple distributed nodes +- During recovery, the inverse threshold secret sharing algorithm is used to combine a sufficient number of shadows to recover the Body +- Retrieve the Header from the cloud, and use the inverse XOR algorithm with the Body to restore the original wallet private key \ No newline at end of file diff --git a/docs/en/wallet/decentralized/asset-manager-module.md b/docs/en/wallet/decentralized/asset-manager-module.md new file mode 100644 index 0000000..b0c5741 --- /dev/null +++ b/docs/en/wallet/decentralized/asset-manager-module.md @@ -0,0 +1,3 @@ +# Asset Management Module +## +![img.png](../images/decentralized-wallet-12.png) diff --git a/docs/en/wallet/decentralized/dapp-explorer.md b/docs/en/wallet/decentralized/dapp-explorer.md new file mode 100644 index 0000000..20ee3fb --- /dev/null +++ b/docs/en/wallet/decentralized/dapp-explorer.md @@ -0,0 +1,5 @@ +# DApp Browser + +## + +![img.png](../images/decentralized-wallet-14.png) diff --git a/docs/en/wallet/decentralized/deposit.md b/docs/en/wallet/decentralized/deposit.md new file mode 100644 index 0000000..cc78004 --- /dev/null +++ b/docs/en/wallet/decentralized/deposit.md @@ -0,0 +1,7 @@ +# Receiving Payments +## + +![img.png](../images/decentralized-wallet-6.png) + + + diff --git a/docs/en/wallet/decentralized/get-wallet-balance.md b/docs/en/wallet/decentralized/get-wallet-balance.md new file mode 100644 index 0000000..6b99332 --- /dev/null +++ b/docs/en/wallet/decentralized/get-wallet-balance.md @@ -0,0 +1,5 @@ +# Fetch wallet balance +## + +![img.png](../images/decentralized-wallet-8.png) + diff --git a/docs/en/wallet/decentralized/market-data-module.md b/docs/en/wallet/decentralized/market-data-module.md new file mode 100644 index 0000000..a068fa9 --- /dev/null +++ b/docs/en/wallet/decentralized/market-data-module.md @@ -0,0 +1,4 @@ +# Market Data Module +## + +![img.png](../images/decentralized-wallet-11.png) diff --git a/docs/en/wallet/decentralized/mnemonic-export.md b/docs/en/wallet/decentralized/mnemonic-export.md new file mode 100644 index 0000000..efb4c8d --- /dev/null +++ b/docs/en/wallet/decentralized/mnemonic-export.md @@ -0,0 +1,6 @@ +# Mnemonic Export +## + +The DappLink solution follows the same derivation model as other HD wallets. When importing the DappLink wallet mnemonic into another wallet, the generated private key, public key, and address will be the same (Note: some blockchains have multiple address formats. If different wallets choose different address formats, the generated addresses might differ). +### +![img.png](../images/decentralized-wallet-2.png) diff --git a/docs/en/wallet/decentralized/mnemonic-import.md b/docs/en/wallet/decentralized/mnemonic-import.md new file mode 100644 index 0000000..fd870b4 --- /dev/null +++ b/docs/en/wallet/decentralized/mnemonic-import.md @@ -0,0 +1,6 @@ +# Mnemonic Import +## + +![img.png](../images/decentralized-wallet-5.png) + + diff --git a/docs/en/wallet/decentralized/private-export.md b/docs/en/wallet/decentralized/private-export.md new file mode 100644 index 0000000..1f51b1c --- /dev/null +++ b/docs/en/wallet/decentralized/private-export.md @@ -0,0 +1,4 @@ +# Private Key Export +## + +![img.png](../images/decentralized-wallet-4.png) diff --git a/docs/en/wallet/decentralized/private-import.md b/docs/en/wallet/decentralized/private-import.md new file mode 100644 index 0000000..ee62d03 --- /dev/null +++ b/docs/en/wallet/decentralized/private-import.md @@ -0,0 +1,6 @@ +# Private Key Import +## + +![img.png](../images/decentralized-wallet-15.png) + +Note: The private key import can only generate the addresses associated with that specific private key. However, the mnemonic phrase can manage multiple wallets (account, address_index) through the BIP derivation protocol. \ No newline at end of file diff --git a/docs/en/wallet/decentralized/quick-exchange.md b/docs/en/wallet/decentralized/quick-exchange.md new file mode 100644 index 0000000..321289b --- /dev/null +++ b/docs/en/wallet/decentralized/quick-exchange.md @@ -0,0 +1,4 @@ +# Quick Exchange +## + +![img.png](../images/decentralized-wallet-13.png) diff --git a/docs/en/wallet/decentralized/token-find.md b/docs/en/wallet/decentralized/token-find.md new file mode 100644 index 0000000..2b003af --- /dev/null +++ b/docs/en/wallet/decentralized/token-find.md @@ -0,0 +1,4 @@ +# Token Discovery +## + +![img.png](../images/decentralized-wallet-10.png) diff --git a/docs/en/wallet/decentralized/transaction-record.md b/docs/en/wallet/decentralized/transaction-record.md new file mode 100644 index 0000000..a3363f2 --- /dev/null +++ b/docs/en/wallet/decentralized/transaction-record.md @@ -0,0 +1,4 @@ +# Transaction History +## + +![img.png](../images/decentralized-wallet-9.png) \ No newline at end of file diff --git a/docs/en/wallet/decentralized/transform.md b/docs/en/wallet/decentralized/transform.md new file mode 100644 index 0000000..d17f305 --- /dev/null +++ b/docs/en/wallet/decentralized/transform.md @@ -0,0 +1,6 @@ +# Transfer +## + +![img.png](../images/decentralized-wallet-7.png) + +- GasOracle: Predicts the on-chain transaction fee, which can be done using DappLink's GasOracle service. \ No newline at end of file diff --git a/docs/en/wallet/decentralized/wallet-address-gen.md b/docs/en/wallet/decentralized/wallet-address-gen.md new file mode 100644 index 0000000..f23373e --- /dev/null +++ b/docs/en/wallet/decentralized/wallet-address-gen.md @@ -0,0 +1,5 @@ +# Wallet Address Generation +## + +![img.png](../images/decentralized-wallet-1.png) + diff --git a/docs/en/wallet/images/centralized-wallet-1.png b/docs/en/wallet/images/centralized-wallet-1.png new file mode 100644 index 0000000..b6ad07a Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-1.png differ diff --git a/docs/en/wallet/images/centralized-wallet-2.png b/docs/en/wallet/images/centralized-wallet-2.png new file mode 100644 index 0000000..1550bf9 Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-2.png differ diff --git a/docs/en/wallet/images/centralized-wallet-3.png b/docs/en/wallet/images/centralized-wallet-3.png new file mode 100644 index 0000000..6943ffc Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-3.png differ diff --git a/docs/en/wallet/images/centralized-wallet-4.png b/docs/en/wallet/images/centralized-wallet-4.png new file mode 100644 index 0000000..23f2c74 Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-4.png differ diff --git a/docs/en/wallet/images/centralized-wallet-5.png b/docs/en/wallet/images/centralized-wallet-5.png new file mode 100644 index 0000000..400f36e Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-5.png differ diff --git a/docs/en/wallet/images/centralized-wallet-6.png b/docs/en/wallet/images/centralized-wallet-6.png new file mode 100644 index 0000000..cd8018a Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-6.png differ diff --git a/docs/en/wallet/images/centralized-wallet-7.png b/docs/en/wallet/images/centralized-wallet-7.png new file mode 100644 index 0000000..b5de959 Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-7.png differ diff --git a/docs/en/wallet/images/centralized-wallet-8.png b/docs/en/wallet/images/centralized-wallet-8.png new file mode 100644 index 0000000..e62d229 Binary files /dev/null and b/docs/en/wallet/images/centralized-wallet-8.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-1.png b/docs/en/wallet/images/dapplink-wallet-1.png new file mode 100644 index 0000000..beee6f0 Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-1.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-2.png b/docs/en/wallet/images/dapplink-wallet-2.png new file mode 100644 index 0000000..81c0afb Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-2.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-3.png b/docs/en/wallet/images/dapplink-wallet-3.png new file mode 100644 index 0000000..700302b Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-3.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-4.png b/docs/en/wallet/images/dapplink-wallet-4.png new file mode 100644 index 0000000..0084090 Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-4.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-5.png b/docs/en/wallet/images/dapplink-wallet-5.png new file mode 100644 index 0000000..c5b5b78 Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-5.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-6.png b/docs/en/wallet/images/dapplink-wallet-6.png new file mode 100644 index 0000000..303964c Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-6.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-7.png b/docs/en/wallet/images/dapplink-wallet-7.png new file mode 100644 index 0000000..4c585fd Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-7.png differ diff --git a/docs/en/wallet/images/dapplink-wallet-8.png b/docs/en/wallet/images/dapplink-wallet-8.png new file mode 100644 index 0000000..c7df2f2 Binary files /dev/null and b/docs/en/wallet/images/dapplink-wallet-8.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-1.png b/docs/en/wallet/images/decentralized-wallet-1.png new file mode 100644 index 0000000..21c3140 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-1.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-10.png b/docs/en/wallet/images/decentralized-wallet-10.png new file mode 100644 index 0000000..2537a9a Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-10.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-11.png b/docs/en/wallet/images/decentralized-wallet-11.png new file mode 100644 index 0000000..e4c8d8c Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-11.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-12.png b/docs/en/wallet/images/decentralized-wallet-12.png new file mode 100644 index 0000000..751503a Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-12.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-13.png b/docs/en/wallet/images/decentralized-wallet-13.png new file mode 100644 index 0000000..b2ebd20 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-13.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-14.png b/docs/en/wallet/images/decentralized-wallet-14.png new file mode 100644 index 0000000..0f13525 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-14.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-15.png b/docs/en/wallet/images/decentralized-wallet-15.png new file mode 100644 index 0000000..562894f Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-15.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-2.png b/docs/en/wallet/images/decentralized-wallet-2.png new file mode 100644 index 0000000..797349a Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-2.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-3.png b/docs/en/wallet/images/decentralized-wallet-3.png new file mode 100644 index 0000000..8dad853 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-3.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-4.png b/docs/en/wallet/images/decentralized-wallet-4.png new file mode 100644 index 0000000..b188267 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-4.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-5.png b/docs/en/wallet/images/decentralized-wallet-5.png new file mode 100644 index 0000000..fa13065 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-5.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-6.png b/docs/en/wallet/images/decentralized-wallet-6.png new file mode 100644 index 0000000..8f76285 Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-6.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-7.png b/docs/en/wallet/images/decentralized-wallet-7.png new file mode 100644 index 0000000..74762bc Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-7.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-8.png b/docs/en/wallet/images/decentralized-wallet-8.png new file mode 100644 index 0000000..0b5aadc Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-8.png differ diff --git a/docs/en/wallet/images/decentralized-wallet-9.png b/docs/en/wallet/images/decentralized-wallet-9.png new file mode 100644 index 0000000..2b5918b Binary files /dev/null and b/docs/en/wallet/images/decentralized-wallet-9.png differ diff --git a/docs/en/wallet/images/payfi-wallet-1.png b/docs/en/wallet/images/payfi-wallet-1.png new file mode 100644 index 0000000..714303f Binary files /dev/null and b/docs/en/wallet/images/payfi-wallet-1.png differ diff --git a/docs/en/wallet/images/payfi-wallet-2.png b/docs/en/wallet/images/payfi-wallet-2.png new file mode 100644 index 0000000..5ce5c5b Binary files /dev/null and b/docs/en/wallet/images/payfi-wallet-2.png differ diff --git a/docs/en/wallet/images/payfi-wallet-3.png b/docs/en/wallet/images/payfi-wallet-3.png new file mode 100644 index 0000000..4251a2a Binary files /dev/null and b/docs/en/wallet/images/payfi-wallet-3.png differ diff --git a/docs/en/wallet/images/payfi-wallet-4.png b/docs/en/wallet/images/payfi-wallet-4.png new file mode 100644 index 0000000..b4539e7 Binary files /dev/null and b/docs/en/wallet/images/payfi-wallet-4.png differ diff --git a/docs/en/wallet/img/dapplink-secret.png b/docs/en/wallet/img/dapplink-secret.png deleted file mode 100644 index 463bb69..0000000 Binary files a/docs/en/wallet/img/dapplink-secret.png and /dev/null differ diff --git a/docs/en/wallet/img/explorer-api.png b/docs/en/wallet/img/explorer-api.png deleted file mode 100644 index 2b52793..0000000 Binary files a/docs/en/wallet/img/explorer-api.png and /dev/null differ diff --git a/docs/en/wallet/img/img.png b/docs/en/wallet/img/img.png deleted file mode 100644 index f7ee1cc..0000000 Binary files a/docs/en/wallet/img/img.png and /dev/null differ diff --git a/docs/en/wallet/img/rpc.png b/docs/en/wallet/img/rpc.png deleted file mode 100644 index 5009c2b..0000000 Binary files a/docs/en/wallet/img/rpc.png and /dev/null differ diff --git a/docs/en/wallet/img/scanner-deposit.png b/docs/en/wallet/img/scanner-deposit.png deleted file mode 100644 index fc6a611..0000000 Binary files a/docs/en/wallet/img/scanner-deposit.png and /dev/null differ diff --git a/docs/en/wallet/img/scanner-tocold.png b/docs/en/wallet/img/scanner-tocold.png deleted file mode 100644 index c1b9f29..0000000 Binary files a/docs/en/wallet/img/scanner-tocold.png and /dev/null differ diff --git a/docs/en/wallet/img/scanner-tohot.png b/docs/en/wallet/img/scanner-tohot.png deleted file mode 100644 index 502be1c..0000000 Binary files a/docs/en/wallet/img/scanner-tohot.png and /dev/null differ diff --git a/docs/en/wallet/img/scanner-withdrawal.png b/docs/en/wallet/img/scanner-withdrawal.png deleted file mode 100644 index e85b1a2..0000000 Binary files a/docs/en/wallet/img/scanner-withdrawal.png and /dev/null differ diff --git a/docs/en/wallet/img/tss.png b/docs/en/wallet/img/tss.png deleted file mode 100644 index da05a23..0000000 Binary files a/docs/en/wallet/img/tss.png and /dev/null differ diff --git a/docs/en/wallet/key-locker.md b/docs/en/wallet/key-locker.md deleted file mode 100644 index d1271d2..0000000 --- a/docs/en/wallet/key-locker.md +++ /dev/null @@ -1,28 +0,0 @@ -# Key Management Tool {#dapplink-wallet} - -Key-Locker is a key management and information storage solution designed to provide secure and efficient management of keys and data. The backend integrates multiple public blockchains and decentralized storage systems, including Arweave, Ethereum (ETH), Filecoin, IPFS, Moonbeam, and more. Key-Locker unifies the access standards, allowing users to seamlessly connect to these public blockchains and decentralized storage platforms through a single entry point. - -### Features -- Multi-chain and Decentralized Storage Support: - - Supports a variety of public blockchains, including Arweave, Ethereum (ETH), Filecoin, Moonbeam, etc., ensuring compatibility with mainstream blockchain networks. - - Integrates decentralized storage platforms such as IPFS and Filecoin to provide efficient and secure data storage services. -- Unified Access Standards: - - Provides a unified API interface, simplifying user access and operations. - - Users can access different public blockchains and decentralized storage platforms through a single entry point, eliminating the need to integrate with multiple systems separately. -- Security: - - Offers advanced key management features to ensure the secure storage and use of keys. - - Enhanced encryption technologies to protect the privacy of user data and information. -- High Compatibility: - - Supports various public blockchains and decentralized storage solutions, ensuring seamless integration across different blockchain and storage platforms. - - Provides easy-to-integrate SDKs to help users quickly build integrated services. - -### Use Cases -- Key Management: - - Provides enterprise-grade key management solutions to ensure the secure storage and management of keys. - - Supports integration with multiple blockchain networks, making it suitable for cross-chain applications. -- Decentralized Storage: - - Supports multiple decentralized storage platforms (e.g., IPFS and Filecoin) to provide efficient and secure storage solutions for users. - - Suitable for large-scale data storage and long-term data preservation. -- Blockchain Project Integration: - - Offers a unified access point for blockchain projects, simplifying the integration of multi-chain and decentralized storage solutions. - - Supports on-chain data storage, smart contract interaction, and other features, making it ideal for developing decentralized applications (DApps). \ No newline at end of file diff --git a/docs/en/wallet/overview.md b/docs/en/wallet/overview.md index fae6df8..f8e9119 100644 --- a/docs/en/wallet/overview.md +++ b/docs/en/wallet/overview.md @@ -1,3 +1,17 @@ -# Overview {#overview} +# System Architecture +## + +With the rapid development of the Web3 ecosystem, digital asset management has become a crucial part of blockchain applications. Whether it is exchanges, centralized wallets, or decentralized MPC custody systems, all require efficient, secure, and scalable wallet infrastructure. The DappLink One-Click Wallet Deployment Platform is designed to address this demand, providing a one-click wallet deployment solution that supports the rapid integration and launch of centralized wallets, decentralized wallets, and custody systems. + +Since the launch of the project, the DappLink One-Click Wallet Platform has already partnered with multiple project teams, including Parapack and FishCake, both of which have successfully integrated DappLink’s one-click wallet and launched it smoothly. + +The DappLink One-Click Wallet Platform provides efficient and convenient wallet infrastructure for different types of Web3 projects and mainly supports the following application scenarios: + +- Exchange Wallets: Supports deposit and withdrawal, aggregation, cold, warm, and hot wallet management processes. +- Centralized Wallets: Provides high-performance, multi-chain compatible wallet backend services. +- Decentralized Wallets: Supports hierarchical deterministic wallet architecture and secure decentralized key management. +- MPC Custody Systems: Based on MPC and ZK technologies, it enables decentralized private key management, MPC dynamic committee signing, enhancing security and compliance. + +The platform adopts a modular design to ensure that each component can be deployed independently while also supporting one-click integration. diff --git a/docs/en/wallet/payfi/ai-wallet.md b/docs/en/wallet/payfi/ai-wallet.md new file mode 100644 index 0000000..e1a7403 --- /dev/null +++ b/docs/en/wallet/payfi/ai-wallet.md @@ -0,0 +1,5 @@ +# AI-Based Mnemonic-Free Wallet Solution + +## + +![img.png](../images/payfi-wallet-1.png) diff --git a/docs/en/wallet/payfi/digital-currency-card-payment.md b/docs/en/wallet/payfi/digital-currency-card-payment.md new file mode 100644 index 0000000..8dbdbbb --- /dev/null +++ b/docs/en/wallet/payfi/digital-currency-card-payment.md @@ -0,0 +1,5 @@ +# Crypto Card + POS Terminal Payment +## + +- Private key stored in cryptocurrency card: The card integrates a signature chip and storage, and the private key is encrypted with a passphrase. +- POS terminal constructs a 32-bit MessageHash, and the MessageHash is transmitted to the card for signing via NFC. Here, the card functions as a small hardware wallet. \ No newline at end of file diff --git a/docs/en/wallet/payfi/payfi-appchain.md b/docs/en/wallet/payfi/payfi-appchain.md new file mode 100644 index 0000000..49297bb --- /dev/null +++ b/docs/en/wallet/payfi/payfi-appchain.md @@ -0,0 +1,4 @@ +# High-Performance and Decentralized PayFi Application Chain +## + +![img.png](../images/payfi-wallet-2.png) diff --git a/docs/en/wallet/payfi/payfi-link-network.md b/docs/en/wallet/payfi/payfi-link-network.md new file mode 100644 index 0000000..69857ea --- /dev/null +++ b/docs/en/wallet/payfi/payfi-link-network.md @@ -0,0 +1,4 @@ +# PayFi Web-Initiated Payment +## + +![img.png](../images/payfi-wallet-4.png) \ No newline at end of file diff --git a/docs/en/wallet/payfi/payfi-scan.md b/docs/en/wallet/payfi/payfi-scan.md new file mode 100644 index 0000000..c2a5e7e --- /dev/null +++ b/docs/en/wallet/payfi/payfi-scan.md @@ -0,0 +1,4 @@ +# PayFi QR Code Payment +## + +![img.png](../images/payfi-wallet-3.png) \ No newline at end of file diff --git a/docs/en/wallet/payfi/scan-qr-code-payment.md b/docs/en/wallet/payfi/scan-qr-code-payment.md new file mode 100644 index 0000000..18a1cd8 --- /dev/null +++ b/docs/en/wallet/payfi/scan-qr-code-payment.md @@ -0,0 +1,7 @@ +# QR Code + POS Terminal Payment +## + +The phone displays a QR code, and the POS scans the code to obtain the "from" address and Bluetooth communication information. The POS terminal constructs a 32-byte MessageHash, which is transmitted to the app via Bluetooth for signing. After the app signs, it returns the signature to the POS terminal. The POS terminal then constructs the complete transaction and sends it to the blockchain. + +- APP QR Code: contains the "from" address and key Bluetooth communication information. +- The POS scans to obtain the "from" address and Bluetooth communication information. The POS terminal constructs a 32-byte MessageHash, and after the app signs it, the signature is returned to the POS terminal. The POS then constructs the complete transaction and sends it to the blockchain. \ No newline at end of file diff --git a/docs/en/wallet/payfi/u-card-payment.md b/docs/en/wallet/payfi/u-card-payment.md new file mode 100644 index 0000000..538ac11 --- /dev/null +++ b/docs/en/wallet/payfi/u-card-payment.md @@ -0,0 +1,5 @@ +# Decentralized U-Card Payment +## + +- U Card does not store private keys: Fully decentralized, offline signing, requiring the app to store the private key locally and provide offline signing functionality. +- U Card (Digital Currency Card) stores private keys: The U Card integrates a signing chip and storage, with the private key encrypted by a passphrase. The POS terminal constructs a 32-byte Message, which is transmitted to the U Card for signing via NFC. In this case, the U Card functions as a small hardware wallet. diff --git a/docs/en/wallet/dapplink-wallet.md b/docs/en/wallet/set-chain-token.md similarity index 100% rename from docs/en/wallet/dapplink-wallet.md rename to docs/en/wallet/set-chain-token.md diff --git a/docs/en/wallet/signature.md b/docs/en/wallet/signature.md new file mode 100644 index 0000000..dac94af --- /dev/null +++ b/docs/en/wallet/signature.md @@ -0,0 +1,23 @@ +# Unified signature service business process +## + +![dapplink-wallet-2](images/dapplink-wallet-2.png) + +This service is deployed in a TEE (Trusted Execution Environment), typically deployed by the business party themselves, with technical support provided by DappLink. The supported interfaces are as follows. + +``` +rpc getSupportSignWay(SupportSignWayRequest) returns (SupportSignWayResponse) {} +rpc exportPublicKeyList(ExportPublicKeyRequest) returns (ExportPublicKeyResponse) {} +rpc signTxMessage(SignTxMessageRequest) returns (SignTxMessageResponse) {} +``` +- getSupportSignWay:Check if the signature method is supported + - ECDSA + - secp256k1 + - secp256r1 + - EdDSA + - Ed25519 + - tm-ed25519 + - RSA +- exportPublicKeyList: keygen After completion, output the public key +- signTxMessage:The function for signing the transaction + diff --git a/docs/en/wallet/skyeye.md b/docs/en/wallet/skyeye.md deleted file mode 100644 index d6270f9..0000000 --- a/docs/en/wallet/skyeye.md +++ /dev/null @@ -1,9 +0,0 @@ -# Market Aggregator {#dapplink-wallet} - -The Market Aggregation Service System is designed to provide users with a unified, fast, and efficient interface, integrating market data from various centralized and decentralized trading platforms. Through this system, users can access real-time market data from major trading platforms, including but not limited to centralized exchanges such as Binance, Bybit, Bitget, and decentralized exchanges such as Uniswap, Sushiswap. - -- Multi-platform Integration: The system aggregates market data from multiple major trading platforms, including centralized exchanges like Binance, Bybit, Bitget, and decentralized exchanges like Uniswap, Sushiswap. -- Unified API Interface: Users can access market data from all supported platforms via a single API interface, reducing the complexity of integrating with each platform individually. -- Real-time Data Updates: The system provides real-time market data, including the latest prices, trading volumes, price changes, and other key information for trading pairs. -- Efficient Data Processing: The system uses an efficient data processing mechanism, ensuring fast response times while maintaining data accuracy. -- Flexible Integration: Easy-to-use API documentation is provided, supporting flexible integration to meet different business needs. \ No newline at end of file diff --git a/docs/en/wallet/hailstone.md b/docs/en/wallet/start-test.md similarity index 100% rename from docs/en/wallet/hailstone.md rename to docs/en/wallet/start-test.md diff --git a/docs/en/wallet/system-architecture.md b/docs/en/wallet/system-architecture.md deleted file mode 100644 index 6cc7ea7..0000000 --- a/docs/en/wallet/system-architecture.md +++ /dev/null @@ -1,18 +0,0 @@ -# System Architecture {#dapplink-wallet} - -![img.png](img/img.png) - -- wallet-chain-utxo: Unified encapsulation of wallet RPC interface of utxo chain -- wallet-chain-account: Unified encapsulation of wallet RPC interface of account chain -- chain-data-api: The unified wallet API that connects to third-party platforms is mainly used by HD wallets. -- key-locker: On-chain key management tool, currently connected to Ethereum, IFPS, Ar and other chains -- skyeye: Unified market service, docking CEX and DEX -- trade: Projects that support flash swaps, leverage, futures and options insurance for centralized wallets, and are later connected to exchanges -- hailstone: Unified API and business center -- tss network: mpc network, Node deployed in a TEE environment -- wallet-sdk:Multi-chain offline address and offline signature SDK -- wallet-sign-center: Support java, go, node, etc. -- Unified Blockchain Scanning Service:Support multi-tenant, centralized wallet business components -- API:API to support third-party scheduling wallet business -- Dapp Container:Support various Dapps and wallets to interact -- Decentralized flash swap: Scheduling Aggregator API \ No newline at end of file diff --git a/docs/en/wallet/tss.md b/docs/en/wallet/tss.md index 18ffe13..ef4a7db 100644 --- a/docs/en/wallet/tss.md +++ b/docs/en/wallet/tss.md @@ -1,27 +1,24 @@ -# MPC Network {#dapplink-wallet} +# MPC Custody System +## + +![dapplink-wallet-8](images/dapplink-wallet-8.png) + +- LinkLayer Multi-Stake Protocol: As the top-level protocol of the entire system, it is responsible for coordinating the joining and exiting management of MPC nodes. It ensures network security and reliability through a staking model and commitment signatures. +- MPC Node Layer: Composed of multiple MPC nodes running in TEE environments, each node holds a slice of the key (key-slice). +- mpc-node-1 to mpc-node-9: Each node operates in a TEE environment, and key slices are distributed across the nodes to ensure no single node can directly reconstruct the full key. +- TEE (Trusted Execution Environment): Provides hardware-level security to prevent malicious actions from tampering with or leaking key slices. +- P2P Communication Network: + - Nodes work together through a peer-to-peer communication network. + - Supports distributed computation for key generation (keygen) and signature (signature) operations. + - Key Generation: Nodes collaborate to generate key slices and aggregate the public key through computation. + - Signature: Nodes receive the message to be signed, compute independently, and return the result. Finally, the signatures are aggregated into a complete signature. + - MPC Manager: Responsible for managing MPC operations, including key generation and signature requests. +- Core Functions: + - keygen: Triggers the key generation process and returns the generated public key (publicKey). + - Signature: Receives the 32-byte message (Msg) to be signed, coordinates MPC nodes to complete the signing process, and returns the result. +- Wallet Service: + - A service module aimed at the business layer. + - Interacts with the MPC Manager to send key generation and signature requests. + - Provides core wallet services such as key management and transaction signing. -![img.png](img/tss.png) -### System Components -- tssGroupManage (On-Chain Contract): - A smart contract deployed on the blockchain responsible for managing and registering TSS nodes, as well as implementing a punishment mechanism for malicious nodes. -- tss-node (TSS Node): - Independent nodes participating in the TSS network. Each node is deployed individually and registers with the tssGroupManage contract. -- tssManager (Management Layer): - An entity responsible for overseeing all tss-node instances. It serves as the entry point for external services requiring signature authentication. -### Workflow Overview -- Node Deployment and Registration: - - Each tss-node is deployed in the TSS network environment. - - Upon deployment, nodes register themselves with the tssGroupManage smart contract on the blockchain. - - The tssGroupManage contract maintains a registry of active TSS nodes. -- Node Management: - - The tssManager monitors and manages the registered tss-node instances. - - It ensures nodes are functioning correctly and coordinates their activities within the TSS network. -- Signature Authentication Process: - - External services requiring signature authentication interact with the system through the tssManager. - - The tssManager coordinates with the appropriate tss-node instances to perform the necessary cryptographic operations. - - Utilizing the TSS protocol, the nodes collaboratively generate the required signatures without exposing individual private keys. - - The generated signature is verified through the tssGroupManage contract to ensure its validity. -- Punishment Mechanism: - - The tssGroupManage contract implements a mechanism to monitor and punish malicious nodes. - - If a node is detected engaging in malicious behavior, the contract enforces appropriate penalties to maintain system security and reliability. \ No newline at end of file diff --git a/docs/en/wallet/wallet-chain-node.md b/docs/en/wallet/wallet-chain-node.md deleted file mode 100644 index 76edf1d..0000000 --- a/docs/en/wallet/wallet-chain-node.md +++ /dev/null @@ -1,11 +0,0 @@ -# Unified RPC Interface Service {#dapplink-wallet} - -![img.png](img/rpc.png) - - -The diagram above illustrates the basic architecture of the Unified RPC Service. This service standardizes the interfaces across different blockchains and aggregates data into a unified data platform. Based on the Unified RPC Service, third-party services can efficiently retrieve data by calling the Chain gRPC interface. - -- UTXO: Provides a unified RPC interface service for blockchains using the UTXO model. -- Account:Provides a unified RPC interface service for blockchains using the Account model. - -This architecture significantly simplifies the complexity of cross-chain data interaction and offers developers an efficient and standardized way to access blockchain data. \ No newline at end of file diff --git a/docs/en/wallet/wallet-scanner.md b/docs/en/wallet/wallet-scanner.md deleted file mode 100644 index b2d41e9..0000000 --- a/docs/en/wallet/wallet-scanner.md +++ /dev/null @@ -1,14 +0,0 @@ -# Unified Wallet Services for Deposit, Withdrawal, Aggregation, Cold Transfer, and Risk Control {#dapplink-wallet} - -A unified wallet service for deposits, withdrawals, aggregation, cold storage transfers, and risk control. It features real-time monitoring of on-chain transactions, supporting multiple chains and asset types. The real-time risk control system monitors all transactions, identifies, and blocks suspicious activities, providing a secure, efficient, and cost-effective on-chain asset management solution for users and businesses. - -Here is a flowchart for some of the business processes. -### Deposit -![img.png](img/scanner-deposit.png) - -### Withdrawal -![img.png](img/scanner-withdrawal.png) - -### Aggregation,Cold storage,Hot storage -![img.png](img/scanner-tocold.png) -![img.png](img/scanner-tohot.png) \ No newline at end of file diff --git a/docs/en/wallet/wallet-sdk.md b/docs/en/wallet/wallet-sdk.md deleted file mode 100644 index 1ec7063..0000000 --- a/docs/en/wallet/wallet-sdk.md +++ /dev/null @@ -1,35 +0,0 @@ -# Offline Sign SDK {#dapplink-wallet} - -Wallet-SDK is a powerful wallet development toolkit that encapsulates core wallet-related functionalities, including offline signing, mnemonic management, import/export and validation of public and private keys, and more. The SDK supports all mainstream public blockchains and offers high flexibility. It can be deployed directly or integrated into environments such as TEE (Trusted Execution Environment), KMS (Key Management System), and wallet.data. - -### Features -- Offline Signing: - - Supports offline signing for transactions of various mainstream cryptocurrencies, ensuring the security of private keys. - - Provides standardized signing interfaces adaptable to various scenarios. -- Mnemonic Management: - - Generates mnemonics compliant with the BIP39 standard. - - Restores wallets from mnemonics (supports multiple path formats). - - Validates the legality of mnemonics. -- Public and Private Key Management: - - Supports the import and export of public and private keys (supports multiple formats, such as PEM and HEX). - - Provides interfaces for validating the legitimacy of public and private keys. -- Multi-chain Support: - - Fully supports all mainstream public blockchains, including Bitcoin (BTC), Ethereum (ETH), Polkadot, Tron, and more. - - Supports multi-chain ecosystems based on EVM. - -### High Compatibility -Wallet-SDK can be deployed in various environments, including: -- TEE (Trusted Execution Environment): - - Operates in hardware-isolated environments to enhance security. -- KMS (Key Management System): - - Seamlessly integrates with existing key management systems. -- Wallet.data: - - Supports wallet data service interfaces for unified data management. - -### Use Cases -- Multi-chain Wallet Development: - - Quickly build cross-chain wallets supporting multiple cryptocurrencies, reducing development efforts. -- Enterprise-level Key Management: - - Integrate into existing TEE or KMS systems to enhance key security management capabilities. -- Transaction Signing Services: - - Provides secure and convenient offline signing capabilities for various mainstream cryptocurrencies and transaction types. \ No newline at end of file diff --git a/docs/zh/wallet/centralized/batch-generate-address.md b/docs/zh/wallet/centralized/batch-generate-address.md index e69de29..912ea01 100644 --- a/docs/zh/wallet/centralized/batch-generate-address.md +++ b/docs/zh/wallet/centralized/batch-generate-address.md @@ -0,0 +1,7 @@ +# 批量地址生成 + +![img.png](../images/centralized-wallet-4.png) + +- 业务调度自己的签名生成密钥,私钥不会离开 TEE 或者 CloudHSM, 但是它会将公钥列表返回到业务方 +- 业务方把公钥列表给到 multichain,multichain 调度 wallet-chain-account/utxo 根据公钥导出地址 +- 把生成地址列表存到业务表里面,并且返回地址列表 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/business-id-config.md b/docs/zh/wallet/centralized/business-id-config.md index e69de29..69c065c 100644 --- a/docs/zh/wallet/centralized/business-id-config.md +++ b/docs/zh/wallet/centralized/business-id-config.md @@ -0,0 +1,6 @@ +# 商户ID配置 + +![img.png](../images/centralized-wallet-2.png) + +- 使用商户 ID 注册到我们 DappLink 钱包平台,内部会根据业务方进行分库分表 +- 业务注册的时候需要把充值,提现,流水下发等相关回调接口一并提交到 DappLink 钱包平台 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/business-submit.md b/docs/zh/wallet/centralized/business-submit.md index e69de29..e1aed58 100644 --- a/docs/zh/wallet/centralized/business-submit.md +++ b/docs/zh/wallet/centralized/business-submit.md @@ -0,0 +1,6 @@ +# 商户信息提交 + +![img.png](../images/centralized-wallet-1.png) + +- 业务方提交商户信息 +- DappLink 业务中台给业务方分配 Token 和商户 ID \ No newline at end of file diff --git a/docs/zh/wallet/centralized/cold-to-hot.md b/docs/zh/wallet/centralized/cold-to-hot.md index e69de29..f556796 100644 --- a/docs/zh/wallet/centralized/cold-to-hot.md +++ b/docs/zh/wallet/centralized/cold-to-hot.md @@ -0,0 +1,4 @@ +# 冷转热 + +- 热钱包金额小于一定数量,报警通知业务方 +- 业务方手动操作向冷钱包转入一笔资金 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/collection-flow.md b/docs/zh/wallet/centralized/collection-flow.md index e69de29..599a960 100644 --- a/docs/zh/wallet/centralized/collection-flow.md +++ b/docs/zh/wallet/centralized/collection-flow.md @@ -0,0 +1,5 @@ +# 归集 + +![img.png](../images/centralized-wallet-7.png) + +- 检测用户地址资金是否大于最小归集金额, 如果大于最小归集金额,发起交易归集资金 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/deposit-flow.md b/docs/zh/wallet/centralized/deposit-flow.md index e69de29..2d92f3f 100644 --- a/docs/zh/wallet/centralized/deposit-flow.md +++ b/docs/zh/wallet/centralized/deposit-flow.md @@ -0,0 +1,17 @@ +# 充值业务 + +![img.png](../images/centralized-wallet-5.png) + +- 获取最新区块链 +- 获取本地数据最高区块 +- 链上的最新和数据库的最高区块进行比较 +- 若本地数据块高 = 链上最新区块高度,等待最新区块出现 +- 若本地数据块高 > 链上最新区块高度, 进行交易回滚 +- 若本地数据块高 < 链上最新区块高度, +- 根据区块高度获取交易列表 +- 解析交易之后 + - 若 from 是外部地址,to 地址是内部用户地址,充值; 调用回调接口通知业务方 + - 若 from 地址是用户地址,to 地址是热钱包地址,归整; 调用回调接口通知业务方 + - 若 from 地址是热钱包地址,to 地址是外部用户地址,提现; 调用回调接口通知业务方 + - 若 from 地址是热钱包地址,to 是冷钱包地址,热转冷; 调用回调接口通知业务方 + - 若 from 是冷钱包地址,to 地址是热钱包地址,冷转热; 调用回调接口通知业务方 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/fallback.md b/docs/zh/wallet/centralized/fallback.md index e69de29..01fddf9 100644 --- a/docs/zh/wallet/centralized/fallback.md +++ b/docs/zh/wallet/centralized/fallback.md @@ -0,0 +1,4 @@ +# 回滚业务 + +![img.png](../images/centralized-wallet-8.png) + diff --git a/docs/zh/wallet/centralized/hot-to-cold.md b/docs/zh/wallet/centralized/hot-to-cold.md index e69de29..f4035ce 100644 --- a/docs/zh/wallet/centralized/hot-to-cold.md +++ b/docs/zh/wallet/centralized/hot-to-cold.md @@ -0,0 +1,3 @@ +# 热转冷 + +- 检测热钱包地址资金是否大于一定的转冷金额, 发起交易将资金转到零钱包,流程类似提现和归集 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/service-deploy.md b/docs/zh/wallet/centralized/service-deploy.md index e69de29..160fee9 100644 --- a/docs/zh/wallet/centralized/service-deploy.md +++ b/docs/zh/wallet/centralized/service-deploy.md @@ -0,0 +1,10 @@ +# 服务部署方式 + +- 签名机:项目方部署 +- 统一 gRPC 服务 + - wallet-chain-utxo: dapplink 提供服务 + - wallet-chain-account: dapplink 提供服务 +- 统一扫链服务 + - multichain-sync-account: dapplink 提供服务 + - Multichain-sync-utxo: dapplink 提供服务 +- 业务中台:dapplink 提供服务 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/set-chain-token.md b/docs/zh/wallet/centralized/set-chain-token.md index e69de29..5f1f543 100644 --- a/docs/zh/wallet/centralized/set-chain-token.md +++ b/docs/zh/wallet/centralized/set-chain-token.md @@ -0,0 +1,5 @@ +# 业务方配置Token + +![img.png](../images/centralized-wallet-3.png) + +- 业务配置 token, 传入 token 名字,符号, 精度,最小最大归集和转冷金融等信息 \ No newline at end of file diff --git a/docs/zh/wallet/centralized/withdraw-flow.md b/docs/zh/wallet/centralized/withdraw-flow.md index e69de29..7b8d571 100644 --- a/docs/zh/wallet/centralized/withdraw-flow.md +++ b/docs/zh/wallet/centralized/withdraw-flow.md @@ -0,0 +1,10 @@ +# 提现业务 + +![img.png](../images/centralized-wallet-6.png) + +- 用户发起提现,业务方将提现交易发送 DappLink 钱包服务 +- 业务方将交易发送到 multichain-sync-account/utxo 进行构建待签名的消息,multichain-sync-account/utxo 调度 wallet-chain-account/utxo 返回待签名的消息 +- 业务方将待签名的消息发送给自己部署的签名进行签名 +- 业务方将 signature 和 交易 ID 发送到你 multichain-sync-account/utxo ,multichain-sync-account/utxo 调度 wallet-chain-account/utxo 构建完整交易并发送到区块链网络,将完整交易和交易 Hash 返回给业务端 +- 提现进程会去扫描这些交易发送到区块链网络 +- 扫链部分参考充值模块 \ No newline at end of file diff --git a/docs/en/wallet/linklayer.md b/docs/zh/wallet/dapplink-testnet.md similarity index 100% rename from docs/en/wallet/linklayer.md rename to docs/zh/wallet/dapplink-testnet.md diff --git a/docs/zh/wallet/decentralized/asset-manager-module.md b/docs/zh/wallet/decentralized/asset-manager-module.md new file mode 100644 index 0000000..88ddefa --- /dev/null +++ b/docs/zh/wallet/decentralized/asset-manager-module.md @@ -0,0 +1,3 @@ +# 资产管理 + +![img.png](../images/decentralized-wallet-12.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/chain-explorer-api.md b/docs/zh/wallet/decentralized/chain-explorer-api.md new file mode 100644 index 0000000..986677f --- /dev/null +++ b/docs/zh/wallet/decentralized/chain-explorer-api.md @@ -0,0 +1,3 @@ +# 闪兑 + +![img.png](../images/decentralized-wallet-13.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/dapp-explorer.md b/docs/zh/wallet/decentralized/dapp-explorer.md new file mode 100644 index 0000000..f27e758 --- /dev/null +++ b/docs/zh/wallet/decentralized/dapp-explorer.md @@ -0,0 +1,3 @@ +# Dapp浏览器 + +![img.png](../images/decentralized-wallet-14.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/deposit.md b/docs/zh/wallet/decentralized/deposit.md new file mode 100644 index 0000000..0953532 --- /dev/null +++ b/docs/zh/wallet/decentralized/deposit.md @@ -0,0 +1,5 @@ +# 收款 + +![img.png](../images/decentralized-wallet-6.png) + + diff --git a/docs/zh/wallet/decentralized/get-wallet-balance.md b/docs/zh/wallet/decentralized/get-wallet-balance.md new file mode 100644 index 0000000..19b6fb9 --- /dev/null +++ b/docs/zh/wallet/decentralized/get-wallet-balance.md @@ -0,0 +1,4 @@ +# 获取钱包余额 + +![img.png](../images/decentralized-wallet-8.png) + diff --git a/docs/zh/wallet/decentralized/market-data-module.md b/docs/zh/wallet/decentralized/market-data-module.md new file mode 100644 index 0000000..04bfb09 --- /dev/null +++ b/docs/zh/wallet/decentralized/market-data-module.md @@ -0,0 +1,3 @@ +# 行情业务模块 + +![img.png](../images/decentralized-wallet-11.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/mnemonic-export.md b/docs/zh/wallet/decentralized/mnemonic-export.md new file mode 100644 index 0000000..55f821d --- /dev/null +++ b/docs/zh/wallet/decentralized/mnemonic-export.md @@ -0,0 +1,5 @@ +# 助记词导出 + +DappLink 解决方案和其他 HD 钱包他们推导模式都是一样,DappLink 钱包助记词导入到其他钱包,生成的私钥,公钥,地址是一样(某些链地址格式比较多,若不同钱包选用地址格式不一致的话,他生成的地址会不一样) + +![img.png](../images/decentralized-wallet-2.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/mnemonic-import.md b/docs/zh/wallet/decentralized/mnemonic-import.md new file mode 100644 index 0000000..eed673f --- /dev/null +++ b/docs/zh/wallet/decentralized/mnemonic-import.md @@ -0,0 +1,4 @@ +# 助记词导入 + +![img.png](../images/decentralized-wallet-5.png) + diff --git a/docs/zh/wallet/decentralized/private-export.md b/docs/zh/wallet/decentralized/private-export.md new file mode 100644 index 0000000..b3e0a44 --- /dev/null +++ b/docs/zh/wallet/decentralized/private-export.md @@ -0,0 +1,3 @@ +# 私钥导出 + +![img.png](../images/decentralized-wallet-4.png) diff --git a/docs/zh/wallet/decentralized/private-import.md b/docs/zh/wallet/decentralized/private-import.md new file mode 100644 index 0000000..33b5929 --- /dev/null +++ b/docs/zh/wallet/decentralized/private-import.md @@ -0,0 +1,5 @@ +# 私钥导入 + +![img.png](../images/decentralized-wallet-15.png) + +注意:私钥导入只能生成这个私钥相关的地址,但是助记词,他可以通过 BIP 推导协议管理 n 钱包(account, address_index) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/token-find.md b/docs/zh/wallet/decentralized/token-find.md new file mode 100644 index 0000000..b79606a --- /dev/null +++ b/docs/zh/wallet/decentralized/token-find.md @@ -0,0 +1,3 @@ +# 代币发现功能 + +![img.png](../images/decentralized-wallet-10.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/transaction-record.md b/docs/zh/wallet/decentralized/transaction-record.md new file mode 100644 index 0000000..b6251a5 --- /dev/null +++ b/docs/zh/wallet/decentralized/transaction-record.md @@ -0,0 +1,3 @@ +# 交易记录 + +![img.png](../images/decentralized-wallet-9.png) \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/transform.md b/docs/zh/wallet/decentralized/transform.md new file mode 100644 index 0000000..81471e9 --- /dev/null +++ b/docs/zh/wallet/decentralized/transform.md @@ -0,0 +1,5 @@ +# 转账 + +![img.png](../images/decentralized-wallet-7.png) + +- GasOracle: 预测链上手续费,这个可以使用 DappLink 的 GasOracle 服务 \ No newline at end of file diff --git a/docs/zh/wallet/decentralized/wallet-address-gen.md b/docs/zh/wallet/decentralized/wallet-address-gen.md new file mode 100644 index 0000000..1530433 --- /dev/null +++ b/docs/zh/wallet/decentralized/wallet-address-gen.md @@ -0,0 +1,4 @@ +# 钱包地址生成 + +![img.png](../images/decentralized-wallet-1.png) + diff --git a/docs/zh/wallet/images/centralized-wallet-1.png b/docs/zh/wallet/images/centralized-wallet-1.png new file mode 100644 index 0000000..b62428e Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-1.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-2.png b/docs/zh/wallet/images/centralized-wallet-2.png new file mode 100644 index 0000000..87cf38f Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-2.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-3.png b/docs/zh/wallet/images/centralized-wallet-3.png new file mode 100644 index 0000000..043de04 Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-3.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-4.png b/docs/zh/wallet/images/centralized-wallet-4.png new file mode 100644 index 0000000..67ff8a4 Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-4.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-5.png b/docs/zh/wallet/images/centralized-wallet-5.png new file mode 100644 index 0000000..b44a494 Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-5.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-6.png b/docs/zh/wallet/images/centralized-wallet-6.png new file mode 100644 index 0000000..6304c64 Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-6.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-7.png b/docs/zh/wallet/images/centralized-wallet-7.png new file mode 100644 index 0000000..c39e8fb Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-7.png differ diff --git a/docs/zh/wallet/images/centralized-wallet-8.png b/docs/zh/wallet/images/centralized-wallet-8.png new file mode 100644 index 0000000..4c2cfea Binary files /dev/null and b/docs/zh/wallet/images/centralized-wallet-8.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-1.png b/docs/zh/wallet/images/decentralized-wallet-1.png new file mode 100644 index 0000000..f930629 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-1.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-10.png b/docs/zh/wallet/images/decentralized-wallet-10.png new file mode 100644 index 0000000..0d692f6 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-10.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-11.png b/docs/zh/wallet/images/decentralized-wallet-11.png new file mode 100644 index 0000000..ee3f8ef Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-11.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-12.png b/docs/zh/wallet/images/decentralized-wallet-12.png new file mode 100644 index 0000000..4669fbe Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-12.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-13.png b/docs/zh/wallet/images/decentralized-wallet-13.png new file mode 100644 index 0000000..af4d877 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-13.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-14.png b/docs/zh/wallet/images/decentralized-wallet-14.png new file mode 100644 index 0000000..2bb551f Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-14.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-15.png b/docs/zh/wallet/images/decentralized-wallet-15.png new file mode 100644 index 0000000..9745a62 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-15.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-2.png b/docs/zh/wallet/images/decentralized-wallet-2.png new file mode 100644 index 0000000..096b17a Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-2.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-3.png b/docs/zh/wallet/images/decentralized-wallet-3.png new file mode 100644 index 0000000..8dad853 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-3.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-4.png b/docs/zh/wallet/images/decentralized-wallet-4.png new file mode 100644 index 0000000..ce53657 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-4.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-5.png b/docs/zh/wallet/images/decentralized-wallet-5.png new file mode 100644 index 0000000..8dad853 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-5.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-6.png b/docs/zh/wallet/images/decentralized-wallet-6.png new file mode 100644 index 0000000..a371519 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-6.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-7.png b/docs/zh/wallet/images/decentralized-wallet-7.png new file mode 100644 index 0000000..8f68454 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-7.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-8.png b/docs/zh/wallet/images/decentralized-wallet-8.png new file mode 100644 index 0000000..bf67621 Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-8.png differ diff --git a/docs/zh/wallet/images/decentralized-wallet-9.png b/docs/zh/wallet/images/decentralized-wallet-9.png new file mode 100644 index 0000000..f8770dd Binary files /dev/null and b/docs/zh/wallet/images/decentralized-wallet-9.png differ diff --git a/docs/zh/wallet/images/payfi-wallet-1.png b/docs/zh/wallet/images/payfi-wallet-1.png new file mode 100644 index 0000000..29c6c12 Binary files /dev/null and b/docs/zh/wallet/images/payfi-wallet-1.png differ diff --git a/docs/zh/wallet/images/payfi-wallet-2.png b/docs/zh/wallet/images/payfi-wallet-2.png new file mode 100644 index 0000000..8e3cb64 Binary files /dev/null and b/docs/zh/wallet/images/payfi-wallet-2.png differ diff --git a/docs/zh/wallet/images/payfi-wallet-3.png b/docs/zh/wallet/images/payfi-wallet-3.png new file mode 100644 index 0000000..d3cb1a8 Binary files /dev/null and b/docs/zh/wallet/images/payfi-wallet-3.png differ diff --git a/docs/zh/wallet/images/payfi-wallet-4.png b/docs/zh/wallet/images/payfi-wallet-4.png new file mode 100644 index 0000000..82d5f50 Binary files /dev/null and b/docs/zh/wallet/images/payfi-wallet-4.png differ diff --git a/docs/zh/wallet/payfi/ai-wallet.md b/docs/zh/wallet/payfi/ai-wallet.md new file mode 100644 index 0000000..21b4f54 --- /dev/null +++ b/docs/zh/wallet/payfi/ai-wallet.md @@ -0,0 +1,3 @@ +# 基于Ai的无助记词钱包方案 + +![img.png](../images/payfi-wallet-1.png) \ No newline at end of file diff --git a/docs/zh/wallet/payfi/digital-currency-card-payment.md b/docs/zh/wallet/payfi/digital-currency-card-payment.md new file mode 100644 index 0000000..063bfae --- /dev/null +++ b/docs/zh/wallet/payfi/digital-currency-card-payment.md @@ -0,0 +1,4 @@ +# 数字货币卡 + POS 机支付 + +- 数字货币卡里面存储私钥:卡里面集成签名芯片和存储,私钥通过口令加密 +- POS 机里面构建 32 位的 MessageHash, MessageHash 通过 NFC 的方式通信传递给卡签名,这里的卡相当于一个小型的硬件钱包。 \ No newline at end of file diff --git a/docs/zh/wallet/payfi/payfi-appchain.md b/docs/zh/wallet/payfi/payfi-appchain.md new file mode 100644 index 0000000..1581712 --- /dev/null +++ b/docs/zh/wallet/payfi/payfi-appchain.md @@ -0,0 +1,3 @@ +# 高效的去中心化 PayFi 应用 + +![img.png](../images/payfi-wallet-2.png) \ No newline at end of file diff --git a/docs/zh/wallet/payfi/payfi-link-network.md b/docs/zh/wallet/payfi/payfi-link-network.md new file mode 100644 index 0000000..860fb4d --- /dev/null +++ b/docs/zh/wallet/payfi/payfi-link-network.md @@ -0,0 +1,3 @@ +# PayFi 唤起网页支付 + +![img.png](../images/payfi-wallet-4.png) \ No newline at end of file diff --git a/docs/zh/wallet/payfi/payfi-scan.md b/docs/zh/wallet/payfi/payfi-scan.md new file mode 100644 index 0000000..bd226e2 --- /dev/null +++ b/docs/zh/wallet/payfi/payfi-scan.md @@ -0,0 +1,3 @@ +# PayFi 扫码支付 + +![img.png](../images/payfi-wallet-3.png) \ No newline at end of file diff --git a/docs/zh/wallet/payfi/scan-qr-code-payment.md b/docs/zh/wallet/payfi/scan-qr-code-payment.md new file mode 100644 index 0000000..3bba66c --- /dev/null +++ b/docs/zh/wallet/payfi/scan-qr-code-payment.md @@ -0,0 +1,5 @@ +# 二维码 + POS 机支付 + +在手机展示二维码,POS 扫码得 from 和蓝牙通信信息,POS 机里面构建 32 字节的 MessageHash, MessageHash 蓝牙通信传递给 APP 签名,APP 签名完成之后将 signature 返回给 POS 机,POS 构建完整的交易发送到链上 +- APP 二维码:from 地址,蓝牙通信的关键信息 +- POS 扫码得 from 和蓝牙通信信息,POS 机里面构建 32 字节的 MessageHash, APP 签名完成之后将 signature 返回给 POS 机,POS 构建完整的交易发送到链上 \ No newline at end of file diff --git a/docs/zh/wallet/payfi/u-card-payment.md b/docs/zh/wallet/payfi/u-card-payment.md new file mode 100644 index 0000000..9129f56 --- /dev/null +++ b/docs/zh/wallet/payfi/u-card-payment.md @@ -0,0 +1,4 @@ +# 去中心化 U 卡支付 + +- U 卡不存储私钥: 完全去中心化,离线签名,需要 APP 来将私钥存储在本地,提供离线签名的功能。 +- U 卡(数字货币卡)里面存储私钥:U 卡里面集成签名芯片和存储,私钥通过口令加密,POS 机里面构建 32 位的 Message, Message, 通过 NFC 的方式通信传递给 U 签名,这里的 U 卡相当于一个小型的硬件钱包。 \ No newline at end of file diff --git a/docs/en/wallet/trade.md b/docs/zh/wallet/start-test.md similarity index 100% rename from docs/en/wallet/trade.md rename to docs/zh/wallet/start-test.md