빠른 시작
필요한 도구는 Node.js, faucet의 USDT0 일부, 비공개 키뿐입니다. Stable은 USDT0를 가스 토큰으로 사용하므로 트랜잭션을 위해서는 USDT0만 있으면 됩니다. 별도의 가스 자산에 자금을 지원할 필요가 없습니다.
전제 조건
- Node.js 20 이상
- 본인이 관리하는 비공개 키 (새 테스트 키도 괜찮습니다)
1. 설치 및 구성
프로젝트를 만들고, ethers를 설치하고, 테스트넷 구성을 저장합니다.
mkdir stable-quickstart && cd stable-quickstart
npm init -y && npm install ethersadded 1 package, audited 2 packages in 1s비공개 키를 .env에 저장합니다.
echo "PRIVATE_KEY=0xYOUR_PRIVATE_KEY_HERE" > .envconfig.ts를 생성합니다.
// config.ts
import { ethers } from "ethers";
import "dotenv/config";
export const STABLE_TESTNET_RPC = "https://rpc.testnet.stable.xyz";
export const CHAIN_ID = 2201;
export const provider = new ethers.JsonRpcProvider(STABLE_TESTNET_RPC);
export const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);2. 지갑에 자금 지원
주소를 출력한 다음 faucet에서 테스트넷 USDT0를 요청합니다.
// address.ts
import { wallet } from "./config";
console.log("Wallet address:", wallet.address);npx tsx address.tsWallet address: 0x1234...abcdhttps://faucet.stable.xyz로 이동하여 주소를 붙여넣고 버튼을 선택하여 테스트넷 USDT0를 받습니다. faucet은 1 USDT0를 보내며, 이는 수천 개의 기본 전송에 충분합니다.
3. 첫 번째 트랜잭션 보내기
0.001 USDT0를 기본적으로 보냅니다. Stable에서는 USDT0가 기본 자산이므로 간단한 값 전송이 가장 저렴한 경로입니다 (21,000 가스).
// send.ts
import { ethers } from "ethers";
import { provider, wallet } from "./config";
const recipient = "0xRecipientAddress"; // replace with any address
const amount = ethers.parseEther("0.001"); // 0.001 USDT0 (18 decimals, native)
const block = await provider.getBlock("latest");
const baseFee = block!.baseFeePerGas!;
const tx = await wallet.sendTransaction({
to: recipient,
value: amount,
maxFeePerGas: baseFee * 2n,
maxPriorityFeePerGas: 0n, // always 0 on Stable
});
const receipt = await tx.wait(1);
console.log("Tx:", receipt!.hash);
console.log("Explorer:", `https://testnet.stablescan.xyz/tx/${receipt!.hash}`);npx tsx send.tsTx: 0x8f3a...2d41
Explorer: https://testnet.stablescan.xyz/tx/0x8f3a...2d41탐색기 링크를 열어 트랜잭션을 확인하십시오. 블록 시간은 약 0.7초이므로 이미 최종적이어야 합니다.

