Narval | Docs
GithubHome
  • Narval Connect
    • Overview
    • Getting Started
  • Security Overview
  • Providers
    • Providers
      • Anchorage
      • BitGo
      • Fireblocks
  • Guide
    • ConnectClient
    • Connect Widget
      • initiateConnect
      • completeConnect
    • Using a Connection
      • listWallets
      • getWalletById
      • listAccounts
      • getAccountById
      • listAddresses
      • getAddressById
      • listKnownDestinations
      • sendTransfer
      • getTransfer
      • EVM Transactions
        • sendTransaction
        • getTransactionById
        • signMessage
        • getSignMessageById
        • signTypedData
        • getTypedDataById
      • Staking
        • Ethereum (ETH)
        • Polygon (POL)
        • Solana (SOL)
        • Sui (SUI)
      • Raw Signing
        • signRaw
        • getRawSignRequest
    • Manage Connections
      • listConnections
      • getConnection
      • revokeConnection
  • API Reference
    • REST API
      • Authorization
      • Connect Widget
      • Networks & Assets
      • Wallets, Accounts, Addresses
      • Known Destinations
      • Transfer
      • Stake
        • Ethereum
        • Polygon
        • Solana
        • Sui
      • Transactions
        • Ethereum (EVM)
      • Raw Signing
      • Transit Encryption Key
      • Manage Connections
Powered by GitBook
On this page
  1. API Reference
  2. REST API

Transfer

PreviousKnown DestinationsNextStake

Last updated 1 month ago

  • GETGet transfer by ID
  • POSTCreate transfer

Get transfer by ID

get

Returns a specific transfer by ID.

Authorizations
Path parameters
transferIdstringRequired
Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Responses
200
The transfer details were successfully retrieved.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
get
GET /v1/provider/transfers/{transferId} HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Accept: */*
{
  "data": {
    "assetExternalId": "text",
    "assetId": "text",
    "clientId": "text",
    "connectionId": "text",
    "createdAt": null,
    "customerRefId": "text",
    "destination": {
      "id": "text",
      "type": "wallet"
    },
    "externalId": "text",
    "externalStatus": "text",
    "grossAmount": "text",
    "idempotenceId": "text",
    "memo": "text",
    "networkFeeAttribution": "on_top",
    "provider": "anchorage",
    "providerSpecific": null,
    "source": {
      "type": "account",
      "id": "text"
    },
    "status": "created",
    "transferId": "text"
  }
}

Create transfer

post

Creates a new transfer request and sends it to the provider.

Authorizations
Header parameters
x-client-idstringRequired
x-connection-idstringRequired

The provider connection through which the resource is accessed

AuthorizationstringOptional
Body
transferIdstringOptional

Sets the transfer ID to an arbitrary value

destinationone ofRequired
or
amountstringRequired
assetIdstringOptional

@deprecated use asset instead

networkFeeAttributionstring · enumOptional

Controls how network fees are charged. Example: a request to transfer 1 ETH with networkFeeAttribution=ON_TOP would result in exactly 1 ETH received to the destination and just over 1 ETH spent by the source. Note: This property is optional and its default always depend on the underlying provider.

Possible values:
customerRefIdstringOptional
idempotenceIdstringRequired
memostringOptional
providerstring · enumOptionalPossible values:
providerSpecificanyOptional
Responses
201
The transfer was successfully sent.
application/json
400
Invalid request parameters
application/json
401
Authentication is required
application/json
403
Insufficient permissions
application/json
404
Resource not found
application/json
409
Resource conflict
application/json
422
Unable to process the contained instructions
application/json
500
Internal server error
application/json
502
Bad gateway
application/json
post
POST /v1/provider/transfers HTTP/1.1
Host: auth.armory.playnarval.com
detached-jws: YOUR_API_KEY
x-client-id: text
x-connection-id: text
Content-Type: application/json
Accept: */*
Content-Length: 365

{
  "transferId": "text",
  "source": {
    "id": "text",
    "type": "wallet"
  },
  "destination": {
    "id": "text",
    "type": "wallet"
  },
  "amount": "text",
  "assetId": "text",
  "asset": {
    "assetId": "text",
    "externalAssetId": "text",
    "address": "text",
    "networkId": "text"
  },
  "networkFeeAttribution": "on_top",
  "customerRefId": "text",
  "idempotenceId": "text",
  "memo": "text",
  "provider": "anchorage",
  "providerSpecific": null
}
{
  "data": {
    "assetExternalId": "text",
    "assetId": "text",
    "clientId": "text",
    "connectionId": "text",
    "createdAt": null,
    "customerRefId": "text",
    "destination": {
      "id": "text",
      "type": "wallet"
    },
    "externalId": "text",
    "externalStatus": "text",
    "grossAmount": "text",
    "idempotenceId": "text",
    "memo": "text",
    "networkFeeAttribution": "on_top",
    "provider": "anchorage",
    "providerSpecific": null,
    "source": {
      "type": "account",
      "id": "text"
    },
    "status": "created",
    "transferId": "text"
  }
}