SDK Installation
The Ramestta SDK is available as multiple npm packages. Install only what you need for your project.
Quick Install
Install Core SDKbash
# Using npm
npm install @ramestta/sdk
# Using yarn
yarn add @ramestta/sdk
# Using pnpm
pnpm add @ramestta/sdkAvailable Packages
| Package | Description | Install Command |
|---|---|---|
| @ramestta/sdk | Core SDK with essential features | npm install @ramestta/sdk |
| @ramestta/sdk-ethers | ethers.js v6 integration | npm install @ramestta/sdk-ethers ethers |
| @ramestta/sdk-web3 | web3.js v4 integration | npm install @ramestta/sdk-web3 web3 |
| @ramestta/sdk-react | React hooks & components | npm install @ramestta/sdk-react react |
| @ramestta/contracts | Contract ABIs & addresses | npm install @ramestta/contracts |
| @ramestta/staking-sdk | Staking operations | npm install @ramestta/staking-sdk |
| @ramestta/bridge-sdk | Cross-chain bridge SDK | npm install @ramestta/bridge-sdk |
Full Installation
Install all packages for complete functionality:
Install All Packagesbash
npm install @ramestta/sdk @ramestta/sdk-ethers @ramestta/sdk-web3 @ramestta/sdk-react @ramestta/contracts @ramestta/staking-sdk @ramestta/bridge-sdk ethers web3TypeScript Support
All packages include TypeScript declarations. No additional @types packages needed.
tsconfig.json (recommended)json
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"resolveJsonModule": true
}
}Package Details
@ramestta/sdk (Core)
The core package provides essential utilities and types for Ramestta development.
Core SDK Featurestypescript
import {
RamesttaSDK,
MAINNET_CONFIG,
TESTNET_CONFIG,
formatRama,
parseRama,
isValidAddress
} from '@ramestta/sdk';
// Initialize SDK
const sdk = new RamesttaSDK(MAINNET_CONFIG);
// Utility functions
const amount = parseRama('10.5'); // Parse 10.5 RAMA to wei
const display = formatRama(amount); // Format wei to RAMA string
const valid = isValidAddress('0x...'); // Validate address@ramestta/sdk-ethers
Integration with ethers.js v6 for contract interactions.
Ethers Plugintypescript
import { RamesttaEthers } from '@ramestta/sdk-ethers';
import { ethers } from 'ethers';
// Browser provider
const provider = new ethers.BrowserProvider(window.ethereum);
const signer = await provider.getSigner();
// Initialize with signer
const ramestta = new RamesttaEthers(signer);
// Get balance
const balance = await ramestta.getBalance('0x...');
// Send transaction
const tx = await ramestta.sendTransaction({
to: '0x...',
value: ethers.parseEther('1.0')
});@ramestta/sdk-web3
Integration with web3.js v4 for legacy support.
Web3 Plugintypescript
import { RamesttaWeb3 } from '@ramestta/sdk-web3';
import Web3 from 'web3';
const web3 = new Web3('https://blockchain.ramestta.com');
const ramestta = new RamesttaWeb3(web3);
// Get block number
const blockNumber = await ramestta.getBlockNumber();
// Get gas price
const gasPrice = await ramestta.getGasPrice();@ramestta/sdk-react
React hooks and components for building dApps.
React Hookstsx
import {
RamesttaProvider,
useRamestta,
useBalance,
useContract
} from '@ramestta/sdk-react';
// Wrap your app
function App() {
return (
<RamesttaProvider network="mainnet">
<YourApp />
</RamesttaProvider>
);
}
// Use hooks in components
function Wallet() {
const { address, connect, disconnect } = useRamestta();
const { balance, loading } = useBalance(address);
return (
<div>
{address ? (
<>
<p>Balance: {balance} RAMA</p>
<button onClick={disconnect}>Disconnect</button>
</>
) : (
<button onClick={connect}>Connect Wallet</button>
)}
</div>
);
}@ramestta/contracts
Pre-compiled contract ABIs and deployed addresses.
Using Contract ABIstypescript
import {
ERC20_ABI,
STAKING_ABI,
CONTRACT_ADDRESSES
} from '@ramestta/contracts';
import { ethers } from 'ethers';
// Create contract instance
const token = new ethers.Contract(
CONTRACT_ADDRESSES.mainnet.RAMA_TOKEN,
ERC20_ABI,
signer
);
// Interact with contract
const balance = await token.balanceOf(address);
await token.transfer(recipient, amount);@ramestta/staking-sdk
High-level staking operations for validators and delegators.
Staking SDKtypescript
import { RamesttaStaking } from '@ramestta/staking-sdk';
const staking = new RamesttaStaking(signer);
// Delegate to validator
await staking.delegate(validatorId, amount);
// Claim rewards
await staking.claimRewards();
// Check delegation
const delegation = await staking.getDelegation(address);@ramestta/bridge-sdk
Cross-chain bridge operations between Polygon and Ramestta.
Bridge SDKtypescript
import { RamesttaBridge } from '@ramestta/bridge-sdk';
const bridge = new RamesttaBridge(polygonSigner, ramesttaSigner);
// Deposit from Polygon to Ramestta
await bridge.deposit(amount);
// Withdraw from Ramestta to Polygon
await bridge.withdraw(amount);
// Check bridge status
const status = await bridge.getStatus(txHash);Peer Dependencies
| Package | Peer Dependencies |
|---|---|
| @ramestta/sdk | None |
| @ramestta/sdk-ethers | ethers >= 6.0.0 |
| @ramestta/sdk-web3 | web3 >= 4.0.0 |
| @ramestta/sdk-react | react >= 18.0.0 |
| @ramestta/contracts | None |
| @ramestta/staking-sdk | ethers >= 6.0.0 |
| @ramestta/bridge-sdk | ethers >= 6.0.0 |
Version Compatibility
âšī¸Version Policy
All @ramestta packages follow semantic versioning. Minor and patch updates are backward compatible. Check the changelog before major version upgrades.
Lock Versions (package.json)json
{
"dependencies": {
"@ramestta/sdk": "^1.0.0",
"@ramestta/sdk-ethers": "^1.0.0",
"@ramestta/sdk-web3": "^1.0.0",
"@ramestta/sdk-react": "^1.0.0",
"@ramestta/contracts": "^1.0.0",
"@ramestta/staking-sdk": "^1.0.0",
"@ramestta/bridge-sdk": "^1.0.0"
}
}â
Ready to Code
Packages installed! Check the Ethers.js Plugin or Web3.js Plugin documentation for usage examples.