{"_id":"@derp-trade/sdk","_rev":"6-5f186b5fe9cc4c0eb734eb9aaf842e8f","name":"@derp-trade/sdk","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"@derp-trade/sdk","version":"0.1.0","author":{"name":"derptrade"},"license":"MIT","_id":"@derp-trade/sdk@0.1.0","maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"dist":{"shasum":"a5b100ffb7769ffac9239cb5a2d1037b256e36c2","tarball":"https://registry.npmjs.org/@derp-trade/sdk/-/sdk-0.1.0.tgz","fileCount":7,"integrity":"sha512-bp8W2uLODkhhL1zVrmwyo776koDMs0wQK3GcOgfCDHKncLn/Hkrt0tNrUj+S91Pqh9nmZac+Ojuro70fEIvCcA==","signatures":[{"sig":"MEYCIQDmZkraj0w0AMZJZaAf7PHeH3yRz+nau51lrDTq5q29BQIhAP/xV1O+/Nn6rEpbseyYB2J3FNcseSYIrDrzH7CCEehW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175589},"main":"dist/cjs/lib.js","type":"commonjs","module":"dist/esm/lib.js","exports":{".":{"types":"./dist/types/lib.d.ts","import":"./dist/esm/lib.js","default":"./dist/esm/lib.js","require":"./dist/cjs/lib.js"}},"gitHead":"964d889260c0c790666498adcb7a670ee3cb5b76","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:clean && npm run compile:types && npm run compile:rollup && npm run build:post","build:post":"node ./scripts/prepare-package-json && rm -rf ./dts","build:clean":"rm -rf ./dist ./dts","compile:types":"tsc -b ./tsconfig.types.json","compile:rollup":"rollup -c"},"_npmUser":{"name":"derptrade","email":"code@derp.trade"},"_npmVersion":"11.4.2","description":"An SDK for derp.trade","directories":{},"_nodeVersion":"24.4.1","dependencies":{"bn.js":"^5.2.2","@solana/web3.js":"^1.98.4","@coral-xyz/anchor":"^0.31.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","typescript":"^5.9.2","@types/node":"^24.2.0","@types/bn.js":"^5.2.0","rollup-plugin-dts":"^6.2.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1754654624782_0.7329356646052108","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@derp-trade/sdk","version":"0.2.0","author":{"name":"derptrade"},"license":"MIT","_id":"@derp-trade/sdk@0.2.0","maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"dist":{"shasum":"978fb1b66dd4c17564efaedbcca6549e7d7cbbe4","tarball":"https://registry.npmjs.org/@derp-trade/sdk/-/sdk-0.2.0.tgz","fileCount":7,"integrity":"sha512-3M0IW6QOneX7c1DZ6E9mLzBOa73xtC2PuvS7FC4mAX/DN+wH2h8QdjLUsY6H58XEFQN7v2Ot56cpDahXjPVZCQ==","signatures":[{"sig":"MEUCIEfSOUjZ39O1eJdbmHu9b5UYrhpt29iEw9tX9hT86Y0gAiEAtbwGjnRLCU6Y1SXW1sIApcSWcbPZ+irNCLu4OukzvUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180138},"main":"dist/cjs/lib.js","type":"commonjs","module":"dist/esm/lib.js","exports":{".":{"types":"./dist/types/lib.d.ts","import":"./dist/esm/lib.js","default":"./dist/esm/lib.js","require":"./dist/cjs/lib.js"}},"gitHead":"fcee59839393c849157857a2019d89453e7aa2ae","scripts":{"test":"vitest","build":"npm run build:clean && npm run compile:types && npm run compile:rollup && npm run build:post","test:run":"vitest run","build:post":"node ./scripts/prepare-package-json && rm -rf ./dts","build:clean":"rm -rf ./dist ./dts","compile:types":"tsc -b ./tsconfig.types.json","test:coverage":"vitest run --coverage","compile:rollup":"rollup -c"},"_npmUser":{"name":"derptrade","email":"code@derp.trade"},"_npmVersion":"11.4.2","description":"An SDK for derp.trade","directories":{},"_nodeVersion":"24.4.1","dependencies":{"bn.js":"^5.2.2","@solana/web3.js":"^1.98.4","@coral-xyz/anchor":"^0.31.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","@types/bn.js":"^5.2.0","rollup-plugin-dts":"^6.2.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1754738184890_0.8663596041255184","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@derp-trade/sdk","version":"0.3.0","author":{"name":"derptrade"},"license":"MIT","_id":"@derp-trade/sdk@0.3.0","maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"dist":{"shasum":"4c2f1d755d3c6fe0f42fafe98f0564fe4df546e0","tarball":"https://registry.npmjs.org/@derp-trade/sdk/-/sdk-0.3.0.tgz","fileCount":7,"integrity":"sha512-tQWLOGPXvzc6ToCL8tXEgrLNVvfteP8sPpWWqjgCqkq8ZuM9DI39QSwHqXrvt4YCqLwxEEiwwL/FpyZ15fBE9Q==","signatures":[{"sig":"MEYCIQDqYGg/ho46xrvwVISGWiCtRhiXC3FYipZR3x58suFTpgIhAO3piezXoTH4RgEAkbmaDkY5thR/nTt8G3kPP9iVnIm1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":307679},"main":"dist/cjs/lib.js","type":"commonjs","module":"dist/esm/lib.js","exports":{".":{"types":"./dist/types/lib.d.ts","import":"./dist/esm/lib.js","default":"./dist/esm/lib.js","require":"./dist/cjs/lib.js"}},"gitHead":"0fa2921311ac3b8c61016cc46793d7b6a2e1aeac","scripts":{"test":"vitest","build":"npm run build:clean && npm run compile:types && npm run compile:rollup && npm run build:post","test:run":"vitest run","build:post":"node ./scripts/prepare-package-json && rm -rf ./dts","build:clean":"rm -rf ./dist ./dts","compile:types":"tsc -b ./tsconfig.types.json","test:coverage":"vitest run --coverage","compile:rollup":"rollup -c"},"_npmUser":{"name":"derptrade","email":"code@derp.trade"},"_npmVersion":"11.6.1","description":"An SDK for derp.trade","directories":{},"_nodeVersion":"24.10.0","dependencies":{"bn.js":"^5.2.2","@solana/web3.js":"^1.98.4","@coral-xyz/anchor":"^0.32.1","@solana/spl-token":"^0.4.13","@pump-fun/pump-sdk":"^1.35.0","@orca-so/common-sdk":"^0.7.0","@orca-so/whirlpools-sdk":"^0.17.3","@pump-fun/pump-swap-sdk":"^1.15.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","@types/bn.js":"^5.2.0","rollup-plugin-dts":"^6.2.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1780995661625_0.0690651295378295","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@derp-trade/sdk","version":"0.4.0","author":{"name":"derptrade"},"license":"MIT","_id":"@derp-trade/sdk@0.4.0","maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"dist":{"shasum":"5cdaf9f3bf8361a72a0ecb6b35653382662f6985","tarball":"https://registry.npmjs.org/@derp-trade/sdk/-/sdk-0.4.0.tgz","fileCount":7,"integrity":"sha512-spHm1xOXcbPKcDyQi/nlMr1mwW3N877gZEGZkpD8yQhZU+mJwfSUVK+UUnaK3OiJ9FAwH4kwGmUkF63T0UKmhQ==","signatures":[{"sig":"MEUCIHcnhYaVUGvzO3VVC+ofjFGQ+otCzul5ZpqejARpdR1/AiEAnIes3THy667tP1nrnxyqYhIW6xqDHaT7/1LANacPPkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313877},"main":"dist/cjs/lib.js","type":"commonjs","module":"dist/esm/lib.js","exports":{".":{"types":"./dist/types/lib.d.ts","import":"./dist/esm/lib.js","default":"./dist/esm/lib.js","require":"./dist/cjs/lib.js"}},"gitHead":"9d18e146b0b961d6b27c2684972de8cef26d98cc","scripts":{"test":"vitest","build":"npm run build:clean && npm run compile:types && npm run compile:rollup && npm run build:post","test:run":"vitest run","build:post":"node ./scripts/prepare-package-json && rm -rf ./dts","build:clean":"rm -rf ./dist ./dts","compile:types":"tsc -b ./tsconfig.types.json","test:coverage":"vitest run --coverage","compile:rollup":"rollup -c"},"_npmUser":{"name":"derptrade","email":"code@derp.trade"},"_npmVersion":"11.6.1","description":"An SDK for derp.trade","directories":{},"_nodeVersion":"24.10.0","dependencies":{"bn.js":"^5.2.2","@solana/web3.js":"^1.98.4","@coral-xyz/anchor":"^0.32.1","@solana/spl-token":"^0.4.13","@pump-fun/pump-sdk":"^1.35.0","@orca-so/common-sdk":"^0.7.0","@orca-so/whirlpools-sdk":"^0.17.3","@pump-fun/pump-swap-sdk":"^1.15.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","@types/bn.js":"^5.2.0","rollup-plugin-dts":"^6.2.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1781100314476_0.09894791379572765","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@derp-trade/sdk","version":"0.5.0","author":{"name":"derptrade"},"license":"MIT","_id":"@derp-trade/sdk@0.5.0","maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"dist":{"shasum":"22e519dacd4b245372d52d0853f260859c3447a6","tarball":"https://registry.npmjs.org/@derp-trade/sdk/-/sdk-0.5.0.tgz","fileCount":7,"integrity":"sha512-ElozvJ4RsJk58P36ebSYoSPvXUdMtBjKH9X4/HxFSLO90zbvYO52sp3V3uw4ZMrNNcwGfffd/SbbLSt/aXWpsw==","signatures":[{"sig":"MEUCIEyABxBFkSGbT9LkTwgovFCarS0KGJzdyGuZOVsraXJtAiEAl1ilpCRX+Ec8doXN2dithW54gMNmgDz33wjs7S8p1ZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315959},"main":"dist/cjs/lib.js","type":"commonjs","module":"dist/esm/lib.js","exports":{".":{"types":"./dist/types/lib.d.ts","import":"./dist/esm/lib.js","default":"./dist/esm/lib.js","require":"./dist/cjs/lib.js"}},"gitHead":"1282b45251e4c5027ea972f4b5001b025e5566f4","scripts":{"test":"vitest","build":"npm run build:clean && npm run compile:types && npm run compile:rollup && npm run build:post","test:run":"vitest run","build:post":"node ./scripts/prepare-package-json && rm -rf ./dts","build:clean":"rm -rf ./dist ./dts","compile:types":"tsc -b ./tsconfig.types.json","test:coverage":"vitest run --coverage","compile:rollup":"rollup -c"},"_npmUser":{"name":"derptrade","email":"code@derp.trade"},"_npmVersion":"11.6.1","description":"An SDK for derp.trade","directories":{},"_nodeVersion":"24.10.0","dependencies":{"bn.js":"^5.2.2","@solana/web3.js":"^1.98.4","@coral-xyz/anchor":"^0.32.1","@solana/spl-token":"^0.4.13","@pump-fun/pump-sdk":"^1.35.0","@orca-so/common-sdk":"^0.7.0","@orca-so/whirlpools-sdk":"^0.17.3","@pump-fun/pump-swap-sdk":"^1.15.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","@types/bn.js":"^5.2.0","rollup-plugin-dts":"^6.2.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.0_1781122197171_0.015391219020906677","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@derp-trade/sdk","version":"0.5.1","description":"An SDK for derp.trade","license":"MIT","author":{"name":"derptrade"},"type":"commonjs","main":"dist/cjs/lib.js","module":"dist/esm/lib.js","exports":{".":{"types":"./dist/types/lib.d.ts","require":"./dist/cjs/lib.js","import":"./dist/esm/lib.js","default":"./dist/esm/lib.js"}},"scripts":{"compile:types":"tsc -b ./tsconfig.types.json","compile:rollup":"rollup -c","build:clean":"rm -rf ./dist ./dts","build:post":"node ./scripts/prepare-package-json && rm -rf ./dts","build":"npm run build:clean && npm run compile:types && npm run compile:rollup && npm run build:post","test":"vitest","test:run":"vitest run","test:coverage":"vitest run --coverage"},"devDependencies":{"@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4","@types/bn.js":"^5.2.0","@types/node":"^24.2.0","rollup":"^4.46.2","rollup-plugin-dts":"^6.2.1","typescript":"^5.9.2","vitest":"^3.2.4"},"dependencies":{"@coral-xyz/anchor":"^0.32.1","@orca-so/common-sdk":"^0.7.0","@orca-so/whirlpools-sdk":"^0.17.3","@pump-fun/pump-sdk":"^1.35.0","@pump-fun/pump-swap-sdk":"^1.15.0","@solana/spl-token":"^0.4.13","@solana/web3.js":"^1.98.4","bn.js":"^5.2.2"},"gitHead":"6ea46966652e66dbf6927c267acae07df064dc3c","_id":"@derp-trade/sdk@0.5.1","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-ZkLe4miaKWWYg0X9FdVr+I+DaIsfs8IhUTQPsQSrx2SEA/OCVaJzxVxXp/5fgZbdyQpiOJDybTi+dRpCVgKkog==","shasum":"4da55f09078f0eaeaf152426b20d86fc37c92a04","tarball":"https://registry.npmjs.org/@derp-trade/sdk/-/sdk-0.5.1.tgz","fileCount":7,"unpackedSize":316531,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFFl0nWW1M4W19HS4ltKGx8Rl/wFyjjEc3cvUIAjH234AiAbmjWOBX+z+O6nDXpfYY33GmpDMSGfmqy3D0vgg1LPeQ=="}]},"_npmUser":{"name":"derptrade","email":"code@derp.trade"},"directories":{},"maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.5.1_1784009194754_0.7661700305465082"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-08T12:03:44.720Z","modified":"2026-07-14T06:06:35.098Z","0.1.0":"2025-08-08T12:03:45.020Z","0.2.0":"2025-08-09T11:16:25.101Z","0.3.0":"2026-06-09T09:01:01.802Z","0.4.0":"2026-06-10T14:05:14.620Z","0.5.0":"2026-06-10T20:09:57.384Z","0.5.1":"2026-07-14T06:06:34.947Z"},"author":{"name":"derptrade"},"license":"MIT","description":"An SDK for derp.trade","maintainers":[{"name":"derptrade","email":"code@derp.trade"}],"readme":"# @derp-trade/sdk\n\nA TypeScript SDK for [derp.trade](https://derp.trade), a Solana-based derivatives trading platform using abstract futures.\n\nThe SDK helps you build derp.trade transactions, resolve market metadata, push prices, route order payments, and read market and position state from Solana.\n\n## Installation\n\n```bash\nnpm install @derp-trade/sdk\n```\n\n## Quickstart\n\n### Initialize the SDK\n\n```ts\nimport { DerpSDK, MAINNET_RPC_URL } from \"@derp-trade/sdk\";\nimport { Wallet } from \"@coral-xyz/anchor\";\nimport { Connection, Keypair } from \"@solana/web3.js\";\n\nconst connection = new Connection(MAINNET_RPC_URL, \"confirmed\");\nconst keypair = Keypair.fromSecretKey(/* your secret key bytes */);\nconst wallet = new Wallet(keypair);\n\nconst sdk = new DerpSDK(connection, wallet);\n```\n\n⚠️ **Important**: The wallet provided when constructing the SDK should have funds (SOL) on it, otherwise some SDK functions will fail.\n\n### Place an Order\n\n```ts\nimport BN from \"bn.js\";\nimport { PublicKey, Transaction } from \"@solana/web3.js\";\n\nconst mint = new PublicKey(\"6ogzHhzdrQr9Pgv6hZ2MNze7UrzBMAFyBBWUYp1Fhitx\");\n\nconst instructions = await sdk.getOrderInstructions(mint, {\n  reduceOnly: false,\n  side: \"long\",\n  orderAmount: new BN(1_000_000), // 1 USDT, USDT has 6 decimals\n  leverageBps: new BN(20_000), // 2x leverage\n});\n\nconst tx = new Transaction().add(...instructions);\nconst signature = await sdk.provider.sendAndConfirm(tx);\n```\n\n`getOrderInstructions` returns everything needed for a normal order: price update instructions followed by the order instruction.\n\n## Core Concepts\n\n### Amounts\n\nUse `BN` for all raw on-chain amounts.\n\n- `orderAmount`: input amount for the selected payment route.\n- `leverageBps`: leverage in basis points, where `10_000` is 1x and `20_000` is 2x.\n- Direct `USDT` and `USDC` amounts use 6 decimals.\n- `SOL` amounts use lamports.\n- Native token amounts use that token's base units.\n\n### Sides and Order Modes\n\n```ts\nawait sdk.getOrderInstructions(mint, {\n  reduceOnly: false,\n  side: \"short\",\n  orderAmount: new BN(5_000_000),\n  leverageBps: new BN(15_000),\n});\n```\n\nSet `reduceOnly: true` when the order should only reduce an existing position. Set `useSize: true` when `orderAmount` represents position size instead of payment input.\n\n### Referrals\n\n```ts\nconst instructions = await sdk.getOrderInstructions(\n  mint,\n  {\n    reduceOnly: false,\n    side: \"long\",\n    orderAmount: new BN(1_000_000),\n    leverageBps: new BN(20_000),\n  },\n  {\n    referralRecipient: referrerPublicKey,\n    referralFeeBps: 25,\n  },\n);\n```\n\n## Routing Payments\n\nOrders can be paid directly with USDT or routed from supported quote assets.\n\n```ts\nconst route = await sdk.buildRoutingContext(\"USDC\", wallet.publicKey, {\n  paymentAmountUsd: 25,\n});\n\nconst instructions = await sdk.getOrderInstructions(mint, {\n  reduceOnly: false,\n  side: \"long\",\n  orderAmount: route.orderAmount,\n  routingContext: route,\n  leverageBps: new BN(20_000),\n});\n```\n\nSupported route inputs:\n\n| Currency | Use case | Required options |\n| --- | --- | --- |\n| `USDT` | Direct USDT payment | `paymentAmountUsd` optional |\n| `USDC` | Route USDC to USDT | `paymentAmountUsd` |\n| `SOL` | Route SOL to USDT | `paymentAmountUsd`, `solPrice` |\n\nExample SOL route:\n\n```ts\nconst route = await sdk.buildRoutingContext(\"SOL\", wallet.publicKey, {\n  paymentAmountUsd: 50,\n  solPrice: 150,\n});\n```\n\n## Managing Positions\n\n### Close a Position\n\n```ts\nconst closeInstructions = await sdk.getClosePositionInstructions(mint);\nawait sdk.provider.sendAndConfirm(new Transaction().add(...closeInstructions));\n```\n\nIf you already fetched the position, pass it to avoid another RPC read:\n\n```ts\nconst position = await sdk.rawPosition(mint, wallet.publicKey);\nconst closeInstructions = await sdk.getClosePositionInstructions(mint, position);\n```\n\n### Deposit and Withdraw Collateral\n\n```ts\nconst depositIx = await sdk.rawDepositInstruction(\n  mint,\n  new BN(10_000_000), // 10 USDT\n);\n\nconst withdrawIx = await sdk.rawWithdrawInstruction(mint);\n```\n\n## Market Data\n\nUse converted helpers when you want JavaScript numbers:\n\n```ts\nconst status = await sdk.marketStatus(mint);\nconst position = await sdk.positionState(mint, wallet.publicKey);\n\nconsole.log(status.markPrice, status.fundingRate);\nconsole.log(position.side, position.size, position.collateral);\n```\n\nUse raw helpers when you want the Anchor account shape and `BN` values:\n\n```ts\nconst rawMarket = await sdk.rawMarket(mint);\nconst rawOracle = await sdk.rawOracle(mint);\nconst rawPosition = await sdk.rawPosition(mint, wallet.publicKey);\nconst rawStatus = await sdk.rawMarketStatus(mint);\nconst config = await sdk.config();\n```\n\nYou can also resolve the market type and token standard:\n\n```ts\nconst market = await sdk.resolveMarket(mint);\nconst launchpad = await sdk.detectMarket(mint);\n\nconsole.log(market.launchpad.launchpad, market.tokenStandard);\nconsole.log(launchpad);\n```\n\n## Supported Markets\n\nThe SDK supports the market sources used by derp.trade:\n\n| Launchpad | Identifier | Notes |\n| --- | --- | --- |\n| Pump.fun | `pump` | Pump.fun and PumpSwap markets |\n| LetsBonk / Raydium LaunchLab | `bonk` | LaunchLab tokens with Raydium CPMM liquidity |\n| Meteora | `meteora` | Meteora DBC and DAMM v2 markets |\n| Raydium AMM v4 | `raydiumAmmV4` | Raydium AMM v4 markets |\n| derp.trade feed | `derpFeed` | Signed derp.trade price feeds |\n| External | `external` | Supported external pool markets |\n\nMarket metadata is usually resolved automatically. If you already know the launchpad, or if you are building instructions before metadata is available, pass it explicitly:\n\n```ts\nawait sdk.getOrderInstructions(\n  mint,\n  {\n    reduceOnly: false,\n    side: \"long\",\n    orderAmount: new BN(1_000_000),\n    leverageBps: new BN(20_000),\n  },\n  undefined,\n  undefined,\n  \"pump\",\n);\n```\n\nFor launchpads that need extra accounts, pass a `LaunchpadData` object:\n\n```ts\nawait sdk.getPricePushInstructions(mint, {\n  launchpadData: {\n    launchpad: \"meteora\",\n    meteoraDbcConfig,\n    quoteMint,\n  },\n});\n\nawait sdk.getPricePushInstructions(mint, {\n  launchpadData: {\n    launchpad: \"raydiumAmmV4\",\n    openbookMarket,\n  },\n});\n```\n\n## Price Push Instructions\n\nMost SDK methods that need fresh prices build the price push instructions for you. You can also build them directly:\n\n```ts\nconst pushInstructions = await sdk.getPricePushInstructions(mint);\nconst pushInstruction = await sdk.getPricePushInstruction(mint);\n```\n\nConvenience helpers are also available:\n\n```ts\nconst pumpPush = await sdk.rawPricePushPumpInstruction(mint);\nconst bonkPush = await sdk.rawPricePushBonkInstruction(mint);\nconst externalPush = await sdk.rawPricePushExternalInstruction(mint);\n```\n\nWhen market metadata is resolved through the Derp API, pump.fun quote mints and\ntoken standards are applied automatically. For explicit pump pushes, pass the\nquote mint and token standard:\n\n```ts\nimport { USDC_ID } from \"@derp-trade/sdk\";\n\nconst pumpPush = await sdk.getPricePushInstruction(\n  mint,\n  { launchpad: \"pump\", quoteMint: USDC_ID, tokenStandard: \"token2022\" },\n  wallet.publicKey,\n);\n\nconst rawPumpPush = await sdk.rawPricePushPumpInstruction(mint, {\n  user: wallet.publicKey,\n  quoteMint: USDC_ID,\n  tokenStandard: \"token2022\",\n});\n```\n\n## Creating Markets\n\n```ts\nconst createInstructions = await sdk.getCreateMarketInstructions(mint, \"pump\");\nawait sdk.provider.sendAndConfirm(new Transaction().add(...createInstructions));\n```\n\nPass `tokenStandard` for Token-2022 mints:\n\n```ts\nawait sdk.getCreateMarketInstructions(mint, \"pump\", wallet.publicKey, \"token2022\");\n```\n\n## Low-Level Access\n\nThe SDK exposes the underlying typed Anchor program for advanced integrations:\n\n```ts\nimport { getMarketStatePda } from \"@derp-trade/sdk\";\n\nconst program = sdk.program;\nconst marketPda = getMarketStatePda(mint);\n\nconst marketAccount = await program.account.marketState.fetch(marketPda);\n```\n\nUseful exports include:\n\n```ts\nimport {\n  DERP_PROGRAM_ID,\n  GLOBAL_CONFIG_PDA,\n  MAINNET_RPC_URL,\n  getMarketStatePda,\n  getOracleStatePda,\n  getPositionStatePda,\n  getAtaAddress,\n} from \"@derp-trade/sdk\";\n```\n\n## API Overview\n\n### Constructor\n\n```ts\nnew DerpSDK(connection, wallet);\n```\n\n### Trading\n\n```ts\nsdk.getOrderInstructions(mint, params, referralParams?);\nsdk.getOrderInstructions(mint, params, referralParams?, undefined, launchpadData?, user?);\nsdk.rawOrderRoutedInstruction(mint, params, referralParams?, options?);\nsdk.getClosePositionInstructions(mint, positionState?, referralParams?);\nsdk.getClosePositionInstructions(mint, positionState?, referralParams?, undefined, launchpadData?, user?, routingContext?);\nsdk.rawDepositInstruction(mint, amount, user?);\nsdk.rawWithdrawInstruction(mint, user?);\n```\n\n### Market and Account Reads\n\n```ts\nsdk.marketStatus(mint, launchpadData?, user?);\nsdk.rawMarketStatus(mint, launchpadData?, user?);\nsdk.positionState(mint, user?);\nsdk.rawPosition(mint, user?);\nsdk.rawMarket(mint);\nsdk.rawOracle(mint);\nsdk.config();\nsdk.resolveMarket(mint, options?);\nsdk.detectMarket(mint);\n```\n\n### Price Pushes and Market Creation\n\n```ts\nsdk.getPricePushInstructions(mint, options?);\nsdk.getPricePushInstruction(mint, launchpadData?, user?);\nsdk.getCreateMarketInstructions(mint, launchpadData, user?, tokenStandard?);\n```\n\n### Routing\n\n```ts\nsdk.buildRoutingContext(\"USDT\" | \"USDC\" | \"SOL\", user, options?);\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}