{"id":18707623,"url":"https://github.com/descartesnetwork/otc-sdk","last_synced_at":"2025-08-02T03:13:37.476Z","repository":{"id":45512062,"uuid":"513487444","full_name":"DescartesNetwork/otc-sdk","owner":"DescartesNetwork","description":"✨ Solana OTC Service SDK","archived":false,"fork":false,"pushed_at":"2022-11-20T07:57:42.000Z","size":113,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-25T13:56:40.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://otc.sentre.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DescartesNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-13T11:04:13.000Z","updated_at":"2022-07-14T02:27:56.000Z","dependencies_parsed_at":"2022-07-16T10:46:18.058Z","dependency_job_id":null,"html_url":"https://github.com/DescartesNetwork/otc-sdk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DescartesNetwork/otc-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesNetwork%2Fotc-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesNetwork%2Fotc-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesNetwork%2Fotc-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesNetwork%2Fotc-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DescartesNetwork","download_url":"https://codeload.github.com/DescartesNetwork/otc-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesNetwork%2Fotc-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268330934,"owners_count":24233152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T12:19:06.429Z","updated_at":"2025-08-02T03:13:37.443Z","avatar_url":"https://github.com/DescartesNetwork.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OTC SDK\n\n[![https://img.shields.io/npm/v/@sentre/otc-sdk](https://img.shields.io/npm/v/@sentre/otc-sdk)](https://www.npmjs.com/package/@sentre/otc-sdk)\n[![https://img.shields.io/npm/dw/@sentre/otc-sdk](https://img.shields.io/npm/dm/@sentre/otc-sdk)](https://www.npmjs.com/package/@sentre/otc-sdk)\n[![https://img.shields.io/bundlephobia/min/@sentre/otc-sdk](https://img.shields.io/bundlephobia/min/@sentre/otc-sdk)](https://www.npmjs.com/package/@sentre/otc-sdk)\n[![https://img.shields.io/github/issues-raw/descartesnetwork/otc-sdk](https://img.shields.io/github/issues-raw/descartesnetwork/otc-sdk)](https://github.com/DescartesNetwork/otc-sdk)\n[![https://img.shields.io/github/license/descartesnetwork/otc-sdk](https://img.shields.io/github/license/descartesnetwork/otc-sdk)](https://github.com/DescartesNetwork/otc-sdk)\n\n[![https://img.shields.io/twitter/follow/SentreProtocol?style=social](https://img.shields.io/twitter/follow/SentreProtocol?style=social)](https://twitter.com/SentreProtocol)\n\nSolana OTC Service SDK. Users can exchange SPL tokens for SOL even with no SOL for transaction fees. Currently, the service is available on **mainnet ONLY**.\n\n✨ Receive exactly desired amount of SOL. No slippage. No price impact.\n\n✨ Never care about transaction fees.\n\n✨ Zero down time.\n\n## Installation\n\n```bash\nnpm i @sentre/otc-sdk\n```\n\nor,\n\n```bash\nyarn add @sentre/otc-sdk\n```\n\n## Who are using?\n\n1. [Any Arts](https://hub.sentre.io/app/any_arts?autoInstall=true) - Buy NFTs on [Magic Eden](https://magiceden.io/) by your SPL tokens.\n2. [Sen Assets](https://hub.sentre.io/app/sen_assets?autoInstall=true) - Feel annoying to withdraw SOL from [Binance](https://www.binance.com/) for transaction fees on [Solana](https://solana.com/)? This app will let you exchange SPL tokens to SOL with no transaction fees.\n\n## Usage\n\n```ts\nimport { OTC } from '@sentre/otc-sdk'\n\nconst otc = new OTC()\n\n/**\n * Get whitelisted spl tokens\n * You can quick review whitelist by: https://cors.sentre.io/otc/whitelist\n */\nconst whitelist = await otc.getWhitelist()\n// {\n//   usdc: {\n//     address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n//     symbol: 'USDC',\n//     decimals: 6,\n//     url: 'https://www.circle.com/en/usdc',\n//   },\n//   uxd: {\n//     address: '7kbnvuGBxxj8AG9qp8Scn56muWGaRaFqxg1FsRp3PaFT',\n//     symbol: 'UXD',\n//     decimals: 6,\n//     url: 'https://uxd.fi/',\n//   }\n// }\n\n/**\n * Get SOL price based on USDC or UXD\n */\nconst solPriceBasedOnUSDC = await otc.getSolPrice({ tokenSymbol: 'usdc' })\n// {\n//   data: {\n//     id: 'So11111111111111111111111111111111111111112',\n//     mintSymbol: 'SOL',\n//     vsToken: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n//     vsTokenSymbol: 'USDC',\n//     price: 34.968693228,\n//   },\n//   timeTaken: 0.047694273001980036,\n// }\nconst solPriceBasedOnUXD = await otc.getSolPrice({ tokenSymbol: 'uxd' })\n// {\n//   data: {\n//     id: 'So11111111111111111111111111111111111111112',\n//     mintSymbol: 'SOL',\n//     vsToken: '7kbnvuGBxxj8AG9qp8Scn56muWGaRaFqxg1FsRp3PaFT',\n//     vsTokenSymbol: 'UXD',\n//     price: 34.972632341,\n//   },\n//   timeTaken: 0.010716108001361135,\n// }\n\n/**\n * Get exchange tx of usdc for 1 sol\n */\nconst wallet = \u003cYour_Wallet_Instance_Here\u003e\nconst tx = await otc.exchange({\n  walletAddress: wallet.publicKey.toBase58(),\n  tokenSymbol: 'usdc',\n  solAmount: 1\n})\nconst signedTx = await wallet.signTransaction(tx)\nconst txId = await sendTransaction(signedTx) // This function is just a pseudo-code and should replaced it by yours.\n```\n\n## Whitelist\n\n👉 Current whitelist: [https://cors.sentre.io/otc/whitelist](https://cors.sentre.io/otc/whitelist)\n\n👉 Wanna support more SPL tokens? Let's create a proposal here: [https://github.com/DescartesNetwork/otc-sdk](https://github.com/DescartesNetwork/otc-sdk/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdescartesnetwork%2Fotc-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdescartesnetwork%2Fotc-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdescartesnetwork%2Fotc-sdk/lists"}