🧪 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
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)
No comments yet. Be the first to share your thoughts!