steady-sdk
v1.0.56
Published
TypeScript SDK for interacting with the Steady Protocol token contract
Maintainers
Readme
Steady SDK
TypeScript SDK for reading from and writing to the Steady Protocol token contract.
The package is designed for frontend apps, backend services, and scripts that need a simple wrapper around the Steady contract ABI.
Installation
npm install steady-sdkIf your app creates its own signer or provider with ethers, install ethers in the consuming project as well:
npm install steady-sdk ethersConstructor
new Steady(contractAddress, rpcUrl?, signer?)Use an RPC URL for read-only calls or pass an ethers signer for write operations.
Quick Start
Read contract data
import { Steady } from 'steady-sdk';
const contractAddress = '0xYourSteadyContractAddress';
const rpcUrl = 'https://your-rpc-url';
const steady = new Steady(contractAddress, rpcUrl);
const config = await steady.contractConfig();
const totalSupply = await steady.totalSupply();
console.log(config.name, config.symbol, config.decimals);
console.log(totalSupply);Send transactions with a signer
import { BrowserProvider, parseUnits } from 'ethers';
import { Steady } from 'steady-sdk';
const contractAddress = '0xYourSteadyContractAddress';
const provider = new BrowserProvider(window.ethereum);
await provider.send('eth_requestAccounts', []);
const signer = await provider.getSigner();
const steady = new Steady(contractAddress, undefined, signer);
await steady.transfer('0xRecipientAddress', parseUnits('100', 18));Query historical events
import { Steady } from 'steady-sdk';
const steady = new Steady('0xYourSteadyContractAddress', 'https://your-rpc-url');
const transfers = await steady.getPastTransferEvents(5_450_000, 5_460_000);
console.log(transfers);Subscribe to events
import { Steady } from 'steady-sdk';
const steady = new Steady('0xYourSteadyContractAddress', 'https://your-rpc-url');
await steady.subscribeToTransfer((event) => {
console.log(event.type, event.data);
});API Overview
| Category | Methods |
| --- | --- |
| Contract metadata and state | contractConfig, owner, name, symbol, decimals, totalSupply, balanceOf, allowance, paused |
| Interest and conversion helpers | cumulativeInterestPaid, totalInterestToBePaid, interestPaymentStartTimestamp, interestDistributionPeriod, tokensToSteady, steadyToTokens |
| Wrapped token helpers | wrappedSteadyAddress, setWrappedSteadyAddress, wrapTokens, unwrapTokens |
| Token and admin actions | transfer, transferFrom, approve, increaseAllowance, decreaseAllowance, issueTokens, burnTokens, payInterest, pause, unpause, addBlackList, removeBlackList, getBlackListStatus |
| Event access | subscribeToTransfer, subscribeToIssue, subscribeToBurn, getPastEvents, getPastTransferEvents, getPastIssueEvents, getPastBurnEvents, getBlock |
| Calldata encoding | encodeFunctionData.issueTokens, encodeFunctionData.burnTokens, encodeFunctionData.payInterest, encodeFunctionData.transfer, encodeFunctionData.pause, encodeFunctionData.unpause, encodeFunctionData.setPauseAuthority, encodeFunctionData.addBlackList, encodeFunctionData.removeBlackList |
Notes
- The SDK ships with TypeScript declarations.
- The signer and provider examples assume
ethersv6. - Onchain numeric values are returned as
bigint. - If you omit both the RPC URL and signer, the SDK falls back to the default
ethersmainnet provider.
