Create a Swap

POST /swaps

Creates a Swap

Required Permissions

Name
Conditions

Swaps:Create

Always Required

Body

Property
Required/Optional
Description
Type

quoteId *

Required

The swap quote identifier obtained from requesting a swap quote

String

walletId *

Required

Id of the Dfns wallet spending the sourceAsset

String

targetWalletId *

Required

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

String

provider *

Required

The Swap provider, either "UniswapClassic" or "UniswapX"

String

slippageBps *

Required

The slippage tolerance for this trade. Slippage tolerance defines the maximum price movement you're willing to accept during a trade, ensuring you still receive at least a minimum number of tokens if the price shifts.

Number

sourceAsset*

Required

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

Object

targetAsset *

Required

The target asset that will be received with the Swap transaction, follows the same structure as sourceAsset, including the quoted amount

Object

reference

Optional

An optional reference for this Swap.

String

Example

{
  "quoteId": "swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t",
  "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
  "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
  "provider": "UniswapClassic",
  "slippageBps": 100,
  "sourceAsset": {
    "kind": "Native",
    "amount": "10000000000"
  },
  "targetAsset": {
    "kind": "Erc20",
    "contract": "0xda0be7efd234295395d4204d0df4358339b57b27",
    "amount": "6467571553831928182"
  }
}

Response

Response example

{
    "id": "swap-6a3ku-bn8d7-8u5rs1oukojms7k8",
    "quoteId": "swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t",
    "reference": null,
    "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
    "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
    "status": "PendingPolicyApproval",
    "provider": "UniswapClassic",
    "quotedSourceAsset": {
        "kind": "Native",
        "amount": "10000000000",
        "metadata": {
            "network": "EthereumSepolia",
            "name": "Ethereum",
            "symbol": "SepoliaETH",
            "decimals": 18,
            "tid": "native:eth"
        }
    },
    "quotedTargetAsset": {
        "kind": "Erc20",
        "contract": "0xda0be7efd234295395d4204d0df4358339b57b27",
        "amount": "6467571553831928182",
        "metadata": {
            "network": "EthereumSepolia",
            "name": "Test",
            "symbol": "Test",
            "decimals": 18,
            "tid": "erc20:0xda0be7efd234295395d4204d0df4358339b57b27"
        }
    },
    "slippageBps": 100,
    "dateCreated": "2025-09-11T10:57:55.758Z",
    "requestBody": {
        "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
        "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
        "provider": "UniswapClassic",
        "slippageBps": 100,
        "sourceAsset": {
            "kind": "Native",
            "amount": "10000000000"
        },
        "targetAsset": {
            "kind": "Erc20",
            "contract": "0xda0be7efd234295395d4204d0df4358339b57b27",
            "amount": "653003161"
        }
    },
    "requester": {
        "userId": "us-48r5q-eshfg-9pmr2lo6bmpr4i4i",
        "tokenId": "to-4etah-smoal-9n3rmhul4dpaueg5"
    }
}

Last updated