Stable Layer Sdk
A TypeScript SDK for interacting with the Stable Layer protocol on the Sui blockchain.
- Rating
- 4.2 (77 reviews)
- Downloads
- 2,666 downloads
- Version
- 1.0.0
Overview
A TypeScript SDK for interacting with the Stable Layer protocol on the Sui blockchain.
Complete Documentation
View Source →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");
Installation
openclaw install stable-layer-sdk
💻Code Examples
npm install stable-layer-sdk @mysten/sui @mysten/bcs
## API Reference
### StableLayerClient});
### 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 Stablecoinsimport { StableLayerClient } from "stable-layer-sdk";
const client = new StableLayerClient({
network: "mainnet" | "testnet",
sender: "0xYOUR_SUI_ADDRESS",
});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,
});const tx = new Transaction();
await client.buildBurnTx({
tx,
stableCoinType: "0x6d9fc...::btc_usdc::BtcUSDC",
amount: BigInt(500_000),
});
await suiClient.signAndExecuteTransaction({ transaction: tx, signer: keypair });const tx = new Transaction();
await client.buildClaimTx({
tx,
stableCoinType: "0x6d9fc...::btc_usdc::BtcUSDC",
});
await suiClient.signAndExecuteTransaction({ transaction: tx, signer: keypair });Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.