Skip to content

High-level library useful for creating cryptocurrency bots.

License

Notifications You must be signed in to change notification settings

neauangle/botiq

Repository files navigation

BOTIQ

High-level node.js library useful for creating cryptocurrency bots and apps for the Binance CEX and Ethereum-compatible blockchains. Features automatic fiat conversions where available.

Binance Limit Buy Example

const connection = botiq.binance.createConnection({
    apiKey: 'PASTE_API_KEY_HERE',  
    apiSecret: 'PASTE_API_SECRET_HERE'
});

const ethTracker = await connection.createTracker({
    tokenSymbol: 'ETH', 
    comparatorSymbol: 'USDT'
});

await botiq.modules.awaitPriceMovement.awaitPriceFall({
    tracker: ethTracker,
    triggerPriceString: '10%'
});

const binanceBuyResult = await connection.buyTokensWithExact({
    tokenSymbol: ethTracker.token.symbol, 
    comparatorSymbol: ethTracker.comparator.symbol, 
    exactComparatorQuantity: '50%', //percentage of balance
});
console.log(binanceBuyResult);

Ethereum Limit Buy Example

const wallet = botiq.ethers.createWalletFromPrivateKey({
    privateKey: 'PASTE_PRIVATE_KEY_HERE'
}) 

const ethereumEndpoint = await botiq.ethers.createJsonRpcEndpoint({
    accessURL: 'PASTE_ACCESS_URL_HERE',
    rateLimitPerSecond: 2,
});

const tokenTracker = await ethereumEndpoint.createTracker({
    exchange: botiq.ethers.chains.ethereum.exchanges.uniswapV2,
    tokenAddress: 'PASTE_TOKEN_ADDRESS_HERE',
});

await botiq.modules.awaitPriceMovement.awaitPriceFall({
    tracker: tokenTracker,
    triggerPriceString: '10%',
});

const buyResult = await botiq.ethers.UniswapV2.buyTokensWithExact({
    tracker: tokenTracker,
    privateKey: wallet.privateKey, 
    exactComparatorQuantity: '-0.01', //use 100% of balance minus 0.01 
    slippagePercent: '1%',
});
console.log(buyResult);

See ./examples/ for more.

Notes

  • Has NOT undergone extensive testing.
  • The ethers backend will only work for factories and routers that abide by uniswap v2.
  • An informal TODO is in index.js. If you want to add to it, please make use of github's issue tracker.

Basic code structure

ethers.js and binance.js handle the specifics of their tokens, while common.js is the place to look for the actual tracker API. It should be quite easy to add CEXs if you make judicious use of common.massageCexMarketSwapData.

Supporting the Project

I am neither financially comfortable nor hungry. Donations support my work and are always greatly appreciated!

🙏 0xeF6102cf13Bf075BD5A61BBa1ec7E509899f7152 🙏

About

High-level library useful for creating cryptocurrency bots.

Resources

License

Stars

Watchers

Forks

Packages

No packages published