Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.monei.cc/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Exchange Services provides a unified interface for cross-chain cryptocurrency exchange operations, supporting both EVM-compatible and Solana blockchains. Included services:
  • evmExchange: Handles exchanges on Ethereum, BSC, Polygon, Arbitrum, Optimism, and Avalanche
  • solExchange: Handles exchanges on Solana blockchain

EVM Exchange

Get Price Quote (Native → Token)

const price = await monei.evmExchange.getNativeToTokenPrice({
  tokenAddress: '0xTokenAddress',
  amount: '0.1',
  chainId: 56,
});

console.log(price.expectedOutput, price.priceImpact);

Swap Native → Token

const tx = await monei.evmExchange.swapNativeToToken({
  tokenAddress: '0xTokenAddress',
  amount: '0.1',
  chainId: 56,
  slippage: 0.5, // 0.5%
});

console.log(tx.txHash);

Get Price Quote (Token → Token)

const price = await monei.evmExchange.getTokenToTokenPrice({
  tokenIn: '0xTokenInAddress',
  tokenOut: '0xTokenOutAddress',
  amount: '100',
  chainId: 137,
});

console.log(price.expectedOutput, price.priceImpact);

Swap Token → Token

const tx = await monei.evmExchange.swapTokenToToken({
  tokenIn: '0xTokenInAddress',
  tokenOut: '0xTokenOutAddress',
  amount: '100',
  chainId: 137,
  slippage: 1,
});

console.log(tx.txHash);

Get Price Quote (Token → Native)

const price = await monei.evmExchange.getTokenToNativePrice({
  tokenAddress: '0xTokenAddress',
  amount: '0.1',
  chainId: 56,
});

console.log(price.expectedOutput, price.priceImpact);

Swap Token → Native

const tx = await monei.evmExchange.swapTokenToNative({
  tokenAddress: '0xTokenAddress',
  amount: '100',
  chainId: 56,
  slippage: 0.5,
});

console.log(tx.txHash);

Solana Exchange

Get SOL → Token Quote

const quote = await monei.solExchange.getSolToTokenQuote({
  outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
  amount: '1',
  network: SolanaNetwork.MAINNET,
});

console.log(quote.expectedOutput, quote.priceImpact);

Swap SOL → Token

const result = await monei.solExchange.swapSolToToken({
  outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
  amount: '1',
  slippage: 1,
  network: SolanaNetwork.MAINNET,
});

console.log(result.signature);

Get Token → Token Quote

const quote = await monei.solExchange.getTokenToTokenQuote({
  inputMint: 'TokenAMintAddress',
  outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
  amount: '1',
  network: SolanaNetwork.MAINNET,
});

console.log(quote.expectedOutput, quote.priceImpact);

Swap Token → Token (Solana)

const result = await monei.solExchange.swapTokenToToken({
  inputMint: 'TokenAMintAddress',
  outputMint: 'TokenBMintAddress',
  amount: '100',
  slippage: 1,
  network: SolanaNetwork.MAINNET,
});

console.log(result.signature);

Get Token → SOL Quote

const quote = await monei.solExchange.getTokenToSolQuote({
  inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
  amount: '1',
  network: SolanaNetwork.MAINNET,
});

console.log(quote.expectedOutput, quote.priceImpact);

Swap Token → SOL

const result = await monei.solExchange.swapTokenToSol({
  inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
  amount: '50',
  slippage: 1,
  network: SolanaNetwork.MAINNET,
});

console.log(result.signature);

Working with Response Objects

All methods return objects with property access:
// Price quote response
const quote = await monei.evmExchange.getNativeToTokenPrice({...});
console.log(quote.expectedOutput);  // Expected output amount
console.log(quote.priceImpact);      // Price impact percentage
console.log(quote.route);            // Swap route details

// Transaction response
const tx = await monei.evmExchange.swapNativeToToken({...});
console.log(tx.txHash);      // Transaction hash
console.log(tx.status);       // Transaction status
console.log(tx.explorerUrl);  // Block explorer URL

// Solana swap response
const result = await monei.solExchange.swapSolToToken({...});
console.log(result.signature);  // Transaction signature
console.log(result.blockhash);  // Block hash

Notes

  • All methods require a properly configured MoneiClient instance with authentication
  • EVM methods require chainId parameter (e.g., 56 for BSC, 137 for Polygon)
  • Solana methods require network parameter (SolanaNetwork.MAINNET or SolanaNetwork.DEVNET)
  • slippage is optional (defaults to 0.5% for EVM, 1% for Solana)
  • All responses are strongly typed objects with property access