LogoLogo
X👾💡🎒
Tài liệu Hỗ trợ Tiếng Việt
  • Support Docs
  • Technical Docs
  • API Docs
  • Bắt Đầu Tại Đây
    • Downloads
  • Sàn Giao Dịch
    • Đăng nhập và Bảo mật
      • Yêu cầu xác minh danh tính tài khoản
      • Đặt Lại Mật Khẩu
      • Mã OTP
      • Đặt Lại 2FA
      • Tôi nghi ngờ có người truy cập trái phép vào tài khoản c
      • Khắc Phục Sự Cố Kết Nối
    • Nạp tiền và Rút tiền
      • Vấn đề Nạp & Rút Tiền
      • Cách Nạp Tiền
      • Cách rút tiền
      • Phí Rút Tiền
      • Tiền Pháp Định (Fiat)
        • Nạp Tiền
        • Rút Tiền
    • Xác minh danh tính
      • Xác minh danh tính KYC đang chờ xử lý
      • Cách Xác Minh Danh Tính Tài Khoản
        • Tạo tài khoản mới
        • Xác minh danh tính (KYC)
      • Khu Vực Được Hỗ Trợ
    • Các chức năng của tài khoản.
      • Thay đổi địa chỉ Email
      • Lệnh Chốt Lời và Cắt Lỗ (TP/SL)
      • Tạo khóa API cho Backpack Exchange
      • Xuất lịch sử giao dịch (CSV)
      • Loại lệnh và thực thi giao dịch
    • Các chương trình và biểu phí
      • Points
      • Giới thiệu (Referrals)
      • Chương Trình Cộng Tác (Affiliate)
        • Chia hoa hồng linh hoạt
      • VIP
      • Chương Trình Market Maker
      • Đơn đăng ký niêm yết token
      • Chương Trình Tìm Lỗi (Bug Bounty Program)
      • Hoàn phí Giới thiệu
      • Cấp độ giao dịch (Trading Tier Levels) và nơi để kiểm tra
      • Chung kết mùa trước Beta Rush (Cuộc thi hàng ngày)
      • Chiến dịch Giao dịch Supersonic
      • Backpack Hunter
    • Câu hỏi thường gặp về Sản phẩm
      • Câu hỏi thường gặp về Giao dịch Spot
      • Câu hỏi thường gặp về Cho vay/Vay (Lend/Borrow FAQs)
    • Phí Giao Dịch
    • API & Tài Liệu dành cho Nhà Phát Triển
      • API Clients
      • Hướng dẫn sử dụng API Python của Backpack Exchange
  • Ví (Wallet)
    • Ví Backpack là gì?
    • Bắt đầu
      • Các Trình Duyệt và Nền Tảng Hỗ Trợ
      • Nhập / Khôi phục Ví
    • Các Hoạt Động
      • Hoán đổi Token
      • Giới thiệu, Hoán đổi & Kiếm tiền
      • Stake SOL
      • Cầu nối SOL/ETH
      • Bảo mật NFT
      • Thêm Mạng Mới
      • Kết nối Ví Cứng
      • Multisig
      • Địa chỉ RPC tùy chỉnh
      • Thêm Mạng Thử Nghiệm Dành Cho Nhà Phát Triển
    • Khắc phục sự cố thường gặp
      • Ẩn NFT Rác
      • Ẩn Token
      • Ví không tải được
      • Xem Cụm Từ Khôi Phục Bí Mật và Khóa Riêng Tư
  • Báo cáo sự cố hoặc lỗi
    • Backpack Exchange
    • Wallet
  • Pháp lý
    • Pháp lý Chung
      • Thoả thuận Người dùng
      • Chính sách quyền riêng tư
      • Chính sách Cookie
    • Công bố thông tin từ VARA
      • Tiêu Chuẩn Tài Sản Ảo
      • Thông Tin Giấy Phép VARA
      • Cảnh Báo Rủi Ro
      • Báo giá
      • Quy tắc giao dịch trên sàn
      • Khiếu nại
      • Tài Sản Số Đang Được Niêm Yết
    • Quy Định Tiền Mã Hóa & Công Bố Rủi Ro tại Vương Quốc Anh
    • Ví Backpack
      • Điều khoản và Điều kiện
      • Privacy Notice
Powered by GitBook

@ 2025 Backpack Exchange

On this page
  • Public endpoints
  • Các endpoint riêng tư
  • Lưu ý:
  • SDK
Export as PDF
  1. Sàn Giao Dịch
  2. API & Tài Liệu dành cho Nhà Phát Triển

Hướng dẫn sử dụng API Python của Backpack Exchange

Lấy API key nếu bạn muốn sử dụng các endpoint liên quan đến tài khoản: https://backpack.exchange/portfolio/settings/api-keys

Cài đặt các thư viện Python cần thiết:

  • cryptography – dùng để tạo X-Signature (chỉ áp dụng cho các endpoint tài khoản)

  • requests – để thực hiện các yêu cầu HTTP (hoặc aiohttp nếu bạn thích làm việc bất đồng bộ)

pip3 install cryptography requests 

Nếu bạn dự định sử dụng các endpoint tài khoản, nên cài thêm thư viện dotenv-python để quản lý khóa API an toàn bằng biến môi trường

pip3 install python-dotenv

Tạo file .env và lưu trữ các khóa API như sau

PUBLIC_KEY=zDIJj9qneWIY0IYZ5aXoHcNMCm+XDhVcTssiT0HyY0A=
SECRET_KEY=4odxgSUxFrC/zsKWZF4OQwYAgnNu9hnWH3NxWfLAPz4=

Tạo file .gitignore và thêm .env vào để loại trừ file này khỏi hệ thống quản lý phiên bản.

.env

Trong tất cả ví dụ, chúng ta sẽ sử dụng thư viện requests (đồng bộ). Hãy import nó trước:

import requests

Public endpoints

Đối với các endpoint công khai, bạn chỉ cần gửi một yêu cầu GET.

Không cần API key.

Ví dụ

# https://docs.backpack.exchange/#tag/Markets/operation/get_open_interest
BASE_URL: str = "https://api.backpack.exchange/"  # base api url for all endpoints
symbol: str = "SOL_USDC_PERP" # let's specify the symbol
result_url: str = f"{BASE_URL}api/v1/openInterest?symbol={symbol}"  # add your argument as a query string. For GET requests you need only query string
from json import JSONDecodeError

response = requests.get(url=result_url) # make a get request
print(f"response status code: {response}")
if response.status_code == 200:
    # make your code safe in case you receive unexpected data
    try:
        print(f"response json: {response.json()}") 
        
        open_interest: str = response.json()[0]["openInterest"]
        print(f"open interest: {open_interest}")
    except JSONDecodeError:
        print(f"response text if response isn't json: {response.text}")
else:
    ...
response status code: <Response [200]>
response json: [{'openInterest': '81420.17', 'symbol': 'SOL_USDC_PERP', 'timestamp': 1743731167028}]
open interest: 81420.17

Nếu bạn có nhiều hơn một tham số (argument), hãy nối chúng bằng ký hiệu &.

Các endpoint riêng tư

Đối với các endpoint riêng tư, chúng ta cần tạo các header đặc biệt và body yêu cầu (đối với các yêu cầu POST).

import base64 # import base64 as "The signature should then be base64 encoded"
from time import time # import time for timestamp 
import os  # import os – to access environment variables

from cryptography.hazmat.primitives.asymmetric import ed25519 # import ed25519 to create a private key that will sign the message
# from dotenv import load_dotenv, find_dotenv # to create env variables from your .env file
# use this in your code
# load_dotenv(find_dotenv())
# public_key: str = os.getenv("PUBLIC_KEY")
# secret_key: str = os.getenv("SECRET_KEY")

public_key: str = "zDIJj9qneWIY0IYZ5aXoHcNMCm+XDhVcTssiT0HyY0A="  # unsafe!
secret_key: str = "4odxgSUxFrC/zsKWZF4OQwYAgnNu9hnWH3NxWfLAPz4="  # unsafe!

private_key = ed25519.Ed25519PrivateKey.from_private_bytes(
            base64.b64decode(secret_key)
        )

Hãy lấy địa chỉ nạp tiền.

https://docs.backpack.exchange/#tag/Capital/operation/get_deposit_address

timestamp = int(time() * 1e3)  # Unix time in milliseconds
window: str = "5000" # Time window in milliseconds that the request is valid for. Increase if you have bad connection.

Bây giờ khi đã có X-Timestamp (dấu thời gian), X-Window (khoảng thời gian hợp lệ) và X-API-Key (khóa công khai). hãy tạo X-Signature.

instruction: str = "depositAddressQuery"
sign_str = f"instruction={instruction}"

# This endpoint requires the "blockchain" parameter
params: dict = {
    "blockchain": "Solana",
}
# Generic code to generate a valid query string from any parameters
sorted_params_list = []
for key, value in sorted(params.items()):
    if isinstance(value, bool):  # boolean variables should be lowercase in query strings
        value = str(value).lower()
    sorted_params_list.append(f"{key}={value}")
sorted_params = "&".join(sorted_params_list)


if sorted_params:
    sign_str += "&" + sorted_params
sign_str += f"&timestamp={timestamp}&window={window}" 

print(sign_str)
instruction=depositAddressQuery&blockchain=Solana&timestamp=1743731167786&window=5000

Bây giờ hãy tiến hành ký (sign) nó!

signature_bytes = private_key.sign(sign_str.encode())
encoded_signature = base64.b64encode(signature_bytes).decode()
print(f"signed query string: {encoded_signature}")
signed query string: lLc/zjqju853/hmCdb9dXtMhUijoetARooBn56hqbxPNXZTV9Gy18YcBjZ8+HuPDJHz6LmeB/366bJ5uTCZSAA==

Tạo các header:

headers = {
            "X-API-Key": public_key,
            "X-Signature": encoded_signature,
            "X-Timestamp": str(timestamp),
            "X-Window": window,
            "Content-Type": "application/json; charset=utf-8",
        }

Gửi yêu cầu

url = "https://api.backpack.exchange/wapi/v1/capital/deposit/address"
response = requests.get(url=url, headers=headers, params=params)
print(response.json())
{'address': '8PzpK8s8ezuSnXPjdPxR2FdZfzm5urkcUePrDL419PRC'}

Lưu ý:

Đối với các yêu cầu POST , hãy đính kèm nội dung JSON và sử dụng phương thức post() .

url_example = "https://api.backpack.exchange/wapi/v1/example"
response = requests.post(url=url, headers=headers, json=params)

SDK

SDK giúp quá trình phát triển trở nên dễ dàng hơn rất nhiều!

Ví dụ:

https://github.com/sndmndss/bpx-py

PreviousAPI ClientsNextVí (Wallet)

Last updated 1 month ago