From 85a33eaca45ec121f51a47d115278d4a8eeabdba Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 29 Oct 2024 12:55:08 -0400 Subject: [PATCH] add OKX OS (#1923) * add OKX OS * 1922 okx integration page (#1925) * add code to okxos.mdx * Update okxos.mdx * Update okxos.mdx * nit formatting * add disclaimer, change import to require * update note on API Key storage * update descriptions and add code * update code example description * update code snippets * add transaction checking * add get tx * add bash script * nit spelling * update conclusion * Update okxos.mdx * nit:formatting * fix broken links --------- Co-authored-by: Julian Martinez <73849597+Julian-dev28@users.noreply.github.com> --- content/integrations/goldrush.mdx | 13 +- content/integrations/okxos.mdx | 448 ++++++++++++++++++++++++++++++ public/images/okx.png | Bin 0 -> 57218 bytes 3 files changed, 454 insertions(+), 7 deletions(-) create mode 100644 content/integrations/okxos.mdx create mode 100644 public/images/okx.png diff --git a/content/integrations/goldrush.mdx b/content/integrations/goldrush.mdx index 28beeddc2ee..92e370d03bf 100644 --- a/content/integrations/goldrush.mdx +++ b/content/integrations/goldrush.mdx @@ -14,13 +14,12 @@ documentation: https://goldrush.dev/docs/ GoldRush (powered by Covalent) is a set of data tools that enable easy web3 development across [200+ supported blockchains](https://goldrush.dev/docs/networks) including the Avalanche C-Chain and several L1s/avalanche-l1s. ## Features -- [Wallet API](https://goldrush.dev/docs/api/balances/get-token-balances-for-address/): All token balances (ERC20, 721, 1155, native), token transfers and prices for a wallet. -- [Transactions API](https://goldrush.dev/docs/api/transactions/get-recent-transactions-for-address-v3/): All historical transactions with human-readable log events. Includes gas usage and spend summaries. -- [NFT API](https://goldrush.dev/docs/api/nft/get-nfts-for-address/): Media assets, metadata, sales, owners, trait & attribute filters, thumbnails & previews. -- [Cross-Chain Activity API](https://goldrush.dev/docs/api/base/get-address-activity/): Single API call to fetch a list of active chains and the latest transaction date on each for an address. -- [Security API](https://goldrush.dev/docs/api/security/get-token-approvals-for-address/): NFT and ERC20 token allowances, including value-at-risk. -- [Blockchain API](https://goldrush.dev/docs/api/base/get-log-events-by-contract-address/): Block details, log events by contract address or topic hash, gas prices, token prices and holders. - +- Wallet API: All token balances (ERC20, 721, 1155, native), token transfers and prices for a wallet. +- Transactions API: All historical transactions with human-readable log events. Includes gas usage and spend summaries. +- NFT API: Media assets, metadata, sales, owners, trait & attribute filters, thumbnails & previews. +- Cross-Chain Activity API: Single API call to fetch a list of active chains and the latest transaction date on each for an address. +- Security API: NFT and ERC20 token allowances, including value-at-risk. +- Blockchain API: Block details, log events by contract address or topic hash, gas prices, token prices and holders. ## Getting Started Sign up for a free [API Key](https://goldrush.dev/platform/auth/register/) diff --git a/content/integrations/okxos.mdx b/content/integrations/okxos.mdx new file mode 100644 index 00000000000..cadd5ae4175 --- /dev/null +++ b/content/integrations/okxos.mdx @@ -0,0 +1,448 @@ +--- +title: OKX OS +category: Wallet SDKs +available: ["C-Chain"] +description: A comprehensive onchain infrastructure suite for building and scaling applications. +logo: /images/okx.png +developer: OKX +website: https://www.okx.com/web3/build +documentation: https://www.okx.com/web3/build/docs/waas/okx-waas-what-is-waas +--- + +## Overview + +OKX OS is the most comprehensive onchain infrastructure suite that provides developers with a full set of tools, SDKs, and APIs to build and scale applications across over 100 chains without limitations. It leverages the same technology that powers the OKX Wallet, serving millions of users and processing more than 400 million daily API calls. + +## Features + +- **One-stop solution**: The most extensive suite of tools and APIs for building complex onchain experiences across any chain, from wallets to games, exchanges, and collections. +- **Multi-chain support and liquidity aggregation**: Access to over 100 chains and aggregate liquidity across multiple networks, DEXs, and major marketplaces for maximum flexibility and faster market entry. +- **Bitcoin-friendly**: Unique tools for Inscriptions, Ordinals, Runes, Fractal Bitcoin, and other emerging Bitcoin-based innovations. +- **Industry-leading security**: Leverages OKX's robust security measures and audited processes, enabling developers to build with confidence. +- **Proven scalability**: Designed for fast-growth applications, as evidenced by OKX's ecosystem serving millions of users and handling over 400 million daily API calls. + +## Getting Started + +Developers can start using OKX OS for free today by visiting the [OKX Build Portal](https://www.okx.com/web3/build). The platform provides comprehensive tools, SDKs, and APIs to help you quickly build and scale your applications across multiple chains. + +## Documentation + +For detailed documentation and guides, please visit the [OKX OS Documentation](https://www.okx.com/web3/build). + +## Use Cases + +- Building multi-chain wallets with seamless transaction management. +- Integrating cross-chain swaps and liquidity aggregation into decentralized applications. +- Creating NFT marketplaces with real-time data and marketplace integrations. +- Developing blockchain games with in-game asset management across 100+ chains. +- Accessing comprehensive onchain data APIs for actionable insights. + +### Building an On-Chain Data Dashboard for Avalanche C-Chain + +This guide walks you through setting up a dashboard to track wallet assets and transactions on the Avalanche C-Chain. You'll use OKX OS's Wallet API to fetch and display this data. + +#### Prerequisites +- [Node.js](https://nodejs.org/) installed on your system +- Basic understanding of JavaScript and async/await +- An OKX Developer account + +#### Setting Up Your Development Environment + +1. **Log in to the Developer Portal**: Sign up for an account on the [OKX Developer Portal](https://www.okx.com/web3/build/dev-portal). + +2. **Create a New Project**: Click on the `Create new project` button and fill in the required details. Once the project is created, you will recieve a `Project ID`. Keep it for future reference. + +3. **Generate API Keys**: Once your project is created, click the `Manage` and then `Create API key` buttons to create a new API key. Fill in the required details and click `Create`. You will receive an `API Key` and `API Secret`. Keep your `API Key`, `API Secret`, and `Passphrase` for future use. + +> **Note**: Keep your Project ID, API Key, Secret, and Passphrase secure by storing them in environment variables or a secure storage solution. It is recommended to never share these credentials publicly or commit them to your codebase. + +4. **Initialize a New Project**: +Run the following commands to create a new directory and initialize a Node.js project with default settings and required dependencies: + +```bash +mkdir avalanche-dashboard +cd avalanche-dashboard +npm init -y +npm install crypto-js +``` + +Create three script files: +```bash +touch createAccount.js getAssets.js getTx.js +``` + +## Create Wallet Account + +You'll start by creating an account to track your Avalanche addresses with a simple Node.js script that interacts with the OKX Wallet API. + +In the `createAccount.js` file: + +```javascript +const CryptoJS = require("crypto-js"); + +const createWallet = async () => { + // Generate timestamp in ISO format + const timestamp = new Date().toISOString(); + const method = "POST"; + const path = "/api/v5/wallet/account/create-wallet-account"; + + // Prepare the body first as we need it for signature + const body = { + addresses: [ + { + chainIndex: "43114", + address: "0x2eFB50e952580f4ff32D8d2122853432bbF2E204", + }, + // You can add more addresses and chain indexes + // { + // chainIndex: "1", + // address: "0x2eFB50e952580f4ff32D8d2122853432bbF2E204", + // }, + // { + // chainIndex: "43114", + // address: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + // }, + ], + }; + + // Generate signature + // timestamp + method + path + body + const signString = timestamp + method + path + JSON.stringify(body); + const signature = CryptoJS.enc.Base64.stringify( + CryptoJS.HmacSHA256(signString, "YOUR API SECRET KEY"), + ); + + const response = await fetch( + "https://www.okx.com/api/v5/wallet/account/create-wallet-account", + { + method: "POST", + headers: { + "Content-Type": "application/json", + "OK-ACCESS-PROJECT": "YOUR PROJECT ID", + "OK-ACCESS-KEY": "YOUR API KEY", + "OK-ACCESS-SIGN": signature, + "OK-ACCESS-PASSPHRASE": "YOUR API PASSPHRASE", + "OK-ACCESS-TIMESTAMP": timestamp, + }, + body: JSON.stringify(body), + }, + ); + + const data = await response.json(); + return data; +}; + +// Example usage: +createWallet() + .then((response) => console.log("Success:", response)) + .catch((error) => console.error("Error:", error)); +``` + +Before running the script, replace these placeholder values with your actual credentials: +```javascript +"YOUR API SECRET KEY" → Your API Secret +"YOUR PROJECT ID" → Your Project ID +"YOUR API KEY" → Your API Key +"YOUR API PASSPHRASE" → Your Passphrase +``` + +Run your script: +```bash +node createAccount.js +``` + +You should see a success message with the response data if the account is created successfully. + +For example, +```bash +Success: { code: '0', message: 'success', data: { accountId : 'Y7489xxxx-xxxx-xxxx-xxxx-xxxxxxaa652c' } } +``` + +## Check Wallet Assets + +Now that we have an account, you can fetch the token balances. This script will show you all tokens held by your tracked addresses. + +In your `getAssets.js` file: + +1. Copy this code to `getAssets.js`: + +```javascript +const CryptoJS = require("crypto-js"); + + const getRequestUrl = (baseUrl, path, params = null) => { + const url = new URL(baseUrl + path); + if (params) { + Object.keys(params).forEach((key) => + url.searchParams.append(key, params[key]), + ); + } + return url.toString(); + }; + + const apiBaseUrl = "https://www.okx.com"; + const getAssetsParams = { + accountId: "ACCOUNT ID FROM PREVIOUS STEP", // Replace with your accountId + }; + + const timestamp = new Date().toISOString(); + const method = "GET"; + const path = "/api/v5/wallet/asset/wallet-all-token-balances"; + const queryString = `?accountId=${getAssetsParams.accountId}`; + + // Generate signature + const signString = timestamp + method + path + queryString; + const signature = CryptoJS.enc.Base64.stringify( + CryptoJS.HmacSHA256(signString, "YOUR API SECRET KEY"), + ); + + const headersParams = { + "Content-Type": "application/json", + "OK-ACCESS-PROJECT": "YOUR PROJECT ID", + "OK-ACCESS-KEY": "YOUR API KEY", + "OK-ACCESS-SIGN": signature, + "OK-ACCESS-PASSPHRASE": "YOUR API PASSPHRASE", + "OK-ACCESS-TIMESTAMP": timestamp, + }; + + const getAssetsData = async () => { + const apiRequestUrl = getRequestUrl(apiBaseUrl, path, getAssetsParams); + + const response = await fetch(apiRequestUrl, { + method: "GET", + headers: headersParams, + }); + + return response.json(); + }; + + // Use it + getAssetsData() + .then(({ data }) => { + console.log("\n=== Wallet Assets ===\n"); + + data.forEach((wallet) => { + // Convert timestamp to readable date + const date = new Date(parseInt(wallet.timeStamp)); + console.log(`Last Updated: ${date.toLocaleString()}\n`); + + console.log("Token Assets:"); + wallet.tokenAssets.forEach((token) => { + console.log(` + Token: ${token.symbol} + Chain: ${token.chainIndex} + Balance: ${token.balance} + -----------------------------`); + }); + }); + }) + .catch((error) => console.error("Error:", error)); +``` + +Make sure to: +- Update the accountId with the one you received in Step 1 +- Replace the API credentials with yours + +Run the asset checker: +```bash +node getAssets.js +``` + +You should see the assets of the wallet account if the request is successful. + +For example, +```bash +=== Wallet Assets === + +Last Updated: 10/24/2024, 7:23:20 PM + +Token Assets: + +Token: AVAX +Chain: 43114 +Balance: 882338.9729422927 +----------------------------- + +Token: Sword +Chain: 43114 +Balance: 100000 +----------------------------- + +Token: ERGC +Chain: 43114 +Balance: 100000 +----------------------------- + + +Token: MILO +Chain: 43114 +Balance: 500000 +----------------------------- +``` + + +## View Transaction Details + +Finally, you can set up transaction viewing. This script provides detailed information about any transaction on the Avalanche C-Chain. + +In your `getTx.js` file: + + +```javascript +const CryptoJS = require("crypto-js"); + +const getRequestUrl = (baseUrl, path, params = null) => { + const url = new URL(baseUrl + path); + if (params) { + Object.keys(params).forEach((key) => + url.searchParams.append(key, params[key]), + ); + } + return url.toString(); +}; + +const apiBaseUrl = "https://www.okx.com"; +const params = { + txHash: '0xaf54d1cb2c21bed094095bc503ec76128f80c815db8631fd74c6e49781b94bd1', // Changed from txhash to txHash + chainIndex: '43114' +}; + +const timestamp = new Date().toISOString(); +const method = "GET"; +const path = '/api/v5/wallet/post-transaction/transaction-detail-by-txhash'; +const queryString = `?txHash=${params.txHash}&chainIndex=${params.chainIndex}`; // Changed from txhash to txHash + +const signString = timestamp + method + path + queryString; +const signature = CryptoJS.enc.Base64.stringify( + CryptoJS.HmacSHA256(signString, "YOUR API SECRET"), +); + +const headersParams = { + "Content-Type": "application/json", + "OK-ACCESS-PROJECT": "YOUR PROJECT ID", + "OK-ACCESS-KEY": "YOUR API KEY", + "OK-ACCESS-SIGN": signature, + "OK-ACCESS-PASSPHRASE": "YOUR API PASSPHRASE", + "OK-ACCESS-TIMESTAMP": timestamp, +}; + +const getTransactionDetailData = async () => { + const apiRequestUrl = getRequestUrl(apiBaseUrl, path, params); + + const response = await fetch(apiRequestUrl, { + method: "GET", + headers: headersParams, + }); + + return response.json(); +}; + +const formatDate = (timestamp) => { + return new Date(parseInt(timestamp)).toLocaleString(); +}; + +const formatGas = (gas) => { + return parseFloat(gas).toLocaleString(); +}; + +getTransactionDetailData() + .then((response) => { + console.log('\n=== Transaction Details ===\n'); + + if (response.code === "0" && response.data && response.data.length > 0) { + const tx = response.data[0]; + + // Transaction Basic Info + console.log('📝 Basic Information'); + console.log('------------------'); + console.log(`Hash: ${tx.txhash}`); + console.log(`Status: ${tx.txStatus.toUpperCase()}`); + console.log(`Block: ${formatGas(tx.height)}`); + console.log(`Time: ${formatDate(tx.txTime)}`); + console.log(`Method ID: ${tx.methodId}`); + console.log(`Chain: ${tx.chainIndex} (${tx.symbol})`); + + // Gas Info + console.log('\n⛽ Gas Information'); + console.log('----------------'); + console.log(`Gas Limit: ${formatGas(tx.gasLimit)}`); + console.log(`Gas Used: ${formatGas(tx.gasUsed)}`); + console.log(`Gas Price: ${formatGas(tx.gasPrice)} Wei`); + console.log(`Nonce: ${tx.nonce}`); + + // From Address + console.log('\n📤 From Address'); + console.log('-------------'); + tx.fromDetails.forEach(from => { + console.log(`Address: ${from.address}`); + console.log(`Type: ${from.isContract ? 'Contract' : 'Wallet'}`); + }); + + // To Address + console.log('\n📥 To Address'); + console.log('-----------'); + tx.toDetails.forEach(to => { + console.log(`Address: ${to.address}`); + console.log(`Type: ${to.isContract ? 'Contract' : 'Wallet'}`); + }); + + // Token Transfers + if (tx.tokenTransferDetails && tx.tokenTransferDetails.length > 0) { + console.log('\n🔄 Token Transfers'); + console.log('---------------'); + tx.tokenTransferDetails.forEach((transfer, index) => { + console.log(`\nTransfer #${index + 1}:`); + console.log(`Token: ${transfer.symbol}`); + console.log(`Amount: ${transfer.amount}`); + console.log(`From: ${transfer.from} ${transfer.isFromContract ? '(Contract)' : '(Wallet)'}`); + console.log(`To: ${transfer.to} ${transfer.isToContract ? '(Contract)' : '(Wallet)'}`); + console.log(`Contract: ${transfer.tokenContractAddress}`); + }); + } + + // Internal Transactions (if any) + if (tx.internalTransactionDetails && tx.internalTransactionDetails.length > 0) { + console.log('\n💱 Internal Transactions'); + console.log('--------------------'); + tx.internalTransactionDetails.forEach((internal, index) => { + console.log(`\nInternal Transfer #${index + 1}:`); + console.log(`From: ${internal.from}`); + console.log(`To: ${internal.to}`); + console.log(`Amount: ${internal.amount} ${tx.symbol}`); + console.log(`Status: ${internal.state}`); + }); + } + + } else { + console.log('Status:', response.code); + console.log('Message:', response.msg); + console.log('Data:', response.data); + } + }) + .catch(error => console.error('Error:', error)); +``` + +Update the script with: +- Your API credentials +- Any transaction hash you want to investigate + +Check a transaction: +```bash +node getTx.js +``` + +You'll see a detailed breakdown including: +- Transaction basics +- Gas info +- Addresses involved +- Token transfers +- Internal transactions + +## Conclusion + +The Wallet API is one of 4 strong pillars within the OKX OS infrastructure, complemented by the [DEX API] for decentralized trading capabilities, the [Marketplace API] for NFT functionalities, and the [Explorer API] for comprehensive blockchain data access and analysis. Together, these APIs form a complete toolkit that enables developers to build sophisticated Web3 applications with enterprise-grade reliability and performance. + +By leveraging OKX OS's powerful infrastructure suite, developers can build and scale innovative onchain applications quickly and efficiently. With its extensive tools, multi-chain support, and proven scalability, OKX OS continues to drive the future of Web3 development, making it easier than ever to create seamless experiences across the blockchain ecosystem. + +[DEX API]: https://www.okx.com/web3/build/docs/waas/dex-introduction +[Marketplace API]: https://www.okx.com/web3/build/docs/waas/marketplace-introduction +[Explorer API]: https://www.oklink.com/docs/en/#introduction \ No newline at end of file diff --git a/public/images/okx.png b/public/images/okx.png new file mode 100644 index 0000000000000000000000000000000000000000..76431d533f6ad4985a344374dfb97281821d1311 GIT binary patch literal 57218 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 n*J~0*A^=$TdQBn#>Mi~MeHM#XX}