Notus API
Transfers

Create Transfer

This endpoint provides a real-time quote for a token transfer, including the estimated amount of the token, fees, and other relevant details.

POST
/api/v1/crypto/transfer
x-api-key<token>

In: header

amountstring

The amount to be transferred, expressed as a decimal string.

chainIdnumber

The blockchain network where the transfer executes. Supported chains:

  • Arbitrum One: 42161
  • Avalanche: 43114
  • Base: 8453
  • BNB Smart Chain: 56
  • Ethereum: 1
  • Gnosis: 100
  • OP Mainnet: 10
  • Polygon: 137
  • X Layer Mainnet: 196
  • Bitcoin: 0
gasFeePaymentMethodstring

Defines how the fee will be paid: ADD_TO_AMOUNT adds it to the input amount, while DEDUCT_FROM_AMOUNT subtracts it from the input amount.

Value in"ADD_TO_AMOUNT" | "DEDUCT_FROM_AMOUNT"
payGasFeeTokenstring

The token address (in hexadecimal format) used to pay the transaction fee.

tokenstring

The address (in hexadecimal format) of the token being transferred.

walletAddressEVM Address | Bitcoin Address

The wallet address (EVM or Bitcoin) initiating the swap. Accepted formats:

  • EVM
    • pattern: ^0x[a-fA-F0-9]{40}$
    • example: 0x6e397ddf51d9f15dbe0414538e7529f51f2e5464
  • Bitcoin
    • pattern: ^(?:[13][a-km-zA-HJ-NP-Z1-9]{25,35}|bc1q[02-9ac-hj-np-z]{38}|bc1q[02-9ac-hj-np-z]{58}|bc1p[02-9ac-hj-np-z]{10,70})$
    • example: bc1ql3s9y4gyvlgardeklm9e4d8n83ytyzgwgh88tk
toAddressEVM Address | Bitcoin Address

The wallet address (EVM or Bitcoin) receiving the transfer. Accepted formats:

  • EVM
    • pattern: ^0x[a-fA-F0-9]{40}$
    • example: 0xa7a9dcfcb65ed67e05d9c7eb49d2d74ce1f5f4f1
  • Bitcoin
    • pattern: ^(?:[13][a-km-zA-HJ-NP-Z1-9]{25,35}|bc1q[02-9ac-hj-np-z]{38}|bc1q[02-9ac-hj-np-z]{58}|bc1p[02-9ac-hj-np-z]{10,70})$
    • example: bc1qgv5fuheq50ghnju8lafqvps7h96ztfjtcvmsnd
transactionFeePercent?number

Percentage fee to be charged (0 to 99%). The fee is deducted from the input token and sent to the treasuryAddress if configured.

Range0 <= value <= 99.99
confirmationTarget?number

The number of blocks to wait for the transaction to be confirmed. This is only used for Bitcoin transfers. Each block is roughly 10 minutes. The smaller the number, the faster the transaction will be confirmed, but the higher the fee will be.

Default1
Range1 <= value <= 100
metadata?object

Empty Object

Response Body

curl -X POST "https://api.notus.team/api/v1/crypto/transfer" \  -H "Content-Type: application/json" \  -d '{    "amount": "101.25",    "chainId": 42161,    "gasFeePaymentMethod": "ADD_TO_AMOUNT",    "payGasFeeToken": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",    "token": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",    "walletAddress": "0x6e397ddf51d9f15dbe0414538e7529f51f2e5464",    "toAddress": "0xa7a9dcfcb65ed67e05d9c7eb49d2d74ce1f5f4f1"  }'
{
  "transfer": {
    "metadata": {
      "key": "value"
    },
    "token": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
    "amountToSend": "1.26",
    "amountToSendUSD": "23.48",
    "amountToBeReceived": "1.255",
    "amountToBeReceivedUSD": "23.386825396825396825",
    "chain": 43114,
    "estimatedExecutionTime": "2026-04-12T14:49:12.762Z",
    "estimatedGasFees": {
      "payGasFeeToken": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
      "maxGasFeeToken": "12.345",
      "gasFeeTokenAmount": "12.345",
      "gasFeeTokenAmountUSD": "0.321",
      "maxGasFeeNative": "string"
    },
    "estimatedCollectedFee": {
      "collectedFeeToken": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
      "collectedFee": "string",
      "collectedFeePercent": "string",
      "notusCollectedFee": "string",
      "notusCollectedFeePercent": "string"
    },
    "expiresAt": 1751469204210,
    "userOperationHash": "0x2aac7a66d5331454eafc9b981be3596ad08a40dad24883e3b9c4a5362cd7f7e1",
    "quoteId": "0x2aac7a66d5331454eafc9b981be3596ad08a40dad24883e3b9c4a5362cd7f7e1",
    "revertReason": {
      "decoded": "ERC-20 insufficient balance. Address 0xf12534a4939c7fbda50f893774a9525265fe1a9a has 120. The operation requested 200.",
      "raw": "0xe450d38c000000000000000000000000f12534a4939c7fbda50f893774a9525265fe1a9a0000000000000000000000000000000000000000000000068155a43676e0000000000000000000000000000000000000000000000000000ad78ebc5ac6200000",
      "utf8": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�%4�����\u000f�7t�RRe�\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0006�U�6v�\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\n׎�Z� \u0000\u0000"
    },
    "authorization": {
      "chainId": 42161,
      "address": "0xd6cedde84be40893d153be9d467cd6ad37875b28",
      "nonce": 10,
      "hash": "0x777811ae5d51875409b9978ddc1b40a9da1bbe9570040bdd7c5f186d70ceceba"
    },
    "walletAddress": "0x6e397ddf51d9f15dbe0414538e7529f51f2e5464",
    "toAddress": "0x89c9da1cc13daebe9caca2418c1028253636b163"
  }
}
{
  "statusCode": 400,
  "id": "NOT_AUTHORIZED_TOKENS",
  "message": "The tokens '[0xaf88d065e77c8cc2239327c5edb3a432268e5831]' are not supported by Notus API. "
}
{
  "statusCode": 403,
  "id": "UNAVAILABLE_COMPUTE_UNITS",
  "message": "The project doesn't have enough compute units to perform this action. Please upgrade your plan."
}
{
  "statusCode": 404,
  "id": "ACCOUNT_ABSTRACTION_ADDRESS_NOT_REGISTERED_WITH_PROJECT",
  "message": "The requested wallet \"0x6e397ddf51d9f15dbe0414538e7529f51f2e5464\" is not registered with the project"
}