如何在 coinbase api 中导入转换?

How to import conversions in coinbase api?

现在 coinbase 支持所谓的 "conversions",允许从一种货币转换为另一种货币。例如,您可以将您的一些 BTC 转换为 XRP。

在 CSV 中,他们 return 在 Notes 字段中买入和卖出金额: 备注 |将 0.27235696 BTC 转换为 3,731.323138 XRP。

但是,他们只 return 在 apy /transactions 端点购买该转化的金额:

{"id":"b...8","type":"trade","status":"completed",
"amount":{"amount":"3731.323138","currency":"XRP"},
"native_amount":{"amount":"1790.76","currency":"CAD"},
"description":null,
"...,
"instant_exchange":false,
"trade":{"id":"34...2",
    "resource":"trade","resource_path":"\/v2\/accounts\/e...\/trades\/..,."},
"details":{"title":"Converted to XRP","subtitle":"Using BTC Wallet","payment_method_name":"BTC Wallet"}};

我找不到任何方法来使用 api 端点来查找为此类转换销售了多少比特币。 还有对 account/id/trades 端点的引用,但它 returns 404 给我

我遇到了同样的问题,并且找到了解决方法。 每笔交易都有 "trade" 属性,其中有 "id" 属性。 如果您将 USDC 转换为 XRP,在特定用户的 XRP 交易中,您将拥有 "trade" 属性 和 "id" 的交易,这与来自一个用户的 "id" 相同USDC 交易的 "trade" 属性 的 "id".

trade:
id: "0dfc2e63-21e7-5b25-99d9-49863eb37887"
resource: "trade"
resource_path: "/v2/accounts/a4b1dc86-a813-572b-9978-d1f9c9ba53bc/trades/0dfc2e63-21e7-5b25-99d9-49863eb37887"
__proto__: Object
details:
title: "Converted from USD Coin"
subtitle: "Using USDC Wallet"
payment_method_name: "USDC Wallet"
trade:
id: "0dfc2e63-21e7-5b25-99d9-49863eb37887"
resource: "trade"
resource_path: "/v2/accounts/a4b1dc86-a813-572b-9978-d1f9c9ba53bc/trades/0dfc2e63-21e7-5b25-99d9-49863eb37887"
__proto__: Object
details:
title: "Converted to XRP"
subtitle: "Using USDC Wallet"
payment_method_name: "USDC Wallet"

查看两笔交易的trade id。他们是一样的。 希望这有帮助。

从 webapp 观看 Coinbase API 我知道你需要调用哪个端点:

必须知道 base_id 种您想出售的加密货币和 base_id 种想要购买的加密货币。您可以通过调用 GET "https://api.coinbase.com/v2/ /assets/prices?base=USD&filter=holdable&resolution=latest" 并从响应中获取 "base_id" 来了解它您的货币。

通过调用 POST "https://api.coinbase.com/v2/trade" 并在 json 中使用请求正文来下订单,如下所示:

{ 'amount': [您要转换的金额], 'amount_asset': [您要转换的金额的货币], 'amount_from': 'input', 'source_asset': ["base_id" 您要出售的加密货币], 'target_asset': ["base_id" 您要购买的加密货币] }

如果之前的 POST“/trade”响应代码是 201,您必须获取响应 json 的“id”值并通过调用 [=44= 提交您的订单] "https://api.coinbase.com/v2/trades/[id of json 先前 https://api.coinbase.com/v2/trade POST"]。如果这个 POST commit 的响应码是 201,你的兑换就开始了,如果 coinbase 没有错误,你的兑换就完成了!

免责声明:Coinbase 对贸易交易的响应似乎没有提供您在 Coinbase API 或其他 CSV 报告中看到的正确金额。 “现货价格”和费用与您通过查看独立交易所能确定的不符。 Raskolnikov 提供的答案确实解决了这个问题。

似乎缺少 Coinbase API 文档(或者 Coinbase 没有公开记录它),但是有一个 /trades 端点可以为您提供有关您的贸易交易的更多信息。

此外,交易响应中的数据是骗你的,因为 trade.resource_path 导致 404。如果你从 [=14= 的 URL 中删除 /accounts/68a42d04-2075-529c-8cd8-183cd148c45f ] 属性,你最终会得到 /v2/trades/f4ff2d5d-07b7-5c2c-807d-7b98591b488a,我发现它确实有效。或者,您可以从 trade.id 属性.

构建交易 URI

作为示例回复,这是我的回复,删除了一些信息:

{
    "data": {
        "created_at": "2022-01-01T00:00:00Z",
        "display_input_amount": {
            "amount": "1.43",
            "currency": "USD"
        },
        "id": "d1feb056-2e42-4a7f-b310-807e189d2e26",
        "input_amount": {
            "amount": "0.02551020",
            "currency": "MLN"
        },
        "output_amount": {
            "amount": "0.02096069",
            "currency": "AVAX"
        },
        "exchange_rate": {
            "amount": "0.82165918",
            "currency": "AVAX"
        },
        "unit_price": {
            "target_to_fiat": {
                "amount": "68.22",
                "currency": "USD"
            },
            "target_to_source": {
                "amount": "1.21704963",
                "currency": "MLN"
            }
        },
        "fee": {
            "amount": "0.00",
            "currency": "USD"
        },
        "status": "completed",
        "updated_at": "2022-01-01T00:00:00Z",
        "user_warnings": [],
        "applied_subscription_benefit": false,
        "fee_without_subscription_benefit": null
    }
}