@deaura/limitless-sdk
v1.1.0
Published
Official JavaScript & TypeScript SDK for the Limitless ecosystem — enabling token creation, liquidity management, and Solana on-chain interactions with ease.
Readme
Limitless SDK
JavaScript/TypeScript SDK for the Limitless ecosystem: authenticate, launch tokens, fetch launched tokens, and claim fees.
Flow
- Authenticate – Initialize the SDK with your API key.
- Launch token – Create a token and add liquidity (Orca Whirlpool).
- Get token – Fetch launched tokens (e.g. by wallet).
- Claim – Claim creator fees from a position.
Installation
npm install @deaura/limitless-sdkQuick Start
import { initSdk, launchToken, getLaunchedTokens, claimFee } from '@deaura/limitless-sdk';
import { useWallet } from '@solana/wallet-adapter-react';
import { PublicKey } from '@solana/web3.js';
const rpcUrl = process.env.NEXT_PUBLIC_RPC_MAINNET || "https://api.mainnet-beta.solana.com";
const wallet = useWallet(); // or your wallet adapter
// 1. Authenticate
await initSdk({ authToken: "limitless_live_your_api_key_here" });
// 2. Launch token
const launchResult = await launchToken({
rpcurl: rpcUrl,
wallet,
metadata: { name: "My Token", symbol: "MTK", uri: "https://example.com/metadata.json" },
tokenSupply: 1_000_000,
liquidityAmount: 500,
tickSpacing: 128,
feeTierAddress: "BGnhGXT9CCt5WYS23zg9sqsAT2MGXkq7VSwch9pML82W",
integratorAccount: null,
salesRepAccount: null,
onStep: (step) => console.log(step),
});
if (launchResult.success) {
console.log("Mint:", launchResult.data.tokenMint);
console.log("Pool:", launchResult.data.poolAddress);
}
// 3. Get launched tokens for this wallet only (tokenDeployer required)
const tokens = await getLaunchedTokens({
rpcUrl,
tokenDeployer: wallet.publicKey.toBase58(),
});
// Each token has: claim, token (mint, name, symbol, uri), whirlpool, totalMint, isLiquidityAdded
// Use token.claim to call claimFee.
// 4. Claim fees (use claim params from a launched token)
if (tokens.length && tokens[0].claim.position) {
const result = await claimFee({
rpcurl: rpcUrl,
wallet,
tokenMint: new PublicKey(tokens[0].claim.tokenMint),
whirlpool: new PublicKey(tokens[0].claim.whirlpool),
position: new PublicKey(tokens[0].claim.position),
tickArrayLower: tokens[0].claim.tickArrayLower,
tickArrayUpper: tokens[0].claim.tickArrayUpper,
tickSpacing: tokens[0].claim.tickSpacing,
positionTokenAccount: new PublicKey(tokens[0].claim.positionTokenAccount),
tokenVaultA: new PublicKey(tokens[0].claim.tokenVaultA),
tokenVaultB: new PublicKey(tokens[0].claim.tokenVaultB),
});
if (result.success) console.log("Tx:", result.data.transactions);
}1. Authenticate
Initialize the SDK before any other call. Use an API key from the Limitless Dashboard.
import { initSdk } from '@deaura/limitless-sdk';
await initSdk({ authToken: process.env.NEXT_PUBLIC_LIMITLESS_API_KEY });Store the key in env (e.g. NEXT_PUBLIC_LIMITLESS_API_KEY) and never commit it.
2. Launch token
Creates the token mint, metadata, and liquidity on Orca Whirlpool.
import { launchToken } from '@deaura/limitless-sdk';
const result = await launchToken({
rpcurl: "https://api.mainnet-beta.solana.com",
wallet,
metadata: { name: "My Token", symbol: "MTK", uri: "https://example.com/metadata.json" },
tokenSupply: 1_000_000,
liquidityAmount: 500,
tickSpacing: 128,
feeTierAddress: "BGnhGXT9CCt5WYS23zg9sqsAT2MGXkq7VSwch9pML82W",
integratorAccount: null,
salesRepAccount: null,
onStep: (step) => console.log(step),
});Success response:
{
success: true,
data: {
tokenMint: string,
poolAddress: string,
transactions: { launch: string; tickConfig: string | null; liquidity: string }
}
}Error: { success: false, error: string }
3. Get launched tokens
Fetch launched tokens for a specific deployer wallet only. tokenDeployer is required.
import { getLaunchedTokens } from '@deaura/limitless-sdk';
const tokens = await getLaunchedTokens({
rpcUrl: "https://api.mainnet-beta.solana.com",
tokenDeployer: wallet.publicKey.toBase58(),
});Returns: LaunchedTokenResult[]
Each item includes:
claim– All fields needed forclaimFee():tokenMint,whirlpool,position,tickArrayLower,tickArrayUpper,tickSpacing,positionTokenAccount,tokenVaultA,tokenVaultBtoken–mint,name,symbol,uriwhirlpool– Pool addresstotalMint– Token launch amountisLiquidityAdded– Whether liquidity was added
Use token.claim when calling claimFee.
4. Claim
Claim creator fees for a position. Use the claim object from a launched token (from Get launched tokens).
import { claimFee } from '@deaura/limitless-sdk';
import { PublicKey } from '@solana/web3.js';
const result = await claimFee({
rpcurl: "https://api.mainnet-beta.solana.com",
wallet,
tokenMint: new PublicKey(token.claim.tokenMint),
whirlpool: new PublicKey(token.claim.whirlpool),
position: new PublicKey(token.claim.position),
tickArrayLower: token.claim.tickArrayLower,
tickArrayUpper: token.claim.tickArrayUpper,
tickSpacing: token.claim.tickSpacing,
positionTokenAccount: new PublicKey(token.claim.positionTokenAccount),
tokenVaultA: new PublicKey(token.claim.tokenVaultA),
tokenVaultB: new PublicKey(token.claim.tokenVaultB),
});Success response:
{ success: true, data: { transactions: string[] } }Error: { success: false, error: string }
Requirements
- Node.js >= 16
@solana/web3.js,@solana/wallet-adapter-base(or equivalent)
Support
- Docs: deaura.io/docs/limitless-sdk
- Discord: Join community
- Email: [email protected]
