Genesis Exchange Integration Guide
This document provides all the necessary technical instructions and API usage guidelines for integrating the Genesis Blockchain (Genesis) asset onto your exchange platform.
API Architecture: Our integration endpoint provides all necessary RPC-like functionalities through a modern, standard, and easy-to-use RESTful API. All responses are in application/json
format.
Security: All API requests must be made over HTTPS.
Rate Limiting: A rate limit of 30 requests per minute per IP address is enforced. Exceeding this limit will result in a 429 Too Many Requests
error response.
Step 1: Onboarding & Authentication
The first step is to obtain an API Key with corporate permissions. This is a straightforward self-service and approval process:
- Sign Up on the Dashboard: Log in or create a new account on the Genesis Dashboard.
- Generate Your API Key: Navigate to the API section within your dashboard and generate a new API Key (
X-API-KEY
). - Request Business Elevation: Contact the Genesis support team to request that your account be elevated to "Business" status. This is a required step to grant your API Key the necessary permissions for corporate actions, such as creating sub-wallets for your users.
⚠️ Important: Only after your account is approved as a Business account will your API Key be authorized to perform critical exchange operations.
Step 2: Deposit Process
Follow these steps to generate deposit addresses for your users and monitor for incoming funds.
2.1. Generate a Deposit Address
Call this endpoint to generate a unique deposit address for each of your users.
Endpoint: POST /api/advanced/wallet/create-sub
Header:
X-API-KEY: your_business_approved_api_key
Success Response:
{ "Address": "GNS...", "Mnemonic": "word1 word2 ... word12", "PrivateKey": "...", "PublicKey": "...", "CreatedAt": "..." }
🔥 CRITICAL: You must securely store the returned PrivateKey
and associate it with the user's account. This key grants full control over the funds in this address and is required for sweep operations.
2.2. Monitor for Deposits
Periodically poll this endpoint to check for new user deposits.
Endpoint: GET /api/advanced/balance/{walletAddress}
Success Response:
{ "Address": "GNS...", "Balance": 123.45 }
Step 3: Withdrawal Process
To process user withdrawals, you must use the signed transaction model. This is an industry-standard, highly secure method that ensures your hot wallet's private key never leaves your server environment.
3.1. Create and Sign the Transaction (On Your Server)
- Construct a plain text message string in the exact format:
"{senderAddress}->{receiverAddress}:{amount}"
. The amount must be a string formatted with a period as the decimal separator and up to 8 decimal places (e.g., "100.50"). - Sign this message string using the private key of your hot wallet to generate a signature.
3.2. Broadcast the Signed Transaction
Endpoint: POST /api/advanced/send
Request Body:
{ "senderAddress": "Your_Hot_Wallet_Address", "receiverAddress": "The_User_Withdrawal_Address", "amount": 100.50, "signature": "The_signature_generated_on_your_server" }
Success Response:
{ "transferId": 12345, "status": "queued" }
Step 4: Sweep Operations
To periodically consolidate funds from user deposit addresses into your main hot wallet (a "sweep"), you will use the same secure /api/advanced/send
endpoint from Step 3.
The process is identical, with one key difference in the signing step:
- senderAddress: The user deposit address you want to sweep funds from.
- receiverAddress: Your main hot wallet address.
- signature: To create the signature, you must use the
PrivateKey
you saved for that specific deposit address back in Step 2.1.
📚 General & Market Data API Endpoints
The following are general-purpose endpoints you can use to enrich your integration and provide real-time data to your users.
💰 Get Balance
Returns the current balance of any wallet address.
Endpoint: GET /api/advanced/balance/{walletAddress}
📈 Get Current Price
Returns the current market price of Genesis based on the last filled trade order.
Endpoint: GET /api/advanced/gns-price
📊 Get Chart Data
Provides kline (candlestick) data suitable for charting libraries like TradingView.
Endpoint: GET /api/advanced/chart-data?symbol=GNS_USDT&interval=1H&since={unix_timestamp_ms}
Supported intervals: 5m
, 15m
, 1H
, 4H
, 1D
.
📜 Get Transfer History
Lists the most recent incoming and outgoing transactions for a specified wallet address.
Endpoint: GET /api/advanced/transfers/{walletAddress}?limit=20
🧱 Get Block Details
Returns detailed information for a specific block (including transfers, confirmations, etc.) by its ID or hash.
Endpoint: GET /api/advanced/block/{hashOrId}