Chuyển đến nội dung chính

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →

Perps API là gì?

Raydium Perps API (V1) là dịch vụ cấu hình và metadata cho frontend và các tích hợp Raydium Perpetual Futures. Nó cung cấp:
  • Cấu hình UI – phiên bản hiện tại, hỗ trợ phiên bản tối thiểu
  • RPC endpoints – các endpoint Solana RPC được phép dùng cho UI
  • Thống kê thị trường – khối lượng giao dịch và mức độ mở cửa 24h/7d/30d
  • Hạn chế khu vực – kiểm tra khả dụng theo từng quốc gia
  • Metadata pool – các thị trường perp đang hoạt động và dữ liệu khối lượng
  • Dữ liệu chiến dịch – bảng xếp hạng, thống kê người dùng và phần thưởng
  • Chia sẻ P&L – tạo ảnh chụp vị trí có thể chia sẻ
Lưu ý quan trọng: Việc đặt lệnh được xử lý bởi API của Orderly Network. Dịch vụ này tập trung vào hỗ trợ frontend và metadata.

Tổng Quan Kiến Trúc

Hệ thống Perps gồm hai thành phần độc lập:
  1. Raydium Perp API (dịch vụ này) – Đọc cấu hình, cung cấp dữ liệu UI, tạo ảnh
  2. Orderly Network – Thực hiện lệnh, quản lý vị trí và thanh toán
Khi một người dùng đặt lệnh perp thông qua UI Raydium:
  1. UI lấy cấu hình thị trường từ API này (pools, RPCs, khả dụng)
  2. UI gửi lệnh đến API của Orderly Network
  3. Orderly thực hiện lệnh và duy trì trạng thái vị trí
  4. UI truy xuất dữ liệu vị trí và thống kê từ API của Orderly hoặc endpoint chiến dịch của chúng tôi
Sự tách biệt này cho phép Raydium quản lý metadata và branding trong khi Orderly đảm nhận công việc nặng về khớp lệnh và thanh toán.

API Endpoints theo Danh Mục

Main Endpoints

Thông tin dịch vụ cốt lõi và kiểm tra khả dụng.

GET /main/version

Trả về phiên bản UI ổn định hiện tại và phiên bản hỗ trợ tối thiểu. Dùng: Kiểm tra xem phiên bản UI của máy khách có còn được hỗ trợ không. Response:
{
  "id": "...",
  "success": true,
  "data": {
    "latest": "1.2.0",
    "least": "1.0.0"
  }
}

GET /main/rpcs

Trả về các endpoint Solana RPC được phép dùng cho UI. Dùng: Điền danh sách chọn RPC trong UI; đảm bảo máy khách kết nối đến các endpoint ổn định được Raydium phê duyệt.

GET /main/info

Trả về thống kê toàn thị trường. Dùng: Hiển thị khối lượng 24h, 7d, 30d và mức độ mở cửa tổng/long/short trên bảng điều khiển. Response:
{
  "id": "...",
  "success": true,
  "data": {
    "volume": {
      "24h": 1234567,
      "7d": 9876543,
      "30d": 50000000
    },
    "openInterest": {
      "long": 5000000,
      "short": 3000000,
      "all": 8000000
    }
  }
}

GET /main/availability-check

Kiểm tra xem giao dịch perp có khả dụng tại khu vực của người dùng không. Dùng: Cảnh báo hoặc hạn chế quyền truy cập ở các khu vực bị hạn chế (ví dụ: USA). Cách hoạt động:
  • Đọc header cf-ipcountry từ Cloudflare (nếu đằng sau Cloudflare)
  • Quay lại cấu hình mặc định nếu header không có
  • Trả về trạng thái khả dụng theo từng khu vực
Response:
{
  "id": "...",
  "success": true,
  "data": {
    "available": true,
    "country": "US"
  }
}

GET /main/temp-key?wallet=...

Tạo cặp khóa Ed25519 tạm thời cho xác thực ban đầu hoặc ký tạm thời. Dùng: Tạo khóa tạm thời không giữ hộ cho một số luồng xác thực. Response:
{
  "id": "...",
  "success": true,
  "data": {
    "key": "ed25519:AAAA..."
  }
}

Pool Endpoints

Cấu hình thị trường perpetual.

GET /pool/default-list

Trả về danh sách các thị trường perp mặc định với khối lượng 24h/7d/30d. Dùng: Điền danh sách chọn thị trường hoặc widget bảng điều khiển với các cặp perp khả dụng. Response:
{
  "id": "...",
  "success": true,
  "data": [
    {
      "symbol": "BTC/USDC",
      "volume24h": "1000000",
      "volume7d": "7000000",
      "volume30d": "30000000"
    }
  ]
}

Campaign Endpoints

Bảng xếp hạng, thống kê người dùng và dữ liệu phần thưởng.

GET /campaign/configs

Trả về các tham số và quy tắc chiến dịch đang hoạt động. Dùng: Hiển thị các điều khoản chiến dịch và yêu cầu tham gia trong UI.

GET /campaign/user?wallet=...&index=0

Trả về thống kê chiến dịch của người dùng (khối lượng, P&L, điểm, phần thưởng kiếm được). Dùng: Hiển thị trong hồ sơ người dùng hoặc bảng điều khiển tài khoản. Response (người dùng không có lịch sử mặc định là dữ liệu bằng không):
{
  "id": "...",
  "success": true,
  "data": {
    "userInfo": {
      "index": "42",
      "walletAddress": "11111...1111",
      "volume": 500000,
      "pnl": 25000,
      "pnlW": 22500,
      "score": 850,
      "rewards": [...]
    }
  }
}

GET /campaign/list?index=0

Trả về bảng xếp hạng cho một chỉ số chiến dịch nhất định (phân trang). Dùng: Hiển thị các nhà giao dịch hàng đầu và xếp hạng. Response:
{
  "id": "...",
  "success": true,
  "data": {
    "updateTime": 1699999999000,
    "rows": [
      {
        "rank": 1,
        "wallet": "11111...1111",
        "volume": 5000000,
        "pnl": 250000,
        "score": 9500
      }
    ]
  }
}

Share Endpoints

Tạo ảnh chụp vị trí có thể chia sẻ.

POST /share/position

Tạo ảnh có thể chia sẻ của vị trí perp hiện tại của người dùng. Dùng: Chia sẻ trên mạng xã hội (Twitter, Discord) các vị trí đang diễn ra. Request:
{
  "symbol": "BTC/USDC",
  "side": "long",
  "size": "0.5",
  "entryPrice": "45000",
  "markPrice": "46000",
  "pnl": "500",
  "leverage": "5x"
}
Response:
{
  "id": "...",
  "success": true,
  "data": {
    "imgFileName": "abc123def456",
    "msg": "Position image generated"
  }
}

POST /share/history-position

Tạo ảnh có thể chia sẻ của vị trí đã đóng với P&L nhận được. Dùng: Chia sẻ các giao dịch đã đóng với chi tiết lợi nhuận/lỗ. Request:
{
  "symbol": "ETH/USDC",
  "side": "short",
  "size": "10",
  "entryPrice": "2500",
  "exitPrice": "2450",
  "realizedPnl": "500"
}
Response: Giống như /share/position.

Response Envelope

Tất cả các endpoint trả về một envelope tiêu chuẩn:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "success": true,
  "data": { ... }
}
Khi có lỗi:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "success": false,
  "msg": "Error message or code"
}

Caching

Hầu hết các endpoint trả về header cache-control: max-age=60, nghĩa là:
  • Kết quả được lưu trữ trên máy chủ và cập nhật mỗi 60 giây
  • Máy khách cũng có thể lưu trữ trong 60 giây để giảm tải
  • Dữ liệu thời gian thực không được đảm bảo; dự kiến 0–60 giây cũ

Khả Dụng Khu Vực

Hạn chế khu vực được xử lý thông qua header cf-ipcountry (Cloudflare). Các khu vực được hỗ trợ và hạn chế được cấu hình trên máy chủ và cập nhật định kỳ.

Network Endpoints

EnvironmentHost
Productionapi-perp-v1.raydium.io
Không có phiên bản devnet; giao dịch perp chỉ ở mainnet.

Tích Hợp với Orderly Network

Để đặt một lệnh:
  1. Gọi /campaign/user hoặc /main/info để lấy metadata và hiển thị cho người dùng
  2. Gửi lệnh đến API của Orderly Network (không phải API này)
  3. Orderly trả về xác nhận giao dịch và trạng thái vị trí
  4. Gọi /campaign/user lại sau để xem thống kê cập nhật
API perp của Raydium không xử lý đặt lệnh; nó chỉ là metadata và cấu hình chỉ đọc.

Xem Thêm