nftperp sdk ✨
![Typescript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)
SDK to interact with the nftperp protocol
![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)
For any queries, join our discord invite link
Installation
npm i @nftperp/sdk
also install ethers
library
npm i ethers
Usage
Setup
import { ethers } from "ethers";
import { SDK } from "@nftperp/sdk";
const provider = new ethers.JsonRpcProvider("<your-rpc-url>");
const wallet = new ethers.Wallet("<your-private-key>", provider);
const nftperp = new SDK({ wallet });
Create a market order
import { Amm, Side } from "@nftperp/sdk/types";
const tx = await nftperp.openMarketOrder({
amm: Amm.BAYC,
side: Side.BUY,
margin: 0.1,
leverage: 3,
});
note: to get a list of supported amms do:
console.log(nftperp.getSupportedAmms());
Create a limit order
import { Side } from "@nftperp/sdk/types";
await nftperp.openLimitOrder({
amm: AMM.BAYC,
side: Side.SELL,
price: 30,
margin: 0.1,
leverage: 1,
});
Get postion
await nftperp.getPosition(Amm.BAYC);
Create a trigger order (Stop loss/Take profit)
await nftperp.openTriggerOrder({
amm: Amm.BAYC,
price: 20,
size: 0.1
type: TriggerType.TAKE_PROFIT
});
Close position
await nftperp.closePosition({ amm: Amm.BAYC });
Calculate open summary
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,
});
Calculate close summary
summary of exit price, price impact, fees etc to be implied on closing a position
const summary = await nftperp.getCloseMarketSummary({ amm: Amm.BAYC });
Get mark price
const markPrice = await nftperp.getMarkPrice(Amm.BAYC);
Get index price
const indexPrice = await nftperp.getIndexPrice(Amm.BAYC);
Get funding rate
const fundingRate = await nftperp.getFundingRate(Amm.BAYC);
Get historical trades
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>" });
Get historical fundings
await nftperp.getFundings({ amm: Amm.BAYC });
await nftperp.getFundings({ from: 1680307200, to: 1682899200, sort: Sort.ASC });
await nftperp.getFundings({ hash: "<transaction-hash>" });