在 Dexalot 的基础上实现无摩擦体验——一个统一的、异步优先(async-first)的 SDK,它对链上复杂性进行抽象,并在单一客户端中提供无缝、可用于生产环境的交易、换币(swaps)和资产组合管理访问能力。
作者: M. Nihat Gurmen, Ilker Ulutas|April 09, 2026|3 分钟阅读
April 10, 2026 |
如果你曾尝试构建交易机器人,或与链上交易所进行集成,你就知道那有多痛苦。你需要在 RPC 端点之间来回切换,管理 nonce,签署交易,解析订单簿,并处理重试 — 而这甚至还没开始下你的第一笔订单。我们构建了 Dexalot SDK,帮助你把这些负担卸下,让你把注意力放在真正重要的事情上:你的交易逻辑。
今天,我们将其以开源形式向社区发布 — 既提供 Python 版本,也提供 TypeScript 版本。
Dexalot 是一个去中心化交易所,它在链上运行中心限价订单簿(CLOB)。不同于基于 AMM 的 DEX,你是在与流动性池进行交换;Dexalot 则像传统交易所一样匹配买家和卖家 — 使用买单(bids)、卖单(asks)以及真实的订单簿。这为交易者带来更紧的点差、更高的执行控制力,以及熟悉的交易体验。
但从历史上看,以编程方式与链上的 CLOB 交互一直并不轻松。你需要进行身份验证,管理钱包 nonce 以避免重复交易,处理 RPC 提供商故障,并跟上特定区块链的各种怪癖。每一个想在 Dexalot 上构建的开发者,实质上都在从头开始重做同样的底层基础设施。
Dexalot SDK 把这一切打包成一个单一且干净的客户端。一次安装,一个对象。全面访问交易、兑换、资产余额以及实时行情数据。
该 SDK 覆盖 Dexalot 协议的三个核心领域,且都可通过同一个统一客户端访问。
订单簿交易。 下达限价单,单独或批量取消订单,并查询你的未平仓仓位 — 全都通过直接的方式方法调用实现。SDK 会在幕后处理链上交易签名、nonce 管理以及 gas 估算。它还支持批量操作:在一笔交易中下多个订单,立刻取消一个订单列表,或者执行原子“取消并替换”(atomic cancel-and-replace),将旧订单移除并在同一时间提交新订单。对做市商和活跃交易者而言,这意味着更少的往返次数和更低的延迟。
简单兑换(Simple Swaps)。 并非每一笔交易都需要限价单。SDK 包含一个“请求报价”(request-for-quote,RFQ)兑换流程:先获取一个软报价以核对指示性价格,再在 30 秒过期窗口内锁定一个确定报价,然后执行兑换 — 仅需三步,无需进行订单簿管理。它非常适合一次性交易,或需要一个简单“用代币 A 兑换代币 B”界面的应用。
资产组合与转账。 查看你在资产组合以及已连接链钱包中的余额。从支持的链向你的 Dexalot 资产组合存入代币,从中提取回去,并以程序方式管理 gas — 全部一手搞定。如果你在构建仪表盘、资产组合追踪器或自动化再平衡系统,这些方法将为你提供所需的一切。
随着 DeFi 不断成熟,“我能在 DEX 上手动交易”与“我能在 DEX 上构建生产级系统”之间的鸿沟,就是真正机会所在的地方。机器人、聚合器、资产组合管理器、分析平台 — 它们都需要可靠的程序化访问能力。而这个 SDK 提供的正是这一点。
我们正在为 Python 和 TypeScript 提供原生 SDK — 这两种语言主导着加密开发。Python 是量化交易者、数据科学家和机器人构建者工作的地方。TypeScript 驱动着 Web 前端、Node.js 服务以及生态系统运行在其上的无服务器函数。两个 SDK 共享相同的设计理念:以异步为先、内置错误处理、类型安全以及生产级默认配置。无论你是在编写 FastAPI 交易服务,还是 Next.js 作品集仪表盘,你获得的都是一流客户端 — 而不是对 REST API 的薄封装。
我们并不只是封装了一些 API 端点然后就结束了。SDK 在设计时就考虑了生产级负载,其中有几项架构选择值得重点说明。
从底层开始的异步。 每一次 I/O 操作都是异步的。Python SDK 基于 asyncio;TypeScript SDK 使用原生 async/await 和 Promises。底层不会隐藏任何线程,也不会包含阻塞调用。这意味着 SDK 能够与现代异步框架良好协作,并且在处理并发操作时不会出现意外。如果你在运行一个交易服务,需要在管理订单的同时监控多个交易对,那么异步不是可选项 — 它是必需的。
聪明的缓存,不打扰你的工作。 SDK 使用四层缓存系统,契合交易所数据实际的行为方式。诸如部署配置这样的静态数据会被缓存 1 小时,因为它几乎不会变化。代币和交易对元数据每 15 分钟刷新一次。余额数据保留 10 秒。订单簿快照在 1 秒后就会过期。每一层都有合理的默认值,但你可以为你的使用场景调整每个 TTL — 或者在开发阶段直接完全关闭缓存。底层还包含防止“惊群(stampede)”的保护:如果有 10 个并发请求在同一时刻都想获取同一份尚未缓存的数据,那么只有一个请求会真正去获取,其余请求会等待这唯一的结果。这样可以避免缓存未命中时对 API 造成冲击的“惊群(thundering herd)”问题。
自动重试与限流。 网络抖动是常见的。RPC 提供方可能会宕机。SDK 内置可配置的重试逻辑,并使用指数退避(exponential backoff)机制 — 它不会因为第一次失败就放弃,但也不会向正处于挣扎的端点发起刷屏式的请求。限流同样内置,采用令牌桶(token-bucket)方案,在不需要你额外考虑的情况下将你的调用控制在服务端限制之内。
RPC 提供方故障切换。 如果你的主 RPC 端点开始失败,SDK 会自动切换到备份。你可以为每条链配置多个提供方,设置失败阈值,并定义冷却时间(cooldown periods)。如果所有提供方都不可用,它会回退到最后一个已知可用的提供方。对于生产系统而言,这种韧性并不是“锦上添花” — 它是必需品。
默认即安全。 在创建钱包账户之后,私钥会立即从配置对象中清除。SDK 会拒绝未加密的 HTTP RPC 端点,除非你明确覆盖该保护。在错误信息到达你的应用之前会进行清理(sanitization),移除可能泄露基础设施细节的文件路径、RPC URL 和堆栈追踪。SDK 甚至提供了本地加密的密钥保险库,用于存储敏感值 — 你的密钥在静态状态下使用 Fernet 加密进行加密,只有密钥名称会在保险库文件中可见。
值得特别提一项设计选择:SDK 如何处理错误。对于预期内的失败 — 例如网络超时、被拒绝的订单、链上回滚 — 它不会抛出异常。相反,每次操作都会返回一个 Result 对象。你检查 .success,如果为 true,则你的数据在 .data 中。如果为 false,则在人类可读的错误信息会在 .error 中。
这听起来或许只是小细节,但在实际应用中差别非常大。基于异常的错误处理在异步代码中可能很棘手,也很难推理。结果模式让失败变得显式且可预测。你的交易机器人不会因为网络抖动导致未处理的异常而在凌晨 3 点崩溃 — 它会看到一个失败的结果,然后按你的逻辑对其做出相应处理。
对于需要实时行情数据的应用,SDK 提供了可选的 WebSocket 管理器。订阅特定交易对的订单簿更新,并通过异步回调接收事件。连接会自动处理重连,回调能够与异步运行时自然集成 — 无论是 Python 中的 asyncio,还是 TypeScript 中的 Node.js 事件循环。对于需要实时响应订单簿变化的做市机器人来说,这尤其有用。
Python SDK 在 PyPI 上,TypeScript SDK 在 npm 上。安装任意一个,设置几个环境变量,然后你就可以读取订单簿了。如果你想交易,添加你的签名密钥 — 既可以通过加密的 secrets vault(密钥保险库),也可以直接传入一个 signer 对象(我们推荐后者,这样你的原始密钥永远不会接触配置文件)。
文档包含用户指南,提供每个主要工作流的可复制即用示例;还包括面向贡献者的架构概览,用于理解内部机制,以及用于调优性能的缓存指南。如果你想要完整全景,就从那里开始。如果你想直接进入代码,入门教程会从环境搭建讲到你的第一笔交易。
SDK 不是一个孤立的“岛”。它被设计为能够融入开发者已经在使用的更广泛的工具生态。以异步优先为核心的架构意味着它能与 FastAPI、Express 等框架无缝集成。结构化的 JSON 日志选项会以“每行一个事件”的形式输出,并带有时间戳和元数据字段 — 可直接用于 Datadog、Loki、Grafana,或你们团队运行的任何日志聚合器。配置通过环境变量、.env 文件或构造函数参数传递,因此无论你是在本地运行、使用 Docker,还是部署在 Kubernetes 上,都能以相同方式工作。
对于需要跨多个环境运行的团队,SDK 能在同一个进程中同时处理 testnet 和 mainnet。缓存命名空间会按 endpoint 分隔,因此 testnet 客户端和 mainnet 客户端不会相互“污染”对方的数据。只需更改一个配置值,即可在不同环境之间切换。
本次发布涵盖核心的交易、swap 和组合(portfolio)操作。我们正在积极根据社区反馈扩展 SDK。如果你希望看到某项功能,欢迎在仓库中提一个 issue — 或者更好的是,直接提交一个 pull request。
我们构建 Dexalot 是为了将传统交易所基础设施的性能与精度带到 DeFi。我们的 Python 与 TypeScript SDK,就是让每一位开发者都能借助终端与一个想法轻松使用这些能力的方式。
Dexalot 的 Python SDK 和 TypeScript SDK 均为开源。查看各个仓库以获取完整文档、示例和贡献指南。
Python SDK | GitHub: github.com/Dexalot/dexalot-sdk-python
Python SDK | PyPi: pypi.org/project/dexalot-sdk
TypeScript SDK | GitHub: github.com/Dexalot/dexalot-sdk-typescript
TypeScript SDK | NPM: npmjs.com/package/@dexalot/dexalot-sdk
祝您交易愉快。