# steady-sdk

> TypeScript SDK for interacting with the Steady Protocol token contract

Latest version **1.0.56** (published 2026-05-13) · 0 weekly downloads

## Install

```sh
npm install steady-sdk
pnpm add steady-sdk
yarn add steady-sdk
bun add steady-sdk
```

## Health

**Score 50/100 (C)** — status: active.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 1.0.56 |
| Published | 2026-05-13 |
| First published | 2026-04-22 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 120 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | steadyprotocol |
| Keywords | defi, ethereum, ethers, sdk, steady, typescript, web3 |

## Links

- npm: https://www.npmjs.com/package/steady-sdk
- npm.io page: https://npm.io/package/steady-sdk

## Dependencies (1)

- [ethers](https://npm.io/package/ethers.md) 6.16.0

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.56 (latest) — 2026-05-13
- 1.0.55 — 2026-04-30
- 1.0.54 — 2026-04-22
- 1.0.53 — 2026-04-22

## 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

```bash
npm install steady-sdk
```

If your app creates its own signer or provider with `ethers`, install `ethers` in the consuming project as well:

```bash
npm install steady-sdk ethers
```

## Constructor

```ts
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

```ts
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

```ts
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

```ts
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

```ts
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 `ethers` v6.
- Onchain numeric values are returned as `bigint`.
- If you omit both the RPC URL and signer, the SDK falls back to the default `ethers` mainnet provider.

---
_Source: https://npm.io/package/steady-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
