Package Exports
- custodial-wallet
- custodial-wallet/custodialwallet.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (custodial-wallet) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Create EVM & Tron Wallet and Track Balance
This Node.js application tracks native cryptocurrency balances (such as ETH, BNB, MATIC, TRX) and specific token balances (ERC-20, BEP-20, TRC-20) for given wallet addresses on Ethereum, Binance Smart Chain (BSC), Polygon, and Tron networks.
Features
- Wallet Creation: Generate new wallet addresses for Ethereum-compatible (BSC, Polygon) and Tron networks.
- Native Balance Tracking: Track the native cryptocurrency balances (ETH, BNB, MATIC, TRX) of specific wallet addresses.
- Token Balance Tracking: Track balances of specific tokens (ERC-20, BEP-20, TRC-20) for specified wallet addresses.
- Automatic Payment Tracking: Automatically track incoming payments and token balances.
Technologies Used
- Node.js: Backend framework for running the server.
- Express.js: Web framework for handling HTTP requests.
- ethers.js: Library for interacting with Ethereum-compatible blockchains (BSC, Polygon).
- TronWeb: Library for interacting with the Tron blockchain.
Installation
Install package:
npm i custodial-wallet
Install dependencies:
npm install
Start the server:
node index.js
The server will start running on
http://localhost:3000
.
API Endpoints
1. Create Wallet
- URL:
/create-wallet
- Method:
GET
- Description: Generates new wallet addresses for Ethereum-compatible networks (BSC, Polygon) and Tron network.
Example Response:
{
"bsc": {
"address": "0xYourBscOrPolygonAddress",
"privateKey": "YourPrivateKey"
},
"polygon": {
"address": "0xYourPolygonAddress",
"privateKey": "YourPrivateKey"
},
"tron": {
"address": "TYourTronAddress",
"privateKey": "YourPrivateKey"
}
}
2. Start Tracking
URL: /start-tracking
Method: GET
- Query Parameters: address: The Ethereum/BSC/Polygon wallet address. tronAddress: The Tron wallet address. tokenAddress: The smart contract address of the token you want to track. tokenType: The type of token (ERC20, BEP20, TRC20).
Description: Starts tracking native and token balances for the specified wallet addresses.
Example Request:
GET /start-tracking?address=0xYourBscOrPolygonAddress&tronAddress=YourTronAddress&tokenAddress=0xYourTokenAddress&tokenType=ERC20
Example Response:
{
"message": "Started tracking payments and token balance for address 0xYourBscOrPolygonAddress",
"balances": {
"bsc": "0.1234",
"polygon": "0.5678",
"tron": "9.8765",
"token": "1000.00"
}
}
3. Check All Balances
URL: /check-all-balances
Method: GET
Query Parameters:
- address: The Ethereum/BSC/Polygon wallet address.
- tronAddress: The Tron wallet address.
- tokenAddress: The smart contract address of the token you want to track.
- tokenType: The type of token (ERC20, BEP20, TRC20).
Description: Manually checks and returns the current balances for native currencies and specified tokens.
Example Request:
GET /check-all-balances?address=0xYourBscOrPolygonAddress&tronAddress=YourTronAddress&tokenAddress=0xYourTokenAddress&tokenType=ERC20
Example Response:
{
"message": "Balances for address 0xYourBscOrPolygonAddress",
"balances": {
"bsc": "0.1234",
"polygon": "0.5678",
"tron": "9.8765",
"token": "1000.00"
}
}
4. Tracking Payments
The server will automatically track and log new payments and token balance changes every minute.
- Polling Interval: Every 60 seconds.
How It Works
- Create Wallets: You can generate new wallet addresses for BSC, Polygon, and Tron using the /create-wallet endpoint.
- Start Tracking: Start tracking a wallet's native and token balances using the /start-tracking endpoint.
- Check Balances: Manually check all balances using the /check-all-balances endpoint.
- ** Automatic Tracking:** The server checks for new payments and token balance changes every minute and logs any changes.
Limitations
- The application currently tracks only one token at a time per request.
- For tracking multiple tokens automatically, integration with an external service like Etherscan or BscScan would be required to fetch all tokens associated with a wallet.
Future Enhancements
- Automatic tracking of all tokens held by a wallet address.
- Integration with external APIs to fetch and display all tokens associated with a wallet.
- Enhanced error handling and logging.