SDK to interact with the nftperp protocol
For any queries, join our discord invite link
npm i @nftperp/sdk
import { ethers } from "ethers";
import { SDK } from "@nftperp/sdk";
const nftperp = new SDK({ rpcUrl, privateKey }); // ready to make trades ¬‿¬"
const nftperp = new SDK(); // for read-only mode, uses general rpc
import { Amm, Side } from "@nftperp/sdk/types";
const tx = await nftperp.openMarketOrder({
amm: Amm.BAYC,
side: Side.BUY,
margin: 0.1, // in eth
leverage: 3,
});
import { Side } from "@nftperp/sdk/types";
await nftperp.openLimitOrder({
amm: AMM.BAYC,
side: Side.SELL,
price: 30,
margin: 0.1,
leverage: 1,
});
await nftperp.getPosition(Amm.BAYC);
await nftperp.openTriggerOrder({
amm: Amm.BAYC,
price: 20,
size: 0.1 // in BAYC
type: TriggerType.TAKE_PROFIT
});
await nftperp.closePosition({ amm: Amm.BAYC });
summary of entry price, price impact, fees etc to be implied on opening a position
await nftperp.getOpenSummary({
amm: Amm.BAYC,
amount: 1,
leverage: 1,
side: Side.BUY,
});
summary of exit price, price impact, fees etc to be implied on closing a position
const summary = await nftperp.getCloseMarketSummary({ amm: Amm.BAYC });
const markPrice = await nftperp.getMarkPrice(Amm.BAYC);
const indexPrice = await nftperp.getIndexPrice(Amm.BAYC);
const fundingRate = await nftperp.getFundingRate(Amm.BAYC);
await nftperp.getTrades({ amm: Amm.BAYC, trader: "<trader-address>" });
await nftperp.getTrades({ from: 1680307200, to: 1682899200, sort: Sort.ASC });
await nftperp.getTrades({ hash: "<transaction-hash>" });
await nftperp.getFundings({ amm: Amm.BAYC });
await nftperp.getFundings({ from: 1680307200, to: 1682899200, sort: Sort.ASC });
await nftperp.getFundings({ hash: "<transaction-hash>" });