Uruk Docs
Partners

Quickstart

Install the partner SDK and run your first attributed swap.

Quickstart

Install

npm install @uruk.finance/partner-sdk @stellar/stellar-sdk

Create a client

import { createUrukClient } from '@uruk.finance/partner-sdk';

const uruk = createUrukClient({
  partnerId: 1, // assigned by Uruk DAO
  network: 'testnet',
  // apiUrl: 'https://app.uruk.finance/api',
  signTransaction: async (xdr) => wallet.signTransaction(xdr),
});

List assets

const assets = await uruk.listAssets();
// Filtered by your Partner Dashboard catalog when configured
// Each asset includes pool.poolId and quoteAddress for buy/sell

const { price, decimals } = await uruk.getAssetPrice('SBTC');
// spot quote-per-asset (7dp), from LiquidityPool.get_price

KYC then buy / sell

const status = await uruk.getKycStatus(userAddress);
if (!status.compliant) {
  const session = await uruk.startKyc(userAddress, { mode: 'redirect' });
  // Open session.startUrl, or embed session.embedUrl in an iframe
  throw new Error('Complete KYC first');
}

const { txHash, poolId } = await uruk.buyAsset({
  trader: userAddress,
  asset: 'SBTC',
  amountIn: 100_0000000n, // USDC in
});

await uruk.sellAsset({
  trader: userAddress,
  asset: 'SBTC',
  amountIn: 10_0000000n, // sBTC in
});

Low-level swap is still available if you already know poolId and aToB.

Referral URL (no SDK)

https://app.uruk.finance/swap?partner=<YOUR_PARTNER_ID>

Swaps from that page pass your ID on-chain automatically.

On this page