/Docs/SDK Reference/Installation

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/sdk

Available Packages

PackageDescriptionInstall Command
@ramestta/sdkCore SDK with essential featuresnpm install @ramestta/sdk
@ramestta/sdk-ethersethers.js v6 integrationnpm install @ramestta/sdk-ethers ethers
@ramestta/sdk-web3web3.js v4 integrationnpm install @ramestta/sdk-web3 web3
@ramestta/sdk-reactReact hooks & componentsnpm install @ramestta/sdk-react react
@ramestta/contractsContract ABIs & addressesnpm install @ramestta/contracts
@ramestta/staking-sdkStaking operationsnpm install @ramestta/staking-sdk
@ramestta/bridge-sdkCross-chain bridge SDKnpm 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 web3

TypeScript 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

PackagePeer Dependencies
@ramestta/sdkNone
@ramestta/sdk-ethersethers >= 6.0.0
@ramestta/sdk-web3web3 >= 4.0.0
@ramestta/sdk-reactreact >= 18.0.0
@ramestta/contractsNone
@ramestta/staking-sdkethers >= 6.0.0
@ramestta/bridge-sdkethers >= 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.

Found an issue with this page? Report on GitHub