├── README.md ├── README_EN.md ├── TokenPocket Protocol EN.md └── TxData Example.md /README.md: -------------------------------------------------------------------------------- 1 | # TP接入文档 2 | 3 | #### 版本:v2.0,支持 EVM系列网络,EOS,TRON, IOST 4 | 5 | ### 授权登录 6 | 7 | 8 | - 协议格式 9 | ~~~ 10 | { 11 | protocol string // 协议名,钱包用来区分不同协议,本协议为 TokenPocket 12 | version string // 协议版本信息,如2.0 13 | dappName string // dapp名字 14 | dappIcon string // dapp图标 15 | blockchain string // 网络 "eos evm网络 tron iost" 16 | blockchains array // 网络 [{"chainId": "1","network": "ethereum"}],如果该操作针对evm网络钱包或者eosio网络钱包,推荐使用该字段替换blockchain字段 17 | action string // 赋值为login 18 | actionId string // dapp 生成的,唯一标识本次操作 19 | callbackUrl string // dapp server 用于接收操作结果,如果是deeplink或者扫二维码方式拉起钱包操作,想要接收到操作结果,该字段必须提供 20 | } 21 | ~~~ 22 | 23 | ### 转账 24 | 25 | - 协议格式 26 | ~~~ 27 | { 28 | protocol string // 协议名,钱包用来区分不同协议,本协议为 TokenPocket 29 | version string // 协议版本信息,如2.0 30 | dappName string // dapp名字,用于在钱包APP中展示,可选 31 | dappIcon string // dapp图标Url,用于在钱包APP中展示,可选 32 | action string // 转账设置为transfer,必须 33 | actionId string // dapp 生成的,唯一标识本次操作 34 | blockchain string // 网络 "eos evm网络 tron iost" 35 | blockchains array // 网络 [{"chainId": "1","network": "ethereum"}],如果该操作针对evm网络钱包或者eosio网络钱包,推荐使用该字段替换blockchain字段 36 | from string // 付款钱包或者账号,可选 37 | to string // 收款钱包或者账号,必须 38 | amount number // 转账数量,必须 39 | contract string 40 | symbol string 41 | decimal number // evm网络使用该字段设置转账代币的decimal,其他使用precision 42 | precision number // 转账的token的精度,小数点后面的位数,必须 43 | memo string 44 | callbackUrl string // dapp server 用于接收操作结果,如果是deeplink或者扫二维码方式拉起钱包操作,想要接收到操作结果,该字段必须提供 45 | } 46 | ~~~ 47 | 48 | 49 | ### 签名 50 | 51 | - 协议格式 52 | ~~~ 53 | { 54 | protocol string // 协议名,钱包用来区分不同协议,本协议为 TokenPocket 55 | version string // 协议版本信息,如2.0 56 | dappName string // dapp名字,用于在钱包APP中展示,可选 57 | dappIcon string // dapp图标Url,用于在钱包APP中展示,可选 58 | action string // 转账设置为transfer,必须 59 | actionId string // dapp 生成的,唯一标识本次操作 60 | blockchain string // 网络 "eos evm网络 tron iost" 61 | blockchains array // 网络 [{"chainId": "1","network": "ethereum"}],如果该操作针对evm网络钱包或者eosio网络钱包,推荐使用该字段替换blockchain字段 62 | message string // 签名数据 63 | signType string // evm系列网络支持ethSign ethPersonalSign 64 | callbackUrl string // dapp server 用于接收操作结果的,如果是deeplink或者扫二维码方式拉起钱包操作,想要接收到操作结果,该字段必须提供 65 | } 66 | ~~~ 67 | 68 | 69 | ### 通用操作 70 | - 协议格式 71 | ~~~ 72 | protocol string // 协议名,钱包用来区分不同协议,本协议为 TokenPocket 73 | version string // 协议版本信息,如2.0 74 | dappName string // dapp名字,用于在钱包APP中展示,可选 75 | dappIcon string // dapp图标Url,用于在钱包APP中展示,可选 76 | action string // 支付时,赋值为transfer,必须 77 | actionId string // dapp 生成的,唯一标识本次操作 78 | blockchain string // 网络 "eos evm网络 tron iost" 79 | blockchains array // 网络 [{"chainId": "1","network": "ethereum"}],如果该操作针对evm网络钱包或者eosio网络钱包,推荐使用该字段替换blockchain字段 80 | 81 | payload string // iost网络使用该字段传递签名数据 82 | actions string // eos 网络使用该字段传递签名数据 83 | txData string // evm网络和tron网络使用该字段传递签名数据 84 | 85 | callbackUrl string // dapp server 用于接收操作结果,如果是deeplink或者扫二维码方式拉起钱包操作,想要接收到操作结果,该字段必须提供 86 | 87 | ~~~ 88 | 注意:TxData字段取值请参考[示例](https://github.com/TP-Lab/tp-wallet-sdk/blob/master/TxData%20Example.md) 89 | 90 |

91 | sdk详情请见:https://github.com/TP-Lab/Mobile-SDK 92 | -------------------------------------------------------------------------------- /README_EN.md: -------------------------------------------------------------------------------- 1 | # TokenPocket SDK Wallet Protocol 2 | #### Version:v2.0 3 | 4 | ### Authorize 5 | 6 | ~~~ 7 | { 8 | protocol string // protocol name TokenPocket 9 | version string // 10 | dappName string // 11 | dappIcon string // 12 | blockchain string // network "eos evm tron iost" 13 | blockchains array // network [{"chainId": "1","network": "ethereum"}],if you want do action with evm network, use blockchains replace blockchain 14 | action string // login 15 | actionId string // 16 | callbackUrl string // provided by dapp server to get result 17 | } 18 | ~~~ 19 | 20 | 21 | 22 | ### Transfer 23 | ~~~ 24 | { 25 | protocol string // protocol name TokenPocket 26 | version string // 27 | dappName string // 28 | dappIcon string // 29 | blockchain string // network "eos evm tron iost" 30 | blockchains array // network [{"chainId": "1","network": "ethereum"}],if you want do action with evm network, use blockchains replace blockchain 31 | action string // transfer 32 | actionId string // 33 | from string // 34 | to string // 35 | amount number // 36 | contract string 37 | symbol string 38 | decimal number // evm network decimal 39 | precision number // eos network precison 40 | memo string 41 | callbackUrl string // provided by dapp server to get result 42 | } 43 | ~~~ 44 | 45 | ### Sign message 46 | 47 | ~~~ 48 | { 49 | protocol string // protocol name TokenPocket 50 | version string // 51 | dappName string // 52 | dappIcon string // 53 | blockchain string // network "eos evm tron iost" 54 | blockchains array // network [{"chainId": "1","network": "ethereum"}],if you want do action with evm network, use blockchains replace blockchain 55 | action string // sign 56 | actionId string // 57 | message string // message to sign 58 | signType string // for evm network,support ethSign and ethPersonalSign 59 | callbackUrl string // provided by dapp server to get result 60 | } 61 | ~~~ 62 | 63 | 64 | ### Sign and push common tx 65 | ~~~ 66 | protocol string // protocol name TokenPocket 67 | version string // 68 | dappName string // 69 | dappIcon string // 70 | blockchain string // network "eos evm tron iost" 71 | blockchains array // network [{"chainId": "1","network": "ethereum"}],if you want do action with evm network, use blockchains replace blockchain 72 | action string // transfer 73 | actionId string // 74 | 75 | payload string // used by iost network to set tx data 76 | actions string // used by eos network to set tx data 77 | txData string // used by evm and tron network to set tx data 78 | 79 | callbackUrl string // provided by dapp server to get result 80 | ~~~ 81 | About "txData": [DEMO](https://github.com/TP-Lab/tp-wallet-sdk/blob/master/TxData%20Example.md) 82 | 83 | 84 | 85 | SDK details:https://github.com/TP-Lab/Mobile-SDK 86 | -------------------------------------------------------------------------------- /TokenPocket Protocol EN.md: -------------------------------------------------------------------------------- 1 | # TokenPocket Protocol 2 | 3 | #### Version:v1.0 4 | 5 | ### Login 6 | 7 | - Param 8 | ~~~ 9 | { 10 | protocol string //protocol name here is TokenPocket 11 | version string // protocol version here is v1.0 12 | dappName string // optional 13 | dappIcon string // optional 14 | blockchain string // wallet type(eos bos eth moac ) 15 | wallet string // account name 16 | action string // neccessary here is login 17 | actionId string // optional 18 | callbackUrl string // optional 19 | expired string //expire time in seconds 20 | memo string // optional 21 | } 22 | ~~~ 23 | 24 | - Success data 25 | ~~~ 26 | { 27 | "sign": "SIG_K1_KZL9eR4cCQCJHpYHbh44yGrDqu4w8hHzQwb1xTk4Mcd4czqpw4jJUgg9DnWXzE3r", 28 | "timestamp": "1546613919", //in seconds 29 | "wallet": "eoseoseosacc", //account name 30 | "ref": "TokenPocket", 31 | "action":"login", 32 | "actionId":"ljsdjljdljf-xjlsdjfkj" //actionId from dapp 33 | "publickey": "EOS2TtWv19a9eYEQYB8NbGCM28nQNngWP4UcSjVYqtEz6kF7yCnPX", 34 | "permissions": ["active", "owner"], 35 | "result": 1 36 | } 37 | ~~~ 38 | 39 | Cancel data 40 | ~~~ 41 | { 42 | "action":"login", 43 | "actionId":"ljsdjljdljf-xjlsdjfkj" 44 | "result": 0 45 | } 46 | ~~~ 47 | 48 | 49 | ### Token transfer 50 | 51 | - Param 52 | ~~~ 53 | { 54 | protocol string //protocol name here is TokenPocket 55 | version string // protocol version here is v1.0 56 | dappName string // optional 57 | dappIcon string // optional 58 | action string // neccessary here is transfer 59 | actionId string // optional 60 | blockchain string //wallet type(eos bos eth moac ) 61 | from string // optional 62 | to string // neccessary 63 | amount number // neccessary 64 | contract string // neccessary 65 | symbol string // neccessary 66 | precision number // neccessary 67 | memo string //optional 68 | expired string // expire time in seconds 69 | } 70 | ~~~ 71 | 72 | 73 | - Success data 74 | ~~~ 75 | "ref": "TokenPocket", 76 | "txID": "588c6797534d09e8e0b149c06c11bfd6ca7b96f0d4bba87700fffe7a87b0d988", 77 | "publickey": "EOSX1tWv19a9eKEQQB8Nb2wM28nYNngWP3UcSjVYqtjz6kF7yCnQ", 78 | "action":"transfer", 79 | "actionId":"ljsdljf-xljlsdjfl" //from dapp 80 | "wallet": "eoseoseostes", 81 | "permissions": ["active", "owner"], 82 | "result": 1 83 | ~~~ 84 | 85 | - Cancel data 86 | ~~~ 87 | "action":"transfer", 88 | "actionId":"ljsdljf-xljlsdjfl" //from dapp 89 | "result": 0 90 | ~~~ 91 | 92 | 93 | ### Push transaction 94 | - Param 95 | ~~~ 96 | protocol string //protocol name here is TokenPocket 97 | version string // protocol version here is v1.0 98 | dappName string // optional 99 | dappIcon string // optional 100 | action string // neccessary here is pushTransaction 101 | actionId string // optional 102 | blockchain string //wallet type(eos bos eth moac ) 103 | actions string //actions data 104 | memo string 105 | ~~~ 106 | 107 | 108 | 109 | - Success data 110 | ~~~ 111 | "ref": "TokenPocket", 112 | "txID": "588c6797534d09e8e0b149c06c11bfd6ca7b96f0d4bba87700fffe7a87b0d988", 113 | "publickey": "EOSX1tWv19a9eKEQQB8Nb2wM28nYNngWP3UcSjVYqtjz6kF7yCnQ", 114 | "action":"pushTransaction", 115 | "actionId":"ljsdljf-xljlsdjfl" 116 | "wallet": "eoseoseostes", 117 | "permissions": ["active", "owner"], 118 | "result": 1 119 | ~~~ 120 | 121 | - Cancel data 122 | ~~~ 123 | "action":"pushTransaction", 124 | "actionId":"ljsdljf-xljlsdjfl" 125 | "result": 0 126 | ~~~ 127 | -------------------------------------------------------------------------------- /TxData Example.md: -------------------------------------------------------------------------------- 1 | ### EVM 2 | 3 | ##### Send ETH 4 | 5 | ``` 6 | { 7 | "from": "0x5Da73693A062a11589F1b5c68434bf7eAff72366", 8 | "gas": "0x5208", 9 | "to": "0x5Da73693A062a11589F1b5c68434bf7eAff72366", 10 | "value": "0x2386f26fc10000" 11 | } 12 | ``` 13 | 14 | 15 | ##### Send USDT 16 | 17 | ``` 18 | { 19 | "from": "0x5Da73693A062a11589F1b5c68434bf7eAff72366", 20 | "gas": "0x13880", 21 | "data": "0xa9059cbb0000000000000000000000005da73693a062a11589f1b5c68434bf7eaff7236600000000000000000000000000000000000000000000000000000000000f4240", 22 | "to": "0xdAC17F958D2ee523a2206206994597C13D831ec7", 23 | } 24 | ``` 25 | 26 | 27 | 28 | ### TRON 29 | 30 | ##### Send TRX 31 | 32 | ``` 33 | { 34 | "visible": false, 35 | "txID": "f1b1380b1aaeef89d3de5b2360dc9e2fe429510ec3559fb84132b0ea4006ce2e", 36 | "raw_data": { 37 | "contract": [{ 38 | "parameter": { 39 | "value": { 40 | "amount": 1000000, 41 | "owner_address": "41f90a4115ca0859c0db8415d73b3a22626506cbbe", 42 | "to_address": "41593a115d4e04249a7e4c02a2150b596081b37f9f" 43 | }, 44 | "type_url": "type.googleapis.com\/protocol.TransferContract" 45 | }, 46 | "type": "TransferContract" 47 | }], 48 | "ref_block_bytes": "8650", 49 | "ref_block_hash": "ef402f9a30397630", 50 | "expiration": 1695098220000, 51 | "timestamp": 1695098162988 52 | }, 53 | "raw_data_hex": "0a0286502208ef402f9a3039763040e0dbe8ddaa315a67080112630a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412320a1541f90a4115ca0859c0db8415d73b3a22626506cbbe121541593a115d4e04249a7e4c02a2150b596081b37f9f18c0843d70ac9ee5ddaa31" 54 | } 55 | ``` 56 | 57 | 58 | ##### Send USDT 59 | 60 | ``` 61 | { 62 | "visible": false, 63 | "txID": "0ff31369f276cd2a1f2d0f45274256cccee5095a0f4dc90a3b12af4d5fdded8b", 64 | "raw_data": { 65 | "contract": [{ 66 | "parameter": { 67 | "value": { 68 | "data": "a9059cbb000000000000000000000000593a115d4e04249a7e4c02a2150b596081b37f9f00000000000000000000000000000000000000000000000000000000000186a0", 69 | "owner_address": "41f90a4115ca0859c0db8415d73b3a22626506cbbe", 70 | "contract_address": "41a614f803b6fd780986a42c78ec9c7f77e6ded13c" 71 | }, 72 | "type_url": "type.googleapis.com\/protocol.TriggerSmartContract" 73 | }, 74 | "type": "TriggerSmartContract" 75 | }], 76 | "ref_block_bytes": "865d", 77 | "ref_block_hash": "97a350e4aa8501ef", 78 | "expiration": 1695098259000, 79 | "fee_limit": 100000000, 80 | "timestamp": 1695098200128 81 | }, 82 | "raw_data_hex": "0a02865d220897a350e4aa8501ef40b88cebddaa315aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a1541f90a4115ca0859c0db8415d73b3a22626506cbbe121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000000593a115d4e04249a7e4c02a2150b596081b37f9f00000000000000000000000000000000000000000000000000000000000186a070c0c0e7ddaa31900180c2d72f" 83 | } 84 | ``` 85 | --------------------------------------------------------------------------------