split

api base

test url: https://test-api-proxy.ddpurse.com

main url: https://api.dotswap.app

通过以下接口可以拆分指定地址的 cat20 资产到不同的地址

获取 psbt

POST /brc20swap/get_split_cat20_psbts

export interface GetSplitCat20PsbtsBody {
  cat_20_output_to_split: string; //txid+冒号+vout
  is_average_split: boolean; //是否平均拆分到原地址
  is_ofc_token: boolean; //是不是官方token(个人请默认填写false, 否则请联系官方加白名单)
  split_num: number; //拆分数量
  tick: string; //tickName+冒号+tokenId
  toinfos: GetSplitCat20PsbtsToinfo[]; //每个地址的分配数量(必须大于4个地址)
  token_addr: string; //如果是官方,则使用官方地址,否则填写user_addr
  user_addr: string; //当前用户地址
  user_pubkey: string; //当前用户公钥
}
export interface GetSplitCat20PsbtsToinfo {
  to_addr: string; // 想要拆分到哪个地址
  to_amt: number; // 想要拆分到这个地址的数量
}

拆个人的 cat20

{
  "tick": "dog:b1071ae617c66050d518587f67564885ca1a618b387a15f84001e3fa244ef3d6_0",
  "is_ofc_token": false,
  "user_addr": "bc1pxul8mg4fvx....cxej453h24smw03s0",
  "user_pubkey": "02d3ac7452920b1cc4....0a8c0aac6e3446e633a73ea63eee81",
  "cat_20_output_to_split": "08806ff819db249637a7c1cc762e4f9e29182d7dc658b7571f12c2b539106a1f:2",
  "token_addr": "bc1pxul8mg4fvx....cxej453h24smw03s0",
  "fee_rate": 9,
  "toinfos": [
    {
      "to_addr": "bc1pxrvq4n9ud.....587lf3xszyyczr",
      "to_amt": 5
    },
    {
      "to_addr": "bc1pxrvq4n9ud.....587lf3xszyyczr",
      "to_amt": 5
    },
    {
      "to_addr": "bc1pxrvq4n9ud.....587lf3xszyyczr",
      "to_amt": 5
    },
    {
      "to_addr": "bc1pxrvq4n9ud.....587lf3xszyyczr",
      "to_amt": 5
    },
    {
      "to_addr": "bc1pxrvq4n9ud.....587lf3xszyyczr",
      "to_amt": 5
    }
  ]
}

查询地址参考(请替换 tokenIdOrTokenAddr 和 ownerAddrOrPkh)

拆官方的 cat20

如果你有使用官方的 cat20 充值的接口,那么你也可以使用这个接口拆分你充值进来的 cat20。

  • 首先调用充值接口 /create_deposit_cat20_psbtv2的时候,你可以设置参数not_split:true

  • 充值成功之后,/create_deposit_cat20_order_by_psbt会返回 receiver_addrtxid

这个时候你可以用如下参数来调用拆分接口

{
  // 这两个参数请默认写为true
  "is_ofc_token": true,
  "is_average_split": true,

  // 这是你用于充值的钱包
  "user_addr": "bc1psx048lgxx9qlgnw2yjn6vw7ndz07f5rdlfxraqpxkr84tqa7670sagd4k8",
  "user_pubkey": "03c22e2f276e66c24e515b24a0c6bcf53852b046b31bbaf98d3f3075c005729691",

  // 准备拆分的代币(和你充值的代币名称保持一致)
  "tick": "dog:b1071ae617c66050d518587f67564885ca1a618b387a15f84001e3fa244ef3d6_0",

  // 这个是充值接口返回的 txid + :1(:1是固定的)
  "cat_20_output_to_split": "3c92ae8ce3fd6377ac9316a28ded9ca5daef835dd3cf2613b8047c1ee9bbf530:1",

  // 这是充值接口返回的receiver_addr
  "token_addr": "bc1plsm7wgedgkguhk5xyllhyml2zstu0z7zs353hq7h6jlvu5puf4sqhc2l5t",

  // 数量请大于4
  "split_num": 5,

  "fee_rate": 9
}

发送 psbt

POST brc20swap/save_split_cat20_psbts

// 继承上一个接口的参数
export interface SaveSplitCat20PsbtsBody extends GetSplitCat20PsbtsBody {
  psbts: string[];
}

Last updated