POST /v1/intents

The /v1/intents endpoint allows for batch creation of intents for token sniping. This endpoint is useful for setting up multiple intents with varying parameters in a single API call. Same input as POST /v1/intent.


Request

Endpoint

POST https://snipe.merkle.io/v1/intents

Body

[{
  // required
  "chainId": 1,
  "wallet": "<wallet address>",
  "tokenAddress": "<token address>",
  "bribe": "<bribe amount in wei>",
  "buyAmount": "<buy amount in wei>",
  "expiry": 2800998888, // expiry timestamp in seconds
  
  // optional
  "maxBuyTax": 0.2, // between 0 and 1
  "maxSellTax": 0.2, // between 0 and 1
  // the minimum this intent wants to buy, if the max buy
  // is below the minimum, the intent is ignored
  "minIn": "<min in amount in wei>",
  // the minimum out required
  "minOut": "<min out amount in token units>",
  // the minimum liquidity this intent is willing to buy into
  "minLiquidity": "<min liquidity in cents>", // for example 10000 is $100
  // volume based fees
  "feeBps": 100, // 1% fee on the buy amount
  "feeRecipient": "<fee recipient address>",
  // if FOF, the intent is not included in backup bundle
  "firstOrFail": true / false,
  // maximum slippage from launch price
  "maxSlippageBps": 1000, // 10%
  // gas tip in wei (max priority fee per gas)
  "gasTip": "1000000000" // 1 gwei
}, ....]

Response:

[{
    id: "<uuid>",
    status: "pending" | "completed" | "expired" | "cancelled" | "error";
    error: "balance_too_low",
			 | "allowance_too_low",
			 | "balance_fetch_error",
			 | "allowance_fetch_error",
			 | "not_included_in_bundle",
			 | "unknown"
			 | null,
    txHash: null,
    tokenAddress: "0x...",
    wallet: "0x...",
    chainId: 1,
    bribe: "100000000000", // in wei
    buyAmount: "100000000000", // in wei
    maxBuyTax: 0.5,
    maxSellTax: 0.5,
    maxSlippageBps: 1000,
    minBuy: "1000000", // in wei
    minOut: "1000000", // in wei
    createdAtMs: 99999999, // in milliseconds 
    gasTip: 1000000000,
    token: {
	    chainId: 1,
	    address: "0x...",
	    deployer: "0x...",
	    deployerHash: "0x...",
	    deployerBlocknumber: 190000000,
	    deployerTimestamp: 99999999, // in seconds
	    launchedAtBlocknumber: null,
	    launchBuyTax: null,
	    launchStatus: "not_launched",
	    launchLiquidity: null,
	    launchProcessingTime: null,
	    launchSellTax: null,
	    launchedAtTxHash: null,
	    totalSupply: "9999999999999",
	    name: "Token name",
	    iconUrl: "",
	    symbol: "TKN",
	    decimals: 9,
	    launchedAtMs: null,
    }
}, {
    id: "<uuid>",
    status: "pending" | "completed" | "expired" | "cancelled" | "error";
    error: "balance_too_low",
			 | "allowance_too_low",
			 | "balance_fetch_error",
			 | "allowance_fetch_error",
			 | "not_included_in_bundle",
			 | "unknown"
			 | null,
    txHash: null,
    tokenAddress: "0x...",
    wallet: "0x...",
    chainId: 1,
    bribe: "100000000000", // in wei
    buyAmount: "100000000000", // in wei
    maxBuyTax: 0.5,
    maxSellTax: 0.5,
    maxSlippageBps: 1000,
    minBuy: "1000000", // in wei
    minOut: "1000000", // in wei
    createdAtMs: 99999999, // in milliseconds 
    gasTip: 1000000000,
    token: {
	    chainId: 1,
	    address: "0x...",
	    deployer: "0x...",
	    deployerHash: "0x...",
	    deployerBlocknumber: 190000000,
	    deployerTimestamp: 99999999, // in seconds
	    launchedAtBlocknumber: null,
	    launchBuyTax: null,
	    launchStatus: "not_launched",
	    launchLiquidity: null,
	    launchProcessingTime: null,
	    launchSellTax: null,
	    launchedAtTxHash: null,
	    totalSupply: "9999999999999",
	    name: "Token name",
	    iconUrl: "",
	    symbol: "TKN",
	    decimals: 9,
	    launchedAtMs: null,
    }
}, ....]

Last updated