nftperp / nftperp-sdk

sdk to interact with nftperp protocol ✨

Home Page:https://nftperp.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nftperp sdk ✨

Typescript

SDK to interact with the nftperp protocol

Discord

For any queries, join our discord invite link



Installation

npm i @nftperp/sdk

Usage

Setup

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

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, // in eth
    leverage: 3,
});

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 // in BAYC
    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>" });

About

sdk to interact with nftperp protocol ✨

https://nftperp.xyz

License:MIT License


Languages

Language:TypeScript 99.8%Language:Shell 0.2%