🧪 Skills

stable-layer-sdk

A TypeScript SDK for interacting with Stable Layer on Sui blockchain, supporting minting, burning stablecoins, claiming yield rewards, and querying supply.

v1.0.0
❤️ 0
⬇️ 536
👁 2
Share

Description

Stable Layer SDK

A TypeScript SDK for interacting with the Stable Layer protocol on the Sui blockchain. It supports minting and burning stablecoins, and claiming yield farming rewards.

Installation

npm install stable-layer-sdk @mysten/sui @mysten/bcs

API Reference

StableLayerClient

import { StableLayerClient } from "stable-layer-sdk";

const client = new StableLayerClient({
  network: "mainnet" | "testnet",
  sender: "0xYOUR_SUI_ADDRESS",
});

Transaction Methods

buildMintTx(options)

Mint stablecoins by depositing USDC. Automatically deposits into vault farm.

Parameter Type Description
tx Transaction Sui transaction object
stableCoinType string Target stablecoin type (e.g. 0x...::btc_usdc::BtcUSDC)
usdcCoin Coin Input USDC coin reference
amount bigint Amount to mint
autoTransfer boolean? If false, returns the resulting Coin object

buildBurnTx(options)

Burn stablecoins to redeem USDC.

Parameter Type Description
tx Transaction Sui transaction object
stableCoinType string Stablecoin type to burn
amount bigint? Specific amount to burn
all boolean? If true, burn entire balance

buildClaimTx(options)

Claim accumulated yield farming rewards.

Parameter Type Description
tx Transaction Sui transaction object
stableCoinType string Stablecoin type to claim rewards for

Query Methods

getTotalSupply()

Returns the total stablecoin supply across all coin types.

getTotalSupplyByCoinType(type: string)

Returns the supply for a specific stablecoin type.

Usage Examples

Mint Stablecoins

import { Transaction, coinWithBalance } from "@mysten/sui/transactions";
import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
import { StableLayerClient } from "stable-layer-sdk";

const client = new StableLayerClient({
  network: "mainnet",
  sender: "0xYOUR_ADDRESS",
});

const suiClient = new SuiClient({ url: getFullnodeUrl("mainnet") });
const keypair = Ed25519Keypair.fromSecretKey(YOUR_PRIVATE_KEY);

const tx = new Transaction();
await client.buildMintTx({
  tx,
  stableCoinType: "0x6d9fc...::btc_usdc::BtcUSDC",
  usdcCoin: coinWithBalance({
    balance: BigInt(1_000_000),
    type: "0xdba34...::usdc::USDC",
  })(tx),
  amount: BigInt(1_000_000),
});

const result = await suiClient.signAndExecuteTransaction({
  transaction: tx,
  signer: keypair,
});

Burn Stablecoins

const tx = new Transaction();
await client.buildBurnTx({
  tx,
  stableCoinType: "0x6d9fc...::btc_usdc::BtcUSDC",
  amount: BigInt(500_000),
});

await suiClient.signAndExecuteTransaction({ transaction: tx, signer: keypair });

Claim Rewards

const tx = new Transaction();
await client.buildClaimTx({
  tx,
  stableCoinType: "0x6d9fc...::btc_usdc::BtcUSDC",
});

await suiClient.signAndExecuteTransaction({ transaction: tx, signer: keypair });

Query Supply

const totalSupply = await client.getTotalSupply();
const btcUsdcSupply = await client.getTotalSupplyByCoinType("0x6d9fc...::btc_usdc::BtcUSDC");

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs