Anchorage Digital Deposit Attribution API

Deposit Attribution is the process of gathering information about the originator of a given deposit. Once a deposit is initiated this process is automatically started being represented by a Deposit Attribution entity in `PENDING` status, so a deposit transaction has always an associated Deposit Attribution process and funds are not available until an attribution is performed. Once a deposit is confirmed on-chain, Anchorage Digital automatically initiates a new Deposit Attribution with a `PENDING` status. While in the `PENDING` status, funds are not available for movement or use for other purposes until the attribution process is complete. The attribution data is reviewed by Anchorage Digital, represented by the `UNDER_REVIEW` status. Upon successful completion of the review, the attribution status changes to `ATTRIBUTED`, making the funds available. If the review is unsuccessful, the status changes to `BLOCKED`. We do our best to automatically attribute deposits on behalf of our users, assuming the attribution for the specific address is known, but for those deposits where this is not possible, we enable the user to do so programmatically or via our Web Dashboard. Overall, these endpoints provide users with the capability to view, manage, and complete the deposit attribution process programmatically.

Operations 3

GET /deposit-attributions/attributions List deposit attributions #
PATCH /deposit-attributions/{depositTransactionId} Attribute a deposit #
POST /deposit-attributions/{depositTransactionId}/spam Attribute a deposit as spam #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anchorage-deposit-attribution-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

anchorage-deposit-attribution-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Anchorage Digital API Reference Deposit Attribution API
  contact:
    email: api@anchorage.com
  description: '# Introduction

    *CONFIDENTIAL: Please do not distribute this documentation externally without prior Anchorage Digital approval.*


    The Anchorage Digital REST API v2.0 provides a set of operations and resources that allow Anchorage Digital clients and partners to:

    - Programmatically transfer funds from an Anchorage Digital vault or wallet without human intervention

    - Create and list deposit addresses in a vault

    - Read and monitor vault balances

    - Query transaction history including deposits

    …'
servers:
- url: https://api.anchorage-staging.com/v2
security:
- Api-Access-Key: []
tags:
- description: Deposit Attribution is the process of gathering information about the originator of a given deposit.
  name: Deposit Attribution
paths:
  /deposit-attributions/attributions:
    get:
      operationId: getDepositAttributions
      summary: List deposit attributions
      description: 'Permissions required: **Read Deposit Attribution** or **Deposit Attribution**.


        Returns all Deposit Attributions for an Organization based on the provided query parameters.


        Default sorting will be ascending order by createdAt.'
      parameters:
      - name: afterId
        in: query
        description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body).
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of results to return per query.
        schema:
          type: integer
          format: int64
          default: 25
          maximum: 100
          minimum: 1
      - name: status
        in: query
        description: Filter by pending or attributed deposits.
        required: false
        schema:
          type: string
          enum:
          - ATTRIBUTED
          - PENDING
          - UNDER_REVIEW
          - BLOCKED
          - NON_ATTRIBUTABLE
          - INITIATED
      - name: startDateTime
        in: query
        description: The start date-time (exclusive) of the deposit attribution process in UTC following [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) 'date-time' format. A valid format example is `2021-01-01T00:00:00.000000Z`.
        required: false
        schema:
          type: string
          format: date-time
      - name: endDateTime
        in: query
        description: The end date-time (exclusive) to consider the start of the deposit attribution process in UTC following [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) 'date-time' format. A valid format example is `2021-01-01T00:00:00.000000Z`.
        required: false
        schema:
          type: string
          format: date-time
      - name: attributedAtStartDateTime
        in: query
        description: The start date-time (exclusive) to consider the attribution date of the deposit in UTC following [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) 'date-time' format. A valid format example is `2021-01-01T00:00:00.000000Z`.
        required: false
        schema:
          type: string
          format: date-time
      - name: attributedAtEndDateTime
        in: query
        description: The end date-time (exclusive) to consider the attribution date of the deposit in UTC following [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) 'date-time' format. A valid format example is `2021-01-01T00:00:00.000000Z`.
        required: false
        schema:
          type: string
          format: date-time
      - name: subaccountIds
        in: query
        description: Filter results to deposits associated with the specified subaccounts. Multiple values may be provided.
        required: false
        schema:
          type: array
          items:
            type: string
        explode: true
        style: form
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositAttributionResponse'
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
      tags:
      - Deposit Attribution
      x-security:
        Deposit Attribution: present
        Read Deposit Attribution: present
  /deposit-attributions/{depositTransactionId}:
    patch:
      operationId: performDepositAttribution
      summary: Attribute a deposit
      description: 'Permissions required: **Deposit Attribution**.


        Attribute a deposit by providing information about the originator.


        Only attributions in `PENDING` status can be attributed.


        Once the attribution is successfully performed the attribution status moves from `PENDING` to `UNDER_REVIEW`.


        For attributions performed via API the attributionType will always be `CLIENT_API`.'
      parameters:
      - name: depositTransactionId
        in: path
        description: The transactionId where the transactionType is `DEPOSIT`.
        required: true
        schema:
          type: string
          pattern: ^[0-9A-Fa-f]+$
      - name: Api-Signature
        in: header
        description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n  ```\n  toHex(\n    ed25519Sign(\n      signing_key,\n      '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n    )\n  )\n  ```\n"
        required: true
        schema:
          type: string
          pattern: ^[0-9A-Fa-f]{128,160}$
      - name: Api-Timestamp
        in: header
        description: Current timestamp, represented as unix epoch seconds
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PerformDepositAttributionRequest'
      responses:
        '200':
          description: Deposit attributed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerformDepositAttributionResponse'
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
      tags:
      - Deposit Attribution
      x-security:
        Deposit Attribution: present
  /deposit-attributions/{depositTransactionId}/spam:
    post:
      operationId: performSpamAttribution
      summary: Attribute a deposit as spam
      description: 'Permissions required: **Deposit Attribution**.


        Attribute a deposit as spam.


        Only attributions in `PENDING` status can be attributed.


        Once the attribution is successfully performed the attribution status moves from `PENDING` to `ATTRIBUTED`.


        For any spam attribution performed via API, the attributionType will automatically be set to `SPAM` and the deposit''s funds will cease to be available.'
      parameters:
      - name: depositTransactionId
        in: path
        description: The transactionId where the transactionType is `DEPOSIT`.
        required: true
        schema:
          type: string
          pattern: ^[0-9A-Fa-f]+$
      - name: Api-Signature
        in: header
        description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n  ```\n  toHex(\n    ed25519Sign(\n      signing_key,\n      '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n    )\n  )\n  ```\n"
        required: true
        schema:
          type: string
          pattern: ^[0-9A-Fa-f]{128,160}$
      - name: Api-Timestamp
        in: header
        description: Current timestamp, represented as unix epoch seconds
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type:
              - object
              - 'null'
      responses:
        '200':
          description: Successfully attributed a deposit as spam
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerformDepositAttributionResponse'
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
      tags:
      - Deposit Attribution
      x-security:
        Deposit Attribution: present
components:
  schemas:
    PerformDepositAttributionResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            depositTransactionId:
              description: The transactionId where the transactionType is `DEPOSIT`.
              type: string
              example: 0e2b2f9d-8d10-4f1e-960b-28567255045f
            status:
              description: The confirmation status once the attribution is performed.
              type: string
              enum:
              - UNDER_REVIEW
    DepositAttribution:
      type: object
      properties:
        assetType:
          description: 'A string representing a type of crypto-asset, which usually corresponds to the crypto asset''s ticker symbol.


            Use `/asset-types` to list all of the supported asset types for your organization.

            '
          type: string
          example: ETH
        attributedAt:
          description: The system timestamp of when the deposit was attributed. Date-times are always in UTC [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) with microsecond precision (e.g `2021-01-01T00:00:00.000000Z`). Can be null if the deposit is not attributed.
          type: string
          example: '2023-07-27T21:16:44.124798Z'
        attributionType:
          description: The available attribution types. Can be null if the deposit is not attributed.
          type: string
          example: CLIENT_API
          enum:
          - MANUAL_STAFF
          - MANUAL_CLIENT
          - CLIENT_API
          - AUTOMATIC
          - SPAM
          - TRUSTED_SOURCES
        blockchainTxId:
          description: Blockchain transaction id of the deposit associated to the attribution.
          type: string
          example: '0x84ddb76708d570101db89fd27b1717484c54417c9f32c63052cdfac9a0bfc0a2'
        createdAt:
          description: The system timestamp of when the deposit attribution process started. Date-times are always in UTC [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) with microsecond precision (e.g `2021-01-01T00:00:00.000000Z`).
          type: string
          example: '2023-09-12T11:01:07.953571Z'
        depositTransactionId:
          description: The transactionId where the transactionType is `DEPOSIT`.
          type: string
          example: 0e2b2f9d-8d10-4f1e-960b-28567255045f
        notes:
          description: Additional notes for the deposit attribution. Can be null if the deposit is not attributed.
          type: string
        originatorCountry:
          description: The country of the originator of the deposit. Can be null if the deposit is not attributed.
          type: string
          example: US
        originatorName:
          description: The name of the originator of the deposit. Can be null if the deposit is not attributed.
          type: string
          example: John Doe
        sourceAddresses:
          description: The source addresses of the deposit transaction.
          type: array
          items:
            type: string
          example:
          - '0xb4Bb4E3D7f35ede58d99F5e2b8B04f7AC87f9c88'
          - '0x974CaA59e49682CdA0AD2bbe82983419A2ECC400'
        sourceWalletType:
          description: The type of wallet for the originator of the deposit. Can be null if the deposit is not attributed.
          type: string
          enum:
          - CUSTODIAL
          - SELF_HOSTED
        status:
          description: The status of the Deposit Attribution process
          type: string
          enum:
          - ATTRIBUTED
          - PENDING
          - UNDER_REVIEW
          - BLOCKED
          - NON_ATTRIBUTABLE
          - INITIATED
        subaccountId:
          description: The Subaccount Identifier for the subaccount associated with the deposit. Can be null if there are no subaccounts being used for this use case. Subaccounts are currently in development / early access.
          type: string
          example: ec761b5e-fd2c-497a-a9a0-f8738ac97bdf
      required:
      - depositTransactionId
      - status
      - sourceAddresses
      - createdAt
      - blockchainTxId
      - assetType
    PerformDepositAttributionRequest:
      type: object
      properties:
        notes:
          description: Additional notes for the deposit attribution.
          type: string
          example: US
        originatorCountry:
          description: The country code ([ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)) of the originator of this deposit. This field is required in order to perform an attribution.
          type: string
          example: US
          maxLength: 2
          minLength: 2
        originatorName:
          description: The name of the originator of this deposit. This field is required in order to perform an attribution.
          type: string
          example: John Doe
          minLength: 1
        sourceWalletType:
          description: "The type of wallet being used by the deposit originator:\n\n * `CUSTODIAL` - The wallet owner does not have complete control over the wallet as they do not have the private key; a third party does. This key is needed to conduct transfers. Examples of custodial wallets include: Binance, Coinbase, Kraken, and Bitgo.\n * `SELF_HOSTED` - The wallet owner has complete control over the wallet as they have the private key. Examples of self-hosted wallets include: Metamask, Trust Wallet, Ledger Nano X, Trezor One, Electrum, Exodus, and Phantom.\n\n This field is required in order to perform an attribution.\n"
          type: string
          example: CUSTODIAL
          enum:
          - CUSTODIAL
          - SELF_HOSTED
          minLength: 1
      required:
      - originatorName
      - originatorCountry
      - sourceWalletType
    Page:
      description: Pagination info
      type: object
      properties:
        next:
          description: URL to use to query for the next page or null if no additional results are available
          type:
          - string
          - 'null'
          example: <next page url>
          x-omitempty: false
      title: Page
    DepositAttributionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DepositAttribution'
        page:
          $ref: '#/components/schemas/Page'
      required:
      - data
      - page
      title: DepositAttributionResponse
    ErrorType:
      description: The type of error returned.
      type: string
      enum:
      - InternalError
      - InvalidRequest
      - Unauthenticated
      - Forbidden
      - NotFound
      - Conflict
      - UnprocessableEntity
      - TooManyRequests
      - ServiceUnavailable
      - QuoteExpired
      - InsufficientFunds
      - NotImplemented
      title: ErrorType
    ErrorDetails:
      type: object
      properties:
        errorType:
          $ref: '#/components/schemas/ErrorType'
        message:
          description: A human-readable message providing more details about the error.
          type: string
          example: Missing required field 'amount'.
      required:
      - errorType
      - message
      title: ErrorDetails
  securitySchemes:
    Api-Access-Key:
      type: apiKey
      name: Api-Access-Key
      in: header
      description: An API key associated with a security role
x-tagGroups:
- name: Under Development
  tags:
  - Collateral Management
  - Holds
  - Deposit Attribution
  - Onboarding
  - Trusted Destinations
  - Atlas Settlement Network
  - Tax
- name: API Endpoints
  tags:
  - Addresses
  - Asset Types
  - Transactions
  - Transfers
  - Wallets
  - Vaults
  - Vesting
  - Tagging
  - Subaccounts
  - Stablecoins
  - Webhook Notifications
  - API Key
  - Statements
  - Tax Reporting
  - Trading
- name: Models
  tags:
  - Transfer Model
  - Transaction Model
  - Vault Model
  - Deposit Attribution Model