🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

stable-layer-sdk

by @k66inthesky

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

Versionv1.0.0
Downloads1,393
TERMINAL
clawhub install stable-layer-sdk

πŸ“– About This Skill

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");