@carmine-options/sdk
v1.3.10
Published
TypeScript SDK for interacting with Carmine Options AMM
Downloads
178
Maintainers
Readme
Carmine SDK
TypeScript utilities for interacting with the Carmine options AMM on Starknet. The SDK wraps on-chain contracts, off-chain data APIs, and governance helpers so you can quote premia, manage liquidity, and fetch analytics with minimal boilerplate.
Install
pnpm add carmine-sdk
# or: npm install carmine-sdk / yarn add carmine-sdkInitialization
Before using any module, configure the RPC and API endpoints once in your app:
import { initCarmineSdk } from "carmine-sdk";
initCarmineSdk({
rpcUrl: "https://your-starknet-rpc",
apiUrl: "https://backend-api-url", // default
});Off-chain data (REST API)
import { CarmineApi } from "carmine-sdk/api";
const prices = await CarmineApi.livePrices();
const pool = await CarmineApi.poolState("0x…lpAddress");
const trades = await CarmineApi.tradeEvents(undefined, {
limit: 20,
offset: 0,
});
const liquidity = await CarmineApi.liquidityEvents("0x…user", {
limit: 50,
offset: 0,
});On-chain AMM helpers
import { CarmineAmm, ETH_USDC_CALL } from "carmine-sdk/core";
const options = CarmineAmm.getAllNonExpiredOptionsWithPremia(ETH_USDC_CALL);
const option = options[0];
const size = 1;
const slippage = 0.05; // 5% slippage
const premia = await option.getPremia(size, false); // size 1, isClosing false
const call = option.tradeOpen(size, premia, slipapge);
// user's wallet then executes "call"Governance
import { Governance, VoteStatus } from "carmine-sdk/governance";
const live = await Governance.getRichLiveProposals("0x…user");
const voteCall = Governance.voteCall(live[0].id, VoteStatus.Yay);Development
pnpm install
pnpm lint
pnpm test
pnpm buildThe build uses tsup to emit CJS/ESM bundles with type declarations. Tests run with vitest.
