# Pacifica API 完整参考文档 **文档来源**: https://docs.pacifica.fi/api-documentation/api **更新时间**: 2025-09-26 **SDK支持**: Python SDK - https://github.com/pacifica-fi/python-sdk ## 概述 Pacifica 是基于 Solana 的永续合约去中心化交易所,提供完整的 REST 和 WebSocket API 来支持程序化交易和账户管理。 ### 关键特性 - 🔐 **安全认证**: 支持API签名和硬件钱包集成 - ⚡ **实时数据**: WebSocket 订阅实时市场和账户数据 - 🎯 **全面交易**: 支持市价单、限价单、止损单等多种订单类型 - 👥 **子账户**: 完整的子账户管理功能 - 📊 **数据丰富**: 历史交易、资金费率、K线数据等 ## 认证机制 ### 1. API 签名认证 ```javascript // 签名流程 const message = `${method}${path}${timestamp}${body}` const signature = sign(message, privateKey) ``` ### 2. 支持的认证方式 - **API Agent Keys**: 用于程序化交易 - **硬件钱包**: 支持 Ledger、Phantom 等 - **私钥签名**: 标准的 Ed25519 签名 ## REST API 端点 ### 基础信息 **Base URL**: `https://api.pacifica.fi` **内容类型**: `application/json` **签名头**: `Pacifica-Signature` ### 市场数据 API #### 1. 获取市场信息 ```http GET /api/v1/info ``` **响应**: 返回所有可交易市场的基本信息 #### 2. 获取价格信息 ```http GET /api/v1/prices ``` **响应**: 所有交易对的最新价格 #### 3. 获取K线数据 ```http GET /api/v1/kline ``` **参数**: - `symbol`: 交易对符号 - `interval`: 时间间隔 (1m, 5m, 15m, 1h, 4h, 1d) - `startTime`: 开始时间戳 - `endTime`: 结束时间戳 #### 4. 获取订单簿 ```http GET /api/v1/book ``` **参数**: - `symbol`: 交易对符号 - `depth`: 深度级别 (可选) #### 5. 获取最近交易 ```http GET /api/v1/trades ``` **参数**: - `symbol`: 交易对符号 - `limit`: 返回数量限制 #### 6. 获取历史资金费率 ```http GET /api/v1/funding ``` **参数**: - `symbol`: 交易对符号 - `startTime`: 开始时间 - `endTime`: 结束时间 ### 账户管理 API #### 1. 获取账户信息 ```http POST /api/v1/account/info ``` **认证**: 必需 **响应**: 账户基础信息、权益、保证金等 #### 2. 更新杠杆 ```http POST /api/v1/account/leverage ``` **认证**: 必需 **参数**: ```json { "account": "账户地址", "symbol": "交易对", "leverage": 10, "agent_wallet": "代理钱包地址", "timestamp": 1234567890, "expiry_window": 30000, "signature": "签名" } ``` #### 3. 更新保证金模式 ```http POST /api/v1/account/margin_mode ``` **认证**: 必需 **参数**: 保证金模式设置 #### 4. 获取仓位信息 ```http GET /api/v1/account/positions ``` **认证**: 必需 **响应**: 当前所有持仓信息 #### 5. 获取交易历史 ```http GET /api/v1/account/trades ``` **认证**: 必需 **参数**: - `symbol`: 交易对 (可选) - `startTime`: 开始时间 - `endTime`: 结束时间 - `limit`: 数量限制 #### 6. 获取资金历史 ```http GET /api/v1/account/funding ``` **认证**: 必需 **响应**: 资金费率支付记录 #### 7. 请求提现 ```http POST /api/v1/account/withdraw ``` **认证**: 必需 **参数**: 提现金额和目标地址 #### 8. 获取余额 ```http GET /api/v1/account/balance ``` **认证**: 必需 **响应**: 账户各资产余额 ### 子账户管理 API #### 1. 创建子账户 ```http POST /api/v1/account/subaccount/create ``` **认证**: 必需 **参数**: ```json { "main_account": "主账户地址", "subaccount": "子账户地址", "timestamp": 1234567890, "expiry_window": 30000, "main_signature": "主账户签名", "sub_signature": "子账户签名" } ``` #### 2. 子账户资金转移 ```http POST /api/v1/account/subaccount/transfer ``` **认证**: 必需 **参数**: 转移金额和方向 ### 订单管理 API #### 1. 下市价单 ```http POST /api/v1/order/market ``` **认证**: 必需 **参数**: ```json { "account": "账户地址", "symbol": "BTCUSDT", "side": "BUY", // BUY | SELL "quantity": "0.1", "reduce_only": false, "timestamp": 1234567890, "expiry_window": 30000, "signature": "签名" } ``` #### 2. 下限价单 ```http POST /api/v1/order/limit ``` **认证**: 必需 **参数**: ```json { "account": "账户地址", "symbol": "BTCUSDT", "side": "BUY", "quantity": "0.1", "price": "50000.0", "time_in_force": "GTC", // GTC | IOC | FOK "post_only": false, "reduce_only": false, "timestamp": 1234567890, "expiry_window": 30000, "signature": "签名" } ``` #### 3. 下止损单 ```http POST /api/v1/order/stop ``` **认证**: 必需 **参数**: 包含触发价格的止损单参数 #### 4. 取消订单 ```http POST /api/v1/order/cancel ``` **认证**: 必需 **参数**: ```json { "account": "账户地址", "order_id": "订单ID", "timestamp": 1234567890, "expiry_window": 30000, "signature": "签名" } ``` #### 5. 批量下单 ```http POST /api/v1/order/batch ``` **认证**: 必需 **参数**: 多个订单的数组 #### 6. 获取当前委托 ```http GET /api/v1/order/open ``` **认证**: 必需 **响应**: 所有未成交订单 #### 7. 获取订单历史 ```http GET /api/v1/order/history ``` **认证**: 必需 **参数**: - `symbol`: 交易对 (可选) - `startTime`: 开始时间 - `endTime`: 结束时间 - `limit`: 数量限制 ## WebSocket API ### 连接信息 **URL**: `wss://ws.pacifica.fi/ws` **协议**: WebSocket **消息格式**: JSON ### 订阅主题 #### 1. 价格订阅 ```json { "method": "SUBSCRIBE", "params": ["prices@all"], "id": 1 } ``` #### 2. 订单簿订阅 ```json { "method": "SUBSCRIBE", "params": ["orderbook@BTCUSDT"], "id": 2 } ``` #### 3. 交易订阅 ```json { "method": "SUBSCRIBE", "params": ["trades@BTCUSDT"], "id": 3 } ``` #### 4. K线订阅 ```json { "method": "SUBSCRIBE", "params": ["candle@BTCUSDT@1m"], "id": 4 } ``` #### 5. 账户余额订阅 ```json { "method": "SUBSCRIBE", "params": ["balance@{account}"], "id": 5 } ``` #### 6. 账户保证金订阅 ```json { "method": "SUBSCRIBE", "params": ["margin@{account}"], "id": 6 } ``` #### 7. 仓位订阅 ```json { "method": "SUBSCRIBE", "params": ["positions@{account}"], "id": 7 } ``` #### 8. 订单更新订阅 ```json { "method": "SUBSCRIBE", "params": ["orders@{account}"], "id": 8 } ``` ### 消息格式示例 #### 价格更新消息 ```json { "stream": "prices@all", "data": { "BTCUSDT": { "price": "50000.00", "change_24h": "2.5%", "volume_24h": "1000000" } } } ``` #### 订单簿更新消息 ```json { "stream": "orderbook@BTCUSDT", "data": { "bids": [ ["49900", "0.5"], ["49800", "1.0"] ], "asks": [ ["50100", "0.3"], ["50200", "0.8"] ], "timestamp": 1234567890 } } ``` #### 账户余额更新消息 ```json { "stream": "balance@{account}", "data": { "USDT": { "available": "1000.00", "locked": "100.00" }, "timestamp": 1234567890 } } ``` ## 错误处理 ### HTTP 状态码 - `200`: 成功 - `400`: 请求参数错误 - `401`: 认证失败 - `403`: 权限不足 - `404`: 端点不存在 - `429`: 请求频率限制 - `500`: 服务器内部错误 ### 错误响应格式 ```json { "error": { "code": 1001, "message": "Invalid signature", "details": "Signature verification failed" } } ``` ### 常见错误码 - `1001`: 签名无效 - `1002`: 时间戳过期 - `1003`: 账户不存在 - `1004`: 余额不足 - `1005`: 订单不存在 - `1006`: 市场暂停交易 ## 速率限制 ### REST API 限制 - **公开端点**: 每分钟 1000 次请求 - **私有端点**: 每分钟 500 次请求 - **订单相关**: 每秒 10 次请求 ### WebSocket 限制 - **连接数**: 每个IP最多 5 个连接 - **订阅数**: 每个连接最多 100 个订阅 - **消息频率**: 每秒 1000 条消息 ## 交易规范 ### 订单类型 1. **市价单** (Market): 立即按市场价格执行 2. **限价单** (Limit): 指定价格执行 3. **止损单** (Stop): 触发价格后转为市价单 4. **止损限价单** (Stop-Limit): 触发后转为限价单 ### 时间有效性 (TIF) - **GTC** (Good Till Cancelled): 直到取消 - **IOC** (Immediate Or Cancel): 立即执行或取消 - **FOK** (Fill Or Kill): 全部成交或取消 ### 订单状态 - `NEW`: 新建订单 - `PARTIALLY_FILLED`: 部分成交 - `FILLED`: 完全成交 - `CANCELED`: 已取消 - `REJECTED`: 被拒绝 - `EXPIRED`: 已过期 ## SDK 集成 ### Python SDK ```bash pip install pacifica-fi ``` ### 基础用法 ```python from pacifica import PacificaClient client = PacificaClient( base_url="https://api.pacifica.fi", private_key="your_private_key" ) # 获取账户信息 account_info = client.get_account_info() # 下限价单 order = client.place_limit_order( symbol="BTCUSDT", side="BUY", quantity="0.1", price="50000" ) ``` ## 最佳实践 ### 1. 安全建议 - 使用环境变量存储私钥 - 实施IP白名单 - 定期轮换API密钥 - 启用双重认证 ### 2. 性能优化 - 使用WebSocket获取实时数据 - 实施指数退避重试机制 - 批量处理订单操作 - 缓存市场数据 ### 3. 错误处理 - 监控速率限制状态 - 实施断线重连机制 - 记录所有API调用 - 设置超时和重试策略 ## 技术支持 ### 获取帮助 - **Discord**: Pacifica API 频道 - **GitHub**: https://github.com/pacifica-fi/python-sdk - **文档**: https://docs.pacifica.fi ### 开发资源 - API状态页面 - 测试网环境 - 示例代码库 - 开发者社区 --- _本文档基于 Pacifica 官方 API 文档整理,如有更新请参考官方文档_