Skip to content

Latest commit

 

History

History

README.md

monad-ts

TypeScript library for Monad-specific protocol features. Provides Viem actions for interacting with the staking precompile and WMON token on Monad.

Installation

bun add @monad-crypto/viem
npm install @monad-crypto/viem

Quick Start

import { createPublicClient, http } from "viem";
import { monad } from "viem/chains";
import { monadActions } from "@monad-crypto/viem";

const client = createPublicClient({
  transport: http("https://rpc.monad.xyz"),
  chain: monad,
}).extend(monadActions());

const validator = await client.staking.getValidator({ args: [10] });
console.log(validator);

const epoch = await client.staking.getEpoch();
console.log(epoch);

const balance = await client.wmon.getBalanceOf({ args: ["0x..."] });
console.log(balance);

API Reference

Staking

All actions query the staking precompile at Staking.ADDRESS (0x0000000000000000000000000000000000001000).

Action Description
getValidator Get details for a validator by ID
getDelegator Get delegator information
getDelegations Get all delegations for an address
getDelegators Get all delegators for a validator
getConsensusValidatorSet Get the current consensus validator set
getExecutionValidatorSet Get the current execution validator set
getSnapshotValidatorSet Get the snapshot validator set
getEpoch Get the current epoch info
getProposerValId Get the current block proposer's validator ID
getWithdrawalRequest Get withdrawal request details

Constants: Staking.ADDRESS, Staking.abi

WMON

All actions query the wrapped Monad token at Wmon.ADDRESS (0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A).

Action Description
getBalanceOf Get the WMON balance of an address
getAllowance Get the WMON allowance for a spender

Constants: Wmon.ADDRESS, Wmon.DECIMALS, Wmon.NAME, Wmon.SYMBOL, Wmon.abi

Links

Please submit security reports through the Monad.xyz UI Bug Bounty Program: https://cantina.xyz/bounties/a3806410-4f70-4023-8b29-103ddbd5b8a3