Skip to main content
POST
/
swaps
/
quotes
curl --request POST \
--url https://api.dfns.io/swaps/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
"targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
"provider": "UniswapClassic",
"sourceAsset": {
"kind": "Native",
"amount": "1000000000000000000"
},
"targetAsset": {
"kind": "Erc20",
"contract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
},
"slippageBps": 50
}'
{
  "id": "swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t",
  "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
  "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
  "provider": "UniswapClassic",
  "sourceAsset": {
    "kind": "Native",
    "amount": "10000000000",
    "metadata": {
      "network": "EthereumSepolia",
      "name": "Ethereum",
      "symbol": "SepoliaETH",
      "decimals": 18,
      "tid": "native:eth"
    }
  },
  "targetAsset": {
    "kind": "Erc20",
    "contract": "0xda0be7efd234295395d4204d0df4358339b57b27",
    "amount": "6467571553831928182",
    "metadata": {
      "network": "EthereumSepolia",
      "name": "Test",
      "symbol": "Test",
      "decimals": 18,
      "tid": "erc20:0xda0be7efd234295395d4204d0df4358339b57b27"
    }
  },
  "slippageBps": 100,
  "dateCreated": "2025-09-11T10:52:15.039Z",
  "requestBody": {
    "provider": "UniswapClassic",
    "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
    "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
    "sourceAsset": {
      "kind": "Native",
      "amount": "10000000000"
    },
    "targetAsset": {
      "kind": "Erc20",
      "contract": "0xda0be7efd234295395d4204d0df4358339b57b27"
    },
    "slippageBps": 100
  },
  "requester": {
    "userId": "us-48r5q-eshfg-9pmr2lo6bmpr4i4i",
    "tokenId": "to-4etah-smoal-9n3rmhul4dpaueg5"
  }
}

Authentication

✅ Organization User (CustomerEmployee)
❌ Delegated User (EndUser)
✅ Service Account

Required Permissions

No permission required.

Authorizations

Authorization
string
header
required

Bearer Token: Used to authenticate API requests. More details how to generate the token: Authentication flows

Body

application/json
provider
enum<string>
required

Swap provider.

Available options:
UniswapX,
UniswapClassic
walletId
string
required

Id of the Dfns wallet spending the sourceAsset.

Maximum length: 64
Example:

"wa-5pfuu-9euek-h0odgb6snva8ph3k"

sourceAsset
object
required

The source asset that will be spent on the Swap transaction, following the same stucture as the transfer API.

  • Native Asset
  • EVM Fungible Token (ERC-20)
targetAsset
object
required

The target asset that will be received with the Swap transaction, follows the same structure as sourceAsset, but doesn't include the amount.

  • Native Asset
  • EVM Fungible Token (ERC-20)
slippageBps
number
required

The slippage tolerance for this trade in basis point (BPS). Slippage tolerance defines the maximum price difference you're willing to accept during a trade from the estimated quote, ensuring you still receive at least a minimum number of tokens if the price shifts. One basis point equals one-hundredth of a percentage point, or 0.01%.

targetWalletId
string

Id of the Dfns wallet receiving the target asset. Currently this value must be the same as the walletId.

Maximum length: 64
Example:

"wa-5pfuu-9euek-h0odgb6snva8ph3k"

Response

200 - application/json

Success

id
string
required

ID of the Swap Quote.

Maximum length: 64
Example:

"swapQuote-7n9p0-cth75-6l74n2sj7u73ooeq"

walletId
string
required

Id of the Dfns wallet spending the sourceAsset.

Maximum length: 64
Example:

"wa-5pfuu-9euek-h0odgb6snva8ph3k"

provider
enum<string>
required

Swap provider.

Available options:
UniswapX,
UniswapClassic
sourceAsset
object
required

The source asset that will be spent on the swap transaction.

  • Native Asset
  • EVM Fungible Token (ERC-20)
targetAsset
object
required

The target asset that will be received with the swap transaction.

  • Native Asset
  • EVM Fungible Token (ERC-20)
slippageBps
number
required

The slippage tolerance for this trade in basis point (BPS). Slippage tolerance defines the maximum price difference you're willing to accept during a trade from the estimated quote, ensuring you still receive at least a minimum number of tokens if the price shifts. One basis point equals one-hundredth of a percentage point, or 0.01%.

dateCreated
string<date-time>
required

ISO 8601 date (must be UTC). When the quote was created.

requestBody
object
required

The full request used for obtaining this quote.

  • Option 1
  • Option 2
requester
object
required
targetWalletId
string

If not provided, the walletId is used as the target wallet. If provided, this field is currently required to be the same as walletId

Maximum length: 64
Example:

"wa-5pfuu-9euek-h0odgb6snva8ph3k"

I