Skip to main content
POST
/
v1
/
uniswap
/
swap
/
buy_exactly
Python (SDK)
from compass_api_sdk import CompassAPI, models


with CompassAPI(
    api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:

    res = compass_api.uniswap_v3.uniswap_swap_buy_exactly(token_in="WETH", token_out="WETH", fee=models.FeeEnum.ONE_DOT_0, amount_out=1.5, max_slippage_percent=0.5, chain=models.UniswapBuyExactlyRequestChain.ARBITRUM, sender="0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B", estimate_gas=True)

    # Handle response
    print(res)
{
  "transaction": {
    "chainId": "<string>",
    "data": "<string>",
    "from": "<string>",
    "gas": "<string>",
    "to": "<string>",
    "value": "<string>",
    "nonce": "<string>",
    "maxFeePerGas": "<string>",
    "maxPriorityFeePerGas": "<string>"
  },
  "amount_in_quote": "<string>"
}

Authorizations

x-api-key
string
header
required

Your Compass API Key. Get your key here.

Body

application/json

Request model for buying an exact amount of tokens.

token_in
string
required

The symbol or address of the token to swap from..

Examples:

"WETH"

token_out
string
required

The symbol or address of the token to swap to..

Examples:

"WETH"

fee
enum<string>
required

The swap fee of the pool

Available options:
0.01,
0.05,
0.3,
1.0
amount_out
required

The amount of 'token_out' to buy.

Required range: x > 0
Examples:

1.5

max_slippage_percent
number
required

The maximum slippage allowed in percent. e.g. 1 means 1 % slippage allowed.

Required range: 0 <= x <= 10
Examples:

0.5

chain
enum<string>
required
Available options:
arbitrum,
base,
ethereum
sender
string
required

The address of the transaction sender.

Examples:

"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"

action_type
string
default:UNISWAP_BUY_EXACTLY
Allowed value: "UNISWAP_BUY_EXACTLY"
estimate_gas
boolean
default:true

Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.

Response

Successful Response

transaction
object
required

The unsigned transaction data. User must sign and broadcast to network.

  • UnsignedTransaction
  • UserOperationResponse
amount_in_quote
string
required

The estimated amount in for the transaction. The actual input amount for this transaction is guaranteed be within the acceptable threshold, defined by the max_slippage_percent, relative to this quote.