{"_id":"100x-sdk","_rev":"3-2f3658a3905416f0099da4d4a06cfb89","name":"100x-sdk","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.1":{"name":"100x-sdk","version":"1.0.1","keywords":["solana","anchor","blockchain","sdk"],"author":"","license":"MIT","_id":"100x-sdk@1.0.1","maintainers":[{"name":"duckisboss","email":"jackisboss578@gmail.com"}],"dist":{"shasum":"aa2b13e06fee8fe2f0a974436c5efe709c1fa4cf","tarball":"https://registry.npmjs.org/100x-sdk/-/100x-sdk-1.0.1.tgz","fileCount":31,"integrity":"sha512-ztN46DurNOGFfj/rQ/JRolhvyl5mjyrNclV/NvIq9hMtoumhqzUFNIGW8/KF4nlRtnK5RPjotffA86AO44Fa6w==","signatures":[{"sig":"MEQCIAFNsB6+JP20qSqAhjXSRApinsRMm8xJqW6g1Sia7OPyAiAj2KAGwWI9I3JoEcngfTOzYhgDpz2XdigfHUZg4NazLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8209847},"main":"dist/100x-sdk.cjs.js","types":"dist/index.d.ts","module":"dist/100x-sdk.esm.js","browser":"dist/100x-sdk.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/100x-sdk.esm.js","browser":"./dist/100x-sdk.js","default":"./dist/100x-sdk.esm.js","require":"./dist/100x-sdk.cjs.js"}},"gitHead":"eb3e4cf8d43ec2bb41d4c9fb8c41f82b41bfd253","scripts":{"lint":"eslint src","test":"mocha tests/unit/**/*.test.js","build":"rollup -c","prebuild":"mkdir -p dist","build:dev":"rollup -c -w","build:types":"cp src/types/index.d.ts dist/index.d.ts","test:integration":"mocha tests/integration/**/*.test.js"},"_npmUser":{"name":"duckisboss","email":"jackisboss578@gmail.com"},"_npmVersion":"11.7.0","description":"Solana 100x.fun SDK","directories":{},"sideEffects":false,"_nodeVersion":"24.10.0","dependencies":{"bs58":"^4.0.1","axios":"^1.11.0","buffer":"^6.0.3","decimal.js":"^10.6.0","node-fetch":"^3.3.2","json-bigint":"^1.0.0","@solana/web3.js":"^1.78.0","isomorphic-fetch":"^3.0.0","@coral-xyz/anchor":"^0.31.1","@solana/spl-token":"^0.4.13","@pythnetwork/client":"^2.22.1"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","mocha":"^10.2.0","eslint":"^9.0.0","rimraf":"^5.0.5","rollup":"^2.79.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","@rollup/plugin-commonjs":"^24.1.0","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-polyfill-node":"^0.13.0"},"_npmOperationalInternal":{"tmp":"tmp/100x-sdk_1.0.1_1782047406647_0.09247323576421684","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"100x-sdk","version":"1.0.2","keywords":["solana","anchor","blockchain","sdk"],"author":"","license":"MIT","_id":"100x-sdk@1.0.2","maintainers":[{"name":"duckisboss","email":"jackisboss578@gmail.com"}],"dist":{"shasum":"e7f81dd4a1005617296a1ecf699ce3c983228c27","tarball":"https://registry.npmjs.org/100x-sdk/-/100x-sdk-1.0.2.tgz","fileCount":31,"integrity":"sha512-nFfCaRYvuxwkh7Gti469e7wnxHKvcT5ddvYn6YBRGz7na9i68Lmq5T5OdK/njUmPalRMUEQz/cWYaqpXIKztkw==","signatures":[{"sig":"MEQCIAIMjTuecWwU6b/sBj2+Ycei9ablk+u8s1qTlMHYV4UjAiABIUOWpQIgF0whSwr7qFIvPL0eJ4jSES7xKyvW/XHiHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8225762},"main":"dist/100x-sdk.cjs.js","types":"dist/index.d.ts","module":"dist/100x-sdk.esm.js","browser":"dist/100x-sdk.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/100x-sdk.esm.js","browser":"./dist/100x-sdk.js","default":"./dist/100x-sdk.esm.js","require":"./dist/100x-sdk.cjs.js"}},"gitHead":"30c8b8931da701cdb3b51c2a8c87d6dc59e8056a","scripts":{"lint":"eslint src","test":"mocha tests/unit/**/*.test.js","build":"rollup -c","prebuild":"mkdir -p dist","build:dev":"rollup -c -w","build:types":"cp src/types/index.d.ts dist/index.d.ts","test:integration":"mocha tests/integration/**/*.test.js"},"_npmUser":{"name":"duckisboss","email":"jackisboss578@gmail.com"},"_npmVersion":"11.7.0","description":"Solana 100x.fun SDK","directories":{},"sideEffects":false,"_nodeVersion":"24.10.0","dependencies":{"bs58":"^4.0.1","axios":"^1.11.0","buffer":"^6.0.3","decimal.js":"^10.6.0","node-fetch":"^3.3.2","json-bigint":"^1.0.0","@solana/web3.js":"^1.78.0","isomorphic-fetch":"^3.0.0","@coral-xyz/anchor":"^0.31.1","@solana/spl-token":"^0.4.13","@pythnetwork/client":"^2.22.1"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","mocha":"^10.2.0","eslint":"^9.0.0","rimraf":"^5.0.5","rollup":"^2.79.1","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","@rollup/plugin-commonjs":"^24.1.0","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-polyfill-node":"^0.13.0"},"_npmOperationalInternal":{"tmp":"tmp/100x-sdk_1.0.2_1782811614945_0.37526584131054963","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"100x-sdk","version":"1.0.3","description":"Solana 100x.fun SDK","main":"dist/100x-sdk.cjs.js","module":"dist/100x-sdk.esm.js","browser":"dist/100x-sdk.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","browser":"./dist/100x-sdk.js","import":"./dist/100x-sdk.esm.js","require":"./dist/100x-sdk.cjs.js","default":"./dist/100x-sdk.esm.js"}},"sideEffects":false,"scripts":{"prebuild":"mkdir -p dist","build":"rollup -c","build:dev":"rollup -c -w","build:types":"cp src/types/index.d.ts dist/index.d.ts","test":"mocha tests/unit/**/*.test.js","test:integration":"mocha tests/integration/**/*.test.js","lint":"eslint src"},"keywords":["solana","anchor","blockchain","sdk"],"author":"","license":"MIT","dependencies":{"@coral-xyz/anchor":"^0.31.1","@pythnetwork/client":"^2.22.1","@solana/spl-token":"^0.4.13","@solana/web3.js":"^1.78.0","axios":"^1.11.0","bs58":"^4.0.1","buffer":"^6.0.3","decimal.js":"^10.6.0","isomorphic-fetch":"^3.0.0","json-bigint":"^1.0.0","node-fetch":"^3.3.2"},"devDependencies":{"@rollup/plugin-commonjs":"^24.1.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-replace":"^5.0.5","@rollup/plugin-terser":"^0.4.4","eslint":"^9.0.0","glob":"^10.3.10","mocha":"^10.2.0","rimraf":"^5.0.5","rollup":"^2.79.1","rollup-plugin-polyfill-node":"^0.13.0"},"engines":{"node":">=14.0.0"},"gitHead":"b190ad8018a45a9f05e29174f14fa0fc2fc1aa07","_id":"100x-sdk@1.0.3","_nodeVersion":"24.10.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-pQYuBiDo61yFTEFC0631yHigQ6Yr0/rRpP1aJintY8rwDe6VbAx7maMMEwPUTxtpLDx83cnV5ngtFdKQC+3J2g==","shasum":"b40d69f2f18a958f9164c95b6bca16cb7e71f5c5","tarball":"https://registry.npmjs.org/100x-sdk/-/100x-sdk-1.0.3.tgz","fileCount":31,"unpackedSize":8265065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCRk/DgUDDTbFCeJhHtvpegc5CtO/ij7GKgUSJzFWOsfwIhAN/O8tW7QOfjBVntMZ3XZZyxlnVhm3xbiidSNe8eqA7I"}]},"_npmUser":{"name":"duckisboss","email":"jackisboss578@gmail.com"},"directories":{},"maintainers":[{"name":"duckisboss","email":"jackisboss578@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/100x-sdk_1.0.3_1782820886053_0.11815148507754358"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T13:10:06.491Z","modified":"2026-06-30T12:01:26.387Z","1.0.1":"2026-06-21T13:10:06.821Z","1.0.2":"2026-06-30T09:26:55.224Z","1.0.3":"2026-06-30T12:01:26.251Z"},"license":"MIT","keywords":["solana","anchor","blockchain","sdk"],"description":"Solana 100x.fun SDK","maintainers":[{"name":"duckisboss","email":"jackisboss578@gmail.com"}],"readme":"# 100x SDK\n\nA JavaScript/TypeScript SDK for interacting with the 100x protocol on the Solana blockchain. Supports both Node.js and browser environments, providing modular functionality for trading, token management, order management, and more.\n\n[![npm version](https://img.shields.io/npm/v/100x-sdk.svg)](https://www.npmjs.com/package/100x-sdk)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n## Features\n\n- =� **Spot Trading**: Direct buy and sell operations for tokens\n- =� **Margin Trading**: Leverage trading with long/short positions\n- =\u0004 **Dual Data Sources**: Fast API and reliable on-chain data access\n- =� **Token Creation**: Create and launch new tokens on the protocol\n- <� **Trade Simulation**: Pre-calculate slippage and costs before execution\n- =�\u000f **Comprehensive Tooling**: Order management, AMM calculations, and utilities\n- <\u0010 **Cross-Platform**: Works in Node.js and modern browsers\n- =� **Modular Design**: Clean, intuitive API with separate functional modules\n\n## Installation\n\n```bash\nnpm install 100x-sdk @solana/web3.js @coral-xyz/anchor\n```\n\nor with Yarn:\n\n```bash\nyarn add 100x-sdk @solana/web3.js @coral-xyz/anchor\n```\n\n## Quick Start\n\n```javascript\nconst { Fun100xSdk, getDefaultOptions, FUN100X_PROGRAM_ID } = require('100x-sdk');\nconst { Connection } = require('@solana/web3.js');\nconst anchor = require('@coral-xyz/anchor');\n\n// 1. Get network configuration\nconst options = getDefaultOptions('MAINNET'); // or 'DEVNET', 'LOCALNET'\n\n// 2. Create connection\nconst connection = new Connection(options.solanaEndpoint, 'confirmed');\n\n// 3. Initialize SDK\nconst sdk = new Fun100xSdk(connection, FUN100X_PROGRAM_ID, options);\n\n// 4. Example: Buy tokens\nconst result = await sdk.trading.buy({\n  mintAccount: \"TOKEN_ADDRESS\",\n  buyTokenAmount: new anchor.BN('1000000'), // 1 token (6 decimals)\n  maxSolAmount: new anchor.BN('2000000000'), // 2 SOL (9 decimals)\n  payer: wallet.publicKey\n});\n\n// 5. Sign and send transaction\nresult.transaction.feePayer = wallet.publicKey;\nresult.transaction.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;\nresult.transaction.sign(wallet);\n\nconst signature = await connection.sendRawTransaction(result.transaction.serialize());\nawait connection.confirmTransaction(signature);\n\nconsole.log('Transaction successful!', signature);\n```\n\n## SDK Architecture\n\nThe SDK is organized into functional modules, all accessible through the main `Fun100xSdk` class:\n\n```javascript\nconst sdk = new Fun100xSdk(connection, FUN100X_PROGRAM_ID, options);\n\n// Trading operations\nawait sdk.trading.buy({...});\nawait sdk.trading.sell({...});\nawait sdk.trading.long({...});\nawait sdk.trading.short({...});\n\n// Data access (unified interface)\nconst orders = await sdk.data.orders(mint, { type: 'down_orders' });\nconst price = await sdk.data.price(mint);\n\n// Token creation\nawait sdk.token.create({...});\n\n// Trade simulation\nconst simulation = await sdk.simulator.simulateTokenBuy(mint, amount);\n\n// Utility tools\nawait sdk.tools.approveTrade({...});\n```\n\n## Module Overview\n\n| Module | Purpose | Key Methods |\n|--------|---------|-------------|\n| **TradingModule** | Execute trades | `buy`, `sell`, `long`, `short`, `closeLong`, `closeShort` |\n| **FastModule** | API data access | `mints`, `mint_info`, `orders`, `price`, `user_orders` |\n| **ChainModule** | On-chain data | `getCurveAccount`, `orders`, `price`, `user_orders` |\n| **TokenModule** | Token creation | `create`, `createAndBuy` |\n| **ParamModule** | Parameter management | `createParams`, `getParams`, `getAdmin` |\n| **SimulatorModule** | Trade simulation | `simulateTokenBuy`, `simulateTokenSell`, `simulateLongStopLoss` |\n| **ToolsModule** | Utility functions | `approveTrade`, `closeTradeCooldown`, `validateCooldown` |\n| **CurveAMM** | AMM calculations | `u128ToDecimal`, `buyFromPriceToPrice`, `sellFromPriceToPrice` |\n\n## Documentation\n\n### Quick Reference\n\n- =� **[Quick Start Guide](./doc/01-quick-start.md)** - Get up and running quickly\n- <�\u000f **[SDK Main Class](./doc/02-100x-sdk-main-class.md)** - Core initialization and configuration\n- =� **[Complete Documentation Index](./doc/README.md)** - Full documentation table of contents\n\n### Core Modules\n\n- **[Trading Module](./doc/03-trading-module.md)** - Spot and margin trading operations _(Translation in progress)_\n- **[Fast Module](./doc/04-fast-module.md)** - API-based data access _(Translation in progress)_\n- **[Chain Module](./doc/05-chain-module.md)** - On-chain data reading _(Translation in progress)_\n- **[Token Module](./doc/06-token-module.md)** - Token creation and management\n- **[Param Module](./doc/07-param-module.md)** - Partner parameter management\n- **[Simulator Module](./doc/08-simulator-module.md)** - Trade simulation and calculations _(Translation in progress)_\n\n### Utilities\n\n- **[CurveAMM Utility](./doc/09-curve-amm-utility.md)** - AMM curve calculations _(Translation in progress)_\n- **[Constants & Helpers](./doc/10-constants-and-helpers.md)** - Configuration and helper functions\n- **[Tools Module](./doc/11-tools-module.md)** - Trading utilities and cooldown management\n- **[Position Tab Guide](./doc/position-tab-guide.md)** - UI integration guide for positions\n\n### Language Options\n\n- <�<� **English Documentation**: [./doc/](./doc/) (Current)\n- <�<� **-��c**: [./doc_cn/](./doc_cn/)\n\n## Network Configuration\n\nThe SDK supports three network environments:\n\n```javascript\n// Mainnet (Production)\nconst mainnetOptions = getDefaultOptions('MAINNET');\n\n// Devnet (Testing)\nconst devnetOptions = getDefaultOptions('DEVNET');\n\n// Localnet (Local Development)\nconst localnetOptions = getDefaultOptions('LOCALNET');\n```\n\n## Data Source Options\n\nChoose between fast API access or reliable on-chain reading:\n\n```javascript\n// Fast API (default) - Quick responses, slight latency\nconst sdk = new Fun100xSdk(connection, FUN100X_PROGRAM_ID, {\n  ...options,\n  defaultDataSource: 'fast'\n});\n\n// On-chain direct reading - More reliable, slower\nconst sdk = new Fun100xSdk(connection, FUN100X_PROGRAM_ID, {\n  ...options,\n  defaultDataSource: 'chain'\n});\n\n// Or switch temporarily per call\nconst orders = await sdk.data.orders(mint, {\n  type: 'down_orders',\n  dataSource: 'chain' // Override default\n});\n```\n\n## Key Concepts\n\n### Precision Handling\n\n- **SOL**: 9 decimal places (lamports) - `1 SOL = 1,000,000,000 lamports`\n- **Tokens**: 6 decimal places - `1 Token = 1,000,000 units`\n- **Price**: u128 format with 28-digit precision\n\n```javascript\n// SOL amounts\nconst oneSol = new anchor.BN('1000000000'); // 1 SOL\n\n// Token amounts\nconst oneToken = new anchor.BN('1000000'); // 1 Token\n\n// Price conversion\nconst { CurveAMM } = require('100x-sdk');\nconst decimalPrice = CurveAMM.u128ToDecimal(priceU128);\nconst priceU128 = CurveAMM.decimalToU128(decimalPrice);\n```\n\n### Transaction Signing\n\nThe SDK returns unsigned transactions for security and wallet compatibility:\n\n```javascript\n// SDK builds the transaction\nconst result = await sdk.trading.buy({...});\n\n// You control the signing\nresult.transaction.feePayer = wallet.publicKey;\nresult.transaction.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;\n\n// Sign with your wallet\nconst signature = await wallet.sendTransaction(result.transaction, connection);\n```\n\n## Example Use Cases\n\n### Spot Trading\n\n```javascript\n// Buy tokens\nconst buyResult = await sdk.trading.buy({\n  mintAccount: mint,\n  buyTokenAmount: new anchor.BN('1000000'),\n  maxSolAmount: new anchor.BN('2000000000'),\n  payer: wallet.publicKey\n});\n\n// Sell tokens\nconst sellResult = await sdk.trading.sell({\n  mintAccount: mint,\n  sellTokenAmount: new anchor.BN('1000000'),\n  minSolOutput: new anchor.BN('1800000000'),\n  payer: wallet.publicKey\n});\n```\n\n### Margin Trading\n\n```javascript\n// Open long position\nconst longResult = await sdk.trading.long({\n  mintAccount: mint,\n  buyTokenAmount: new anchor.BN('10000000'),\n  maxSolAmount: new anchor.BN('20000000000'),\n  marginSol: new anchor.BN('5000000000'),\n  closePrice: new anchor.BN('...'),\n  closeInsertIndices: [...],\n  payer: wallet.publicKey\n});\n\n// Close long position\nconst closeResult = await sdk.trading.closeLong({\n  mintAccount: mint,\n  sellTokenAmount: new anchor.BN('10000000'),\n  minSolOutput: new anchor.BN('18000000000'),\n  closeOrderId: orderId,\n  closeOrderIndices: [...],\n  payer: wallet.publicKey,\n  userSolAccount: orderOwner\n});\n```\n\n### Data Queries\n\n```javascript\n// Get token list\nconst tokens = await sdk.fast.mints({ limit: 10 });\n\n// Get token price\nconst price = await sdk.data.price(mint);\n\n// Get orders\nconst orders = await sdk.data.orders(mint, { type: 'down_orders' });\n\n// Get user orders\nconst userOrders = await sdk.data.user_orders(userAddress, mint);\n```\n\n### Trade Simulation\n\n```javascript\n// Simulate buy before execution\nconst simulation = await sdk.simulator.simulateTokenBuy(mint, buyTokenAmount);\n\nconsole.log('Completion:', simulation.completion + '%');\nconsole.log('Slippage:', simulation.slippage + '%');\nconsole.log('Suggested SOL:', simulation.suggestedSolAmount);\n\n// Use simulation results in actual trade\nconst result = await sdk.trading.buy({\n  mintAccount: mint,\n  buyTokenAmount: new anchor.BN(buyTokenAmount),\n  maxSolAmount: new anchor.BN(simulation.suggestedSolAmount),\n  payer: wallet.publicKey\n});\n```\n\n## Development\n\n### Build\n\n```bash\nnpm run build          # Build all distribution formats (CJS, ESM, UMD)\nnpm run build:dev      # Watch mode for development\n```\n\n### Testing\n\n```bash\n# Run individual test files\nnode tests/example-trading-buy.js\nnode tests/test-closeShort.js\n\n# Standard test commands (coming soon)\nnpm test\n```\n\n### Linting\n\n```bash\nnpm run lint\n```\n\n## Important Notes\n\n1. **Data Source Selection**\n   - `fast` (API) - Fast responses, may have slight delays during peak times\n   - `chain` (Direct) - More reliable, slower, no third-party dependencies\n\n2. **Transaction Signing**\n   - SDK returns unsigned transactions\n   - Signing must be done externally for security\n   - Compatible with hardware wallets and browser extensions\n\n3. **Error Handling**\n   - All async methods can throw exceptions\n   - Always implement proper error handling\n   - Use try-catch blocks around SDK calls\n\n4. **Precision**\n   - Always use `anchor.BN` for amounts\n   - Remember decimal places: SOL (9), Token (6)\n   - Use CurveAMM utilities for price conversions\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Support\n\n- **Documentation**: [./doc/README.md](./doc/README.md)\n- **Issues**: [GitHub Issues](https://github.com/your-org/100x-sdk/issues)\n- **Discord**: [Join our community](https://discord.gg/spinpet)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Related Links\n\n- [100x Protocol](https://100x.fun)\n- [Solana Documentation](https://docs.solana.com)\n- [Anchor Framework](https://www.anchor-lang.com)\n\n---\n\n**Version**: 2.0.0\n**Last Updated**: 2024-12-09\n","readmeFilename":"README.md"}