@algodex/algodex-sdk
Version:
API calls for interacting with the Algorand blockchain
160 lines (125 loc) • 4.73 kB
Markdown
[](https://github.com/semantic-release/semantic-release)
[](https://github.com/algodex/algodex-sdk/actions/workflows/ci.yml)
[//]: # ([](https://codeclimate.com/repos/62438536b3ae7671bd0005a9/maintainability))
[//]: # ([](https://codeclimate.com/repos/62438536b3ae7671bd0005a9/test_coverage))
Client-side JavaScript API calls for Algodex as an npm package
[](https://github.com/algodex/algodex-sdk)
[](https://docs-sdk.algodex.com/index.html)
[](https://github.com/algodex/algodex-sdk-examples)
[](https://docs.algodex.com/)
- [Node.js](https://nodejs.org/en/download/)
- [yarn](https://classic.yarnpkg.com/en/docs/install)
```shell
npm install @algodex/algodex-sdk
```
```shell
yarn add @algodex/algodex-sdk
```
> ⚠ The API resources must be accessible with valid credentials (where necessary).
The SDK fetches data from the following API resources:
- [Algorand Node](https://developer.algorand.org/docs/run-a-node/setup/install/)
- [Algorand Indexer](https://developer.algorand.org/docs/run-a-node/setup/indexer/)
- [AlgoExplorer Indexer](https://indexer.algoexplorerapi.io/rl/v1/search?keywords=724480511)
- [Algodex REST API](https://app.algodex.com/algodex-backend/assets.php?id=724480511)
The service URIs, token, port are passed into the AlgodexAPI constructor.
See [API Properties](https://docs-sdk.algodex.com/APIProperties.html) for more information
### ⚙ Example Testnet config.json
```json
{
"config": {
"algod": {
"uri": "https://testnet-algorand.api.purestake.io/ps2",
"token": "<TOKEN>"
},
"indexer": {
"uri": "https://algoindexer.testnet.algoexplorerapi.io",
"token": ""
},
"explorer": {
"uri": "https://indexer.testnet.algoexplorerapi.io",
"port": ""
},
"dexd": {
"apiVersion": 2,
"uri": "https://testnet.algodex.com/api/v2",
"token": ""
}
}
}
```
```json
{
"config": {
"algod": {
"uri": "https://mainnet-algorand.api.purestake.io/ps2",
"token": "<TOKEN>"
},
"indexer": {
"uri": "https://algoindexer.algoexplorerapi.io",
"token": ""
},
"explorer": {
"uri": "https://indexer.algoexplorerapi.io",
"port": ""
},
"dexd": {
"apiVersion": 2,
"uri": "https://app.algodex.com/api/v2",
"token": ""
}
}
}
```
```javascript
const config = require('./config.json')
const AlgodexAPI = require('@algodex/algodex-sdk')
const api = new AlgodexAPI(config)
```
> 💡️ We recommend reading the following links before placing your first order:
> [Maker Order](https://docs-sdk.algodex.com/tutorial-MakerOrder.html) | [Taker Order](https://docs-sdk.algodex.com/tutorial-TakerOrder.html) | [Orderbook](https://docs-sdk.algodex.com/tutorial-Orderbook.html)
```javascript
// Configure wallet
api.setWallet({
"type": "sdk",
"address": "WYWRYK42XADLY3O62N52BOLT27DMPRA3WNBT2OBRT65N6OEZQWD4OSH6PI",
"connector": require('@algodex/algodex-sdk/lib/wallet/connector/AlgoSDK'),
"mnemonic": "Your 25 word mneumonic goes here"
})
// Placing an Order
const orders = await api.placeOrder({
"asset": {
"id": 15322902, // Asset Index
"decimals": 6, // Asset Decimals
},
"address": "WYWRYK42XADLY3O62N52BOLT27DMPRA3WNBT2OBRT65N6OEZQWD4OSH6PI",
"price": 2.22, // Price in ALGOs
"amount": 1, // Amount to Buy or Sell
"execution": "maker", // Type of exeuction
"type": "buy", // Order Type
})
// Closing an Order
await api.closeOrder(orders[0])
```
All available execution types are found in the [Place Order Tutorial](https://docs-sdk.algodex.com/tutorial-PlacingOrder.html)
- [Discord](https://discord.com/invite/qS3Q7AqwF6)
- [Telegram](https://t.me/algodex)
- [Reddit](https://www.reddit.com/r/Algodex/)
- [Twitter](https://twitter.com/AlgodexOfficial)
- [Code of Conduct](CODE_OF_CONDUCT.md)
- [Contributing](.github/CONTRIBUTING.md)
- [Architecture Documentation](https://github.com/algodex/algodex-architecture)