New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@balmy/sdk

Package Overview
Dependencies
Maintainers
0
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@balmy/sdk

### [Docs](https://docs.balmy.xyz) | [X](https://x.com/balmy_xyz) | [Discord](http://discord.balmy.xyz/)

  • 0.6.7
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
360
decreased by-34.43%
Maintainers
0
Weekly downloads
 
Created
Source

Balmy SDK

Docs | X | Discord

Balmy is the state-of-the-art DCA open protocol that enables users (or dapps) to Dollar Cost Average (DCA) any ERC20 into any ERC20 with their preferred period frequency, without sacrificing decentralization or giving up personal information to any centralized parties.

The Balmy SDK allows you to interact with the Balmy protocol, providing efficient tools to manage token balances, retrieve trade quotes from DEX aggregators, and check token holdings across multiple chains.

🧪 Installing

Yarn

yarn add @balmy/sdk

NPM

npm install @balmy/sdk

Usage

👷🏽‍♀️ Building the SDK

import { buildSDK } from "@balmy/sdk";

const sdk = buildSDK(config);

⚖️ Getting balance for multiple tokens on several chains

const accountBalances = await sdk.balanceService.getBalancesForTokens({
  account: "0x000000000000000000000000000000000000dead",
  tokens: {
    // [chainId]: [0xTokenAddress]
    [Chains.ETHEREUM.chainId]: [
      // Ethereum
      "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", // USDC
      "0x6b175474e89094c44da98b954eedeac495271d0f", // DAI
    ],
    [Chains.OPTIMISM.chainId]: [
      // Optimism
      "0x7f5c764cbc14f9669b88837ca1490cca17c31607", // USDC
      "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1", // DAI
    ],
  },
  // Optional config
  config: {
    timeout: "30s",
  },
});

const usdcBalanceOnEthereum =
  accountBalances[Chains.ETHEREUM.chainId][
    "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
  ];

💸 Getting allowances of multiple spenders for a token

const accountAllowances = await sdk.allowanceService.getAllowances({
  chainId: Chains.ETHEREUM.chainId,
  token: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", // USDC
  owner: "0x000000000000000000000000000000000000dead",
  spenders: ["0x6666666600000000000000000000000000009999"],
});

const amountThatDevilCanSpend =
  accountAllowances["0x6666666600000000000000000000000000009999"];

🔄 Quoting all dex aggregators for a trade

const allQuotes = await sdk.quoteService.getAllQuotesWithTxs({
  request: {
    chainId: Chains.ETHEREUM.chainId, // Ethereum
    sellToken: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    buyToken: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    order: {
      type: "sell",
      sellAmount: utils.parseUnits("1000", 6), // 1000 USDC
    },
    slippagePercentage: 1, // 1%
    takerAddress: signer.address,
    // Optional gas speed
    gasSpeed: {
      speed: "instant",
    },
  },
  // Optional config
  config: {
    sort: {
      by: "most-swapped-accounting-for-gas",
    },
  },
});

const bestTradeBySort = allQuotes[0];
await signer.sendTransaction(bestTradeBySort.tx);

👨‍💻 Development environment

  • Install dependencies
yarn install

FAQs

Package last updated on 21 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc