SDK Overview
The Ramestta SDK is a modular TypeScript library for building applications on the Ramestta network. It provides a clean, intuitive API for common blockchain operations with optional plugins for popular web3 libraries.
Available Packages
| Package | Version | Description | Size |
|---|---|---|---|
| @ramestta/sdk | 1.0.0 | Core SDK with essential features | ~20KB |
| @ramestta/sdk-ethers | 1.0.3 | ethers.js v6 integration plugin | ~8KB |
| @ramestta/sdk-web3 | 1.0.0 | web3.js v4 integration plugin | ~8KB |
| @ramestta/sdk-react | 1.0.0 | React hooks & components | ~15KB |
| @ramestta/contracts | 1.1.0 | Smart contract ABIs & addresses | ~12KB |
| @ramestta/staking-sdk | 1.0.1 | Staking operations SDK | ~18KB |
| @ramestta/bridge-sdk | 1.0.1 | Cross-chain bridge SDK | ~22KB |
@ramestta organization. View all packages at npmjs.com/org/ramesttaQuick Start
Installation
npm install @ramestta/sdkBasic Usage
import { RamaPay } from '@ramestta/sdk';
// Initialize SDK
const ramaPay = new RamaPay({
network: 'mainnet', // or 'testnet'
});
// Get provider
const provider = ramaPay.getProvider();
// Check balance
const balance = await ramaPay.getBalance('0x742d35Cc...');
console.log('Balance:', balance.formatted, 'RAMA');With ethers.js Plugin
import { RamaPay } from '@ramestta/sdk';
import { EthersPlugin } from '@ramestta/sdk-ethers';
import { ethers } from 'ethers';
// Initialize with ethers.js plugin
const ramaPay = new RamaPay({
network: 'mainnet',
plugins: [new EthersPlugin()]
});
// Access ethers provider
const provider = ramaPay.ethers.provider;
const signer = ramaPay.ethers.signer;
// Use ethers.js features
const contract = new ethers.Contract(address, abi, signer);With web3.js Plugin
import { RamaPay } from '@ramestta/sdk';
import { Web3Plugin } from '@ramestta/sdk-web3';
import Web3 from 'web3';
// Initialize with web3.js plugin
const ramaPay = new RamaPay({
network: 'mainnet',
plugins: [new Web3Plugin()]
});
// Access web3 instance
const web3 = ramaPay.web3.instance;
// Use web3.js features
const contract = new web3.eth.Contract(abi, address);Core Features
Network Connection
Easy connection to mainnet and testnet with automatic RPC failover
Balance & Transfers
Query balances and send transactions with a simple API
Contract Interaction
Deploy and interact with smart contracts easily
Wallet Integration
Connect to MetaMask, RamaPay, and other wallets
Bridge Support
Built-in support for RamaBridge operations
Utilities
Format conversions, gas estimation, and more
Plugin System
The SDK uses a plugin system to extend functionality. Plugins are loaded at initialization and can add new features or integrate with external libraries.
Built-in Plugins
| Plugin | Package | Features |
|---|---|---|
| EthersPlugin | @ramestta/sdk-ethers | ethers.js provider, signers, contracts |
| Web3Plugin | @ramestta/sdk-web3 | web3.js instance, accounts, contracts |
TypeScript Support
The SDK is written in TypeScript and provides complete type definitions. This enables excellent IDE support with autocomplete, type checking, and documentation.
- Full type definitions for all APIs
- Generic types for custom contract ABIs
- Strict null checks and error handling
- IntelliSense support in VS Code
Browser & Node.js Support
| Environment | Support | Notes |
|---|---|---|
| Node.js | â v18+ | Full support |
| Browser | â Modern | ES2020+ required |
| React Native | â | With polyfills |
| Electron | â | Full support |
Error Handling
The SDK provides typed errors for common failure scenarios:
import { RamaPay, RamaError, NetworkError, InsufficientFundsError } from '@ramestta/sdk';
try {
await ramaPay.sendTransaction({...});
} catch (error) {
if (error instanceof InsufficientFundsError) {
console.log('Not enough RAMA for transaction');
} else if (error instanceof NetworkError) {
console.log('Network connection failed');
} else if (error instanceof RamaError) {
console.log('SDK error:', error.message);
}
}