Quick Start
Get up and running with the Chainworks API in just a few minutes.
Prerequisites
- Node.js 18+ or Python 3.8+
- Chainworks API credentials (API URL and Auth Token)
- Basic understanding of WebSocket communication
Installation
TypeScript/JavaScript
bash
npm install socket.io-clientPython
bash
pip install python-socketioConnecting to the API
The Chainworks API uses WebSocket connections via Socket.IO. This provides real-time, bidirectional communication with low latency.
TypeScript
typescript
import { io } from "socket.io-client";
const CHAINWORKS_API_URL = "https://api.chainworks.co";
const CHAINWORKS_API_AUTH_TOKEN = "your-auth-token";
const socket = io(CHAINWORKS_API_URL, {
transports: ["websocket"],
auth: {
token: CHAINWORKS_API_AUTH_TOKEN,
},
});
socket.on("connect", () => {
console.log("Connected to Chainworks API");
});
socket.on("connect_error", (error) => {
console.error("Connection failed:", error.message);
});
socket.on("disconnect", (reason) => {
console.log("Disconnected:", reason);
});Python
python
import socketio
CHAINWORKS_API_URL = "https://api.chainworks.co"
CHAINWORKS_API_AUTH_TOKEN = "your-auth-token"
sio = socketio.Client()
@sio.event
def connect():
print("Connected to Chainworks API")
@sio.event
def connect_error(data):
print(f"Connection failed: {data}")
@sio.event
def disconnect():
print("Disconnected")
sio.connect(
CHAINWORKS_API_URL,
transports=["websocket"],
auth={"token": CHAINWORKS_API_AUTH_TOKEN}
)Your First Request
Let's get a buy quote for a token on Ethereum:
TypeScript
typescript
// Request a buy quote
socket.emit("/evm/buy/quote", {
chain: "eth",
token: "0x6982508145454Ce325dDbE47a25d4ec3d2311933", // PEPE
swapMode: "ExactIn",
amountIn: "1000000000000000000", // 1 ETH in wei
wallet: "0xYourWalletAddress",
});
// Listen for the response
socket.on("/evm/buy/quote", (response) => {
if (response.success) {
console.log("Price:", response.result.price);
console.log("Expected output:", response.result.expectedAmountOut);
console.log("Price impact:", response.result.priceImpact);
} else {
console.error("Error:", response.error.message);
}
});Python
python
@sio.on("/evm/buy/quote")
def on_quote(response):
if response.get("success"):
result = response["result"]
print(f"Price: {result['price']}")
print(f"Expected output: {result['expectedAmountOut']}")
print(f"Price impact: {result['priceImpact']}")
else:
print(f"Error: {response['error']['message']}")
sio.emit("/evm/buy/quote", {
"chain": "eth",
"token": "0x6982508145454Ce325dDbE47a25d4ec3d2311933",
"swapMode": "ExactIn",
"amountIn": "1000000000000000000",
"wallet": "0xYourWalletAddress"
})Response Format
All API responses follow a consistent format:
Success Response
json
{
"success": true,
"result": {
// Response data specific to the endpoint
}
}Error Response
json
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable error description"
},
"partialResult": {
// Optional helpful data even when request fails
}
}Next Steps
- Authentication - Learn about token authentication
- EVM Endpoints - Explore Ethereum, Base, and BSC endpoints
- SVM Endpoints - Explore Solana endpoints
- Playground - Test the API interactively