Skip to content

Submit Transaction

Fountainhead provides each user with an Dedicated SWQoS endpoint, helping users' transactions land faster.

Note: There is currently no anti-MEV protection.

The basic steps for submitting a transaction are as follows:

1. Select the Submission Region

Fountainhead currently provides endpoints in three regions: AMS, FRA, and NY, as follows:

For specific domain names, please refer to the assigned domain name of dashboard (the following are example domain names)**

You need to choose the lowest latency region to submit. In some special cases, such as sniping, you should submit transactions to all three regions simultaneously.

2. Add a Transfer Instruction to the Transaction

Fountainhead charges a minimum tip of 0.001 SOL as an acceleration fee. You need to add the following transfer instruction to the transaction:

// typescript
// legacy

const transaction = new Transaction();
const toAddress = new PublicKey('Landw8nr6tjdZr1wwNHDqAY9T5jpB1fcbZzzqath3o1');
const instruction = SystemProgram.transfer({
    fromPubkey: fromWallet.publicKey,
    toPubkey: toAddress,
    lamports: 0.001 * 1e9, // 0.001 SOL
});
transaction.add(instruction);

It is recommended to make this transfer instruction the first instruction in the transaction, as it will help speed up your transaction's process.

Only transactions transferred to the following address will be correctly received:

  • Land5LvHLLtucKoMVMGRZLJkW1ix6grAwXckxTYtddK
  • Land9fkdtUScHh8PPsNCU9hWMDPGufReqPJbEJXPWQi
  • Land9GpvNq3PaHEBpGP375SkiA2CYiDwmdMV7vNi5FK
  • LandHm73CRBQ27CPixDbziuoAT4XhPozCBk7X4qkaZj
  • LandjpLZM3Kbon4DfEiR3mjDEpB8bTVoZwrZLq4mVvX
  • LandmT7iTEY1wyoxDPiN6WwES17DtFCVtQWrM5kdKFD
  • LandtvZUb6ePyMBoPnn3mknNZvDxNGgDbHytbdh4MdF
  • LandUP5rRXzCHFdEH8XMT5hzSBDG7acgqRMQQzpN3jQ
  • LandW5wqpobM3V67n9qJMofsbgaukbp2SY4v4qgoAPs
  • Landw8nr6tjdZr1wwNHDqAY9T5jpB1fcbZzzqath3oc

3. Add Priority Fee

SWQoS is a fast lane; adding a reasonable priority fee to your transaction can make it confirmed faster. The priority fee is calculated as CU * price per CU, with the price unit in microLamports.

1 SOL = 1e9 Lamports 1 Lamports = 1e6 microLamports

Below is an example of a 0.01 SOL priority fee, with CU set to 200,000 (default) and a price of 50,000,000 per CU:

// typescript
// legacy

// CU quantity
const computeUnitLimitInstruction = ComputeBudgetProgram.setComputeUnitLimit({
    units: 200000,
});
transaction.add(computeUnitLimitInstruction);

// CU price
const computeUnitPriceInstruction = ComputeBudgetProgram.setComputeUnitPrice({
    microLamports: 50*1e6
});
transaction.add(computeUnitPriceInstruction);

4. Submit the Transaction

The Fountainhead SWQoS endpoint only accepts base64-encoded transactions. Some examples are as follows:

// post 

curl https://landing-ams.fountainhead.land -s -X POST -H "Content-Type: application/json" -d ' 
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "sendTransaction",
  "params": [
    "<base64Transaction>",
    {
      "encoding": "base64"
    }
  ]
}'
// typescript
// legacy

const connection = new Connection("https://landing-ams.fountainhead.land", "processed");

const rawTransaction = transaction.serialize();
const base64Transaction = rawTransaction.toString('base64');

const signature = await connection.sendEncodedTransaction(base64Transaction, { 
    skipPreflight: true 
});

If you want the transaction to get on-chain faster, it is recommended to use the "processed" and "skipPreflight: true" parameters.

5. Whitelist and Rate Limits

We use whitelisting and request rate limiting for management. The whitelist can be added independently in the Fountainhead dashboard, and rate limits can be customized based on usage by contacting Fountainhead staff.