Blockchain.com · Capability

Blockchain.com Exchange REST API — Payments

Blockchain.com Exchange REST API — Payments. 10 operations. Lead operation: Blockchain.com List Account Balances. Self-contained Naftiko capability covering one Blockchain.com business surface.

Run with Naftiko Blockchain.comExchange REST APIPayments

What You Can Do

GET
Listaccounts — Blockchain.com List Account Balances
/v1/accounts
GET
Getaccountbalance — Blockchain.com Get Account Balance
/v1/accounts/{account}/{currency}
GET
Listdeposits — Blockchain.com List Deposits
/v1/deposits
GET
Getdeposit — Blockchain.com Get a Single Deposit
/v1/deposits/{depositId}
POST
Createdepositaddress — Blockchain.com Create a Deposit Address
/v1/deposits/{currency}/address
GET
Listwithdrawals — Blockchain.com List Withdrawals
/v1/withdrawals
POST
Createwithdrawal — Blockchain.com Create a Withdrawal
/v1/withdrawals
GET
Getwithdrawal — Blockchain.com Get a Single Withdrawal
/v1/withdrawals/{withdrawalId}
GET
Listwhitelist — Blockchain.com List Whitelisted Beneficiaries
/v1/whitelist
GET
Listwhitelistbycurrency — Blockchain.com List Whitelist by Currency
/v1/whitelist/{currency}

MCP Tools

list-account-balances

Blockchain.com List Account Balances

read-only idempotent
get-account-balance

Blockchain.com Get Account Balance

read-only idempotent
list-deposits

Blockchain.com List Deposits

read-only idempotent
get-single-deposit

Blockchain.com Get a Single Deposit

read-only idempotent
create-deposit-address

Blockchain.com Create a Deposit Address

list-withdrawals

Blockchain.com List Withdrawals

read-only idempotent
create-withdrawal

Blockchain.com Create a Withdrawal

get-single-withdrawal

Blockchain.com Get a Single Withdrawal

read-only idempotent
list-whitelisted-beneficiaries

Blockchain.com List Whitelisted Beneficiaries

read-only idempotent
list-whitelist-currency

Blockchain.com List Whitelist by Currency

read-only idempotent

Capability Spec

exchange-payments.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Blockchain.com Exchange REST API — Payments
  description: |
    Blockchain.com Exchange REST API — Payments. 10 operations. Lead operation: Blockchain.com List Account Balances. Self-contained Naftiko capability covering one Blockchain.com business surface.
  tags:
    - Blockchain.com
    - Exchange REST API
    - Payments
  created: '2026-05-30'
  modified: '2026-05-30'
binds:
  - namespace: env
    keys:
      BLOCKCHAIN_EXCHANGE_KEY: BLOCKCHAIN_EXCHANGE_KEY
capability:
  consumes:
    - type: http
      namespace: exchange-payments
      baseUri: https://api.blockchain.com/v3/exchange
      description: Blockchain.com Exchange REST API — Payments business capability. Self-contained, no shared references.
      resources:
        - name: accounts
          path: /accounts
          operations:
            - name: listAccounts
              method: GET
              description: Blockchain.com List Account Balances
              inputParameters: []
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: accounts-account-currency
          path: /accounts/{account}/{currency}
          operations:
            - name: getAccountBalance
              method: GET
              description: Blockchain.com Get Account Balance
              inputParameters:
                - name: account
                  in: path
                  type: string
                  required: true
                  description: Account type (e.g. `primary`).
                - name: currency
                  in: path
                  type: string
                  required: true
                  description: Currency ticker (e.g. `BTC`).
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: deposits
          path: /deposits
          operations:
            - name: listDeposits
              method: GET
              description: Blockchain.com List Deposits
              inputParameters:
                - name: from
                  in: query
                  type: integer
                  required: false
                  description: ''
                - name: to
                  in: query
                  type: integer
                  required: false
                  description: ''
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: deposits-depositid
          path: /deposits/{depositId}
          operations:
            - name: getDeposit
              method: GET
              description: Blockchain.com Get a Single Deposit
              inputParameters:
                - name: depositId
                  in: path
                  type: string
                  required: true
                  description: ''
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: deposits-currency-address
          path: /deposits/{currency}/address
          operations:
            - name: createDepositAddress
              method: POST
              description: Blockchain.com Create a Deposit Address
              inputParameters:
                - name: currency
                  in: path
                  type: string
                  required: true
                  description: Currency ticker (e.g. `BTC`).
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: withdrawals
          path: /withdrawals
          operations:
            - name: listWithdrawals
              method: GET
              description: Blockchain.com List Withdrawals
              inputParameters:
                - name: from
                  in: query
                  type: integer
                  required: false
                  description: ''
                - name: to
                  in: query
                  type: integer
                  required: false
                  description: ''
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
            - name: createWithdrawal
              method: POST
              description: Blockchain.com Create a Withdrawal
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                  description: Request body payload.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: withdrawals-withdrawalid
          path: /withdrawals/{withdrawalId}
          operations:
            - name: getWithdrawal
              method: GET
              description: Blockchain.com Get a Single Withdrawal
              inputParameters:
                - name: withdrawalId
                  in: path
                  type: string
                  required: true
                  description: ''
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: whitelist
          path: /whitelist
          operations:
            - name: listWhitelist
              method: GET
              description: Blockchain.com List Whitelisted Beneficiaries
              inputParameters: []
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: whitelist-currency
          path: /whitelist/{currency}
          operations:
            - name: listWhitelistByCurrency
              method: GET
              description: Blockchain.com List Whitelist by Currency
              inputParameters:
                - name: currency
                  in: path
                  type: string
                  required: true
                  description: ''
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
      authentication:
        type: apikey
        key: X-API-Token
        value: '{{env.BLOCKCHAIN_EXCHANGE_KEY}}'
        placement: header
  exposes:
    - type: rest
      namespace: exchange-payments-rest
      port: 8080
      description: REST adapter for Blockchain.com Exchange REST API — Payments. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/accounts
          name: accounts
          description: REST surface for accounts.
          operations:
            - method: GET
              name: listAccounts
              description: Blockchain.com List Account Balances
              call: exchange-payments.listAccounts
              with: {}
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/accounts/{account}/{currency}
          name: accounts-account-currency
          description: REST surface for accounts-account-currency.
          operations:
            - method: GET
              name: getAccountBalance
              description: Blockchain.com Get Account Balance
              call: exchange-payments.getAccountBalance
              with:
                account: rest.account
                currency: rest.currency
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/deposits
          name: deposits
          description: REST surface for deposits.
          operations:
            - method: GET
              name: listDeposits
              description: Blockchain.com List Deposits
              call: exchange-payments.listDeposits
              with:
                from: rest.from
                to: rest.to
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/deposits/{depositId}
          name: deposits-depositid
          description: REST surface for deposits-depositid.
          operations:
            - method: GET
              name: getDeposit
              description: Blockchain.com Get a Single Deposit
              call: exchange-payments.getDeposit
              with:
                depositId: rest.depositId
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/deposits/{currency}/address
          name: deposits-currency-address
          description: REST surface for deposits-currency-address.
          operations:
            - method: POST
              name: createDepositAddress
              description: Blockchain.com Create a Deposit Address
              call: exchange-payments.createDepositAddress
              with:
                currency: rest.currency
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/withdrawals
          name: withdrawals
          description: REST surface for withdrawals.
          operations:
            - method: GET
              name: listWithdrawals
              description: Blockchain.com List Withdrawals
              call: exchange-payments.listWithdrawals
              with:
                from: rest.from
                to: rest.to
              outputParameters:
                - type: object
                  mapping: $.
            - method: POST
              name: createWithdrawal
              description: Blockchain.com Create a Withdrawal
              call: exchange-payments.createWithdrawal
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/withdrawals/{withdrawalId}
          name: withdrawals-withdrawalid
          description: REST surface for withdrawals-withdrawalid.
          operations:
            - method: GET
              name: getWithdrawal
              description: Blockchain.com Get a Single Withdrawal
              call: exchange-payments.getWithdrawal
              with:
                withdrawalId: rest.withdrawalId
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/whitelist
          name: whitelist
          description: REST surface for whitelist.
          operations:
            - method: GET
              name: listWhitelist
              description: Blockchain.com List Whitelisted Beneficiaries
              call: exchange-payments.listWhitelist
              with: {}
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/whitelist/{currency}
          name: whitelist-currency
          description: REST surface for whitelist-currency.
          operations:
            - method: GET
              name: listWhitelistByCurrency
              description: Blockchain.com List Whitelist by Currency
              call: exchange-payments.listWhitelistByCurrency
              with:
                currency: rest.currency
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: exchange-payments-mcp
      port: 9090
      transport: http
      description: MCP adapter for Blockchain.com Exchange REST API — Payments. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: list-account-balances
          description: Blockchain.com List Account Balances
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.listAccounts
          with: {}
          outputParameters:
            - type: object
              mapping: $.
        - name: get-account-balance
          description: Blockchain.com Get Account Balance
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.getAccountBalance
          with:
            account: tools.account
            currency: tools.currency
          outputParameters:
            - type: object
              mapping: $.
        - name: list-deposits
          description: Blockchain.com List Deposits
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.listDeposits
          with:
            from: tools.from
            to: tools.to
          outputParameters:
            - type: object
              mapping: $.
        - name: get-single-deposit
          description: Blockchain.com Get a Single Deposit
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.getDeposit
          with:
            depositId: tools.depositId
          outputParameters:
            - type: object
              mapping: $.
        - name: create-deposit-address
          description: Blockchain.com Create a Deposit Address
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: exchange-payments.createDepositAddress
          with:
            currency: tools.currency
          outputParameters:
            - type: object
              mapping: $.
        - name: list-withdrawals
          description: Blockchain.com List Withdrawals
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.listWithdrawals
          with:
            from: tools.from
            to: tools.to
          outputParameters:
            - type: object
              mapping: $.
        - name: create-withdrawal
          description: Blockchain.com Create a Withdrawal
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: exchange-payments.createWithdrawal
          with:
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.
        - name: get-single-withdrawal
          description: Blockchain.com Get a Single Withdrawal
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.getWithdrawal
          with:
            withdrawalId: tools.withdrawalId
          outputParameters:
            - type: object
              mapping: $.
        - name: list-whitelisted-beneficiaries
          description: Blockchain.com List Whitelisted Beneficiaries
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.listWhitelist
          with: {}
          outputParameters:
            - type: object
              mapping: $.
        - name: list-whitelist-currency
          description: Blockchain.com List Whitelist by Currency
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: exchange-payments.listWhitelistByCurrency
          with:
            currency: tools.currency
          outputParameters:
            - type: object
              mapping: $.