Skip to main content

Configuration

The Sprinter SDK provides flexible options to configure the base URL for API interactions and allows you to override these settings on a per-method basis. This guide will show you how to configure the SDK effectively.

Configuring the Sprinter Instance

When initializing the Sprinter class, you can pass a baseUrl configuration option. This sets the default API endpoint for all interactions.

baseUrl

The baseUrl is the API server endpoint. You can either set it manually or use the predefined Environment enum to simplify configuration.

import { Sprinter, Environment } from "@chainsafe/sprinter-sdk";

// Using a custom base URL
const sprinter = new Sprinter({
baseUrl: "https://api.sprinter.buildwithsygma.com",
});

// Or using a predefined environment URL
const sprinterWithEnv = new Sprinter({
baseUrl: Environment.MAINNET, // Enum that provides predefined URLs
});

Set Base URL Using setBaseUrl

You can change the baseUrl dynamically in your application using the setBaseUrl function provided by the SDK. This is useful when you need to modify the API endpoint during runtime.

import { setBaseUrl } from "@chainsafe/sprinter-sdk";

// Dynamically set the base URL during runtime
setBaseUrl("https://custom.api.url");

Set Base URL Using Environment Variables

To configure the base URL for all SDK interactions, you can set the SPRINTER_URL environment variable in your environment configuration. This is particularly useful for different deployment environments such as development, staging, or production.

// In your environment file (e.g., .env)
SPRINTER_URL=https://api.sprinter.buildwithsygma.com

In your code, the SDK will use this environment variable automatically:

import { setBaseUrl } from "@chainsafe/sprinter-sdk";

// Automatically set the base URL from the environment variable
setBaseUrl(process.env.SPRINTER_URL);

Available URLs

Here are the URLs you can use for the baseUrl:

  • Mainnet: https://api.sprinter.buildwithsygma.com/
  • Testnet: https://api.test.sprinter.buildwithsygma.com/

You can either use these directly in the baseUrl option or reference them in your environment variables.

Overriding baseUrl Per Request

Every method in the SDK accepts an optional fetchOptions parameter, which contains only the baseUrl. This allows you to override the baseUrl for individual requests, even if the Sprinter instance was initialized with a different URL.

Example: Overriding baseUrl for a Single Request

sprinter.getAvailableTokens({ baseUrl: "https://custom.api.url" }).then((tokens) => {
console.log(tokens);
});

In this example, the baseUrl in fetchOptions is used only for this specific API request, without changing the base URL for the entire Sprinter instance.