[DIS] Fiber Python SDK — Native Python Library for Fiber Network Payments

Summary

This proposal requests a grant of $5,000 USD equivalent in CKB to build and publish a native Python SDK for the Fiber Network.

The SDK will give Python developers and AI agents a typed, installable library for interacting with a Fiber Network Node — covering the full payment lifecycle: channels, peers, invoices, payments, routing, network graph, and Bitcoin cross-chain interop.

Grant Amount Requested: ($5,000 equivalent in CKB)

ETA to Completion: 8 weeks from grant approval

CKB Wallet or Funding Address: ckb1qyqvaj4pmuw9vxurdlg8lx3sv7ywmcge33vsvrvu39


Project Introduction

The gap

Developer tooling and SDK work on Fiber is TypeScript-first — the official RPC wrapper and most application-layer projects are TypeScript or JavaScript:

  • @nervosnetwork/fiber-js — the official RPC wrapper, JS only (confirmed on npm)

  • fiber-checkout — React payment component, TypeScript (Spark-funded, my prior work)

  • AgentPay, Fiber402 — Node.js (confirmed)

The only Python presence in the ecosystem, verified against the Fiber showcase (docs.fiber.world/showcase):

  • A step-by-step testnet tutorial (not a library)

  • An integration test suite (a test harness, not an installable package)

  • CKB Alpha Agent — a Python agent application that accepts Fiber payments (not a reusable library)

There is no pip install fiber-sdk. There is no typed Python client. Python developers and AI agent frameworks have nothing to install.

Why Python matters for Fiber right now

Most major AI agent frameworks are Python-first — LangChain, CrewAI, the MCP Python SDK, and AutoGPT are all Python. A Python developer today has to write raw JSON-RPC from scratch to interact with a Fiber node. There is no library to install, no typed client, no examples.


Prior Work and Credentials

I built fiber-checkout — a Stripe-style React payment component for Fiber — under the Nervos Spark Program. The committee’s evaluation is public.

The Python SDK is the natural second step: the JS/React layer for web frontends exists (fiber-checkout), the Python layer for agents and backend developers does not.


What This Grant Builds

A Python package (fiber-sdk, published to PyPI) wrapping the Fiber Network Node JSON-RPC interface with:

  • Typed request and response models (Pydantic)

  • Async support (asyncio / httpx)

  • Synchronous convenience wrapper for simple scripts

  • Typed exceptions for RPC errors, node-down, and timeout

  • Examples: invoice flow, payment polling, agent pay-per-call, BTC cross-chain

Category Methods
Channels open_channel, accept_channel, list_channels, update_channel, shutdown_channel, abandon_channel
TLC add_tlc, remove_tlc
Peers connect_peer, disconnect_peer, list_peers
Invoices new_invoice, parse_invoice, get_invoice, cancel_invoice, settle_invoice
Payments send_payment, send_payment_with_router, build_router, get_payment, list_payments
Network graph_nodes, graph_channels
Node node_info
BTC / CCH send_btc, receive_btc, get_cch_order
Watchtower remove_watch_channel

Deliverables

Milestone 1 — Core SDK (Weeks 1–4)

  • Python package published to PyPI as fiber-sdk

  • Async JSON-RPC client (httpx-based)

  • Typed Pydantic models for all 28 SDK methods

  • Typed exceptions for RPC errors, node-down, timeout

  • README with install and quickstart

Verification: pip install fiber-sdk, connect to public testnet node, create an invoice, poll payment status — full flow works and types pass mypy.

Milestone 2 — Examples and Documentation (Weeks 5–8)

  • Four documented examples:

    1. Invoice creation and payment-status polling

    2. Channel open → invoice → pay → list_payments (full lifecycle)

    3. Agent pay-per-call (server returns Fiber invoice on 402, client pays and retries automatically)

    4. BTC cross-chain: receive_btc → get_cch_order → confirm settlement

  • Full API reference (Generated from Pydantic models + docstrings)

  • CHANGELOG and versioning policy

  • Forum announcement post with usage examples

Verification: All four examples run against the public testnet node. PyPI package installable with no extra steps.


Week Work
1 Package scaffold, async RPC client, error types, CI setup
2 Typed models and methods — channels, peers, node_info
3 Typed models and methods — invoices, payments, routing
4 BTC/CCH methods, PyPI publish, M1 verification
5 Example 1 + 2 (invoice lifecycle, full channel flow)
6 Example 3 (agent pay-per-call)
7 Example 4 (BTC cross-chain)
8 API docs, CHANGELOG, forum post, M2 verification

Why This Is the Right Time

  1. fnn v0.8.1 is a stable tagged release (April 15, 2026). Building against a tagged release means the SDK ships against a settled API surface, not a moving target.

  2. AI-agent demand on Fiber is real. Agent frameworks are Python-first. The ecosystem is ready for a Python SDK — it just doesn’t have one yet.


Risk Mitigation
fnn v0.9 ships breaking RPC changes v0.9 is at rc7 as of July 2. I am monitoring it and will flag any breaking changes to the 28 SDK methods before M2 closes. CHANGELOG will document any delta.
PyPI name fiber-sdk taken at submission Check at submission — fallback name ckb-fiber-sdk is also available (confirmed).

Post-Delivery

The package will be actively maintained — CHANGELOG updated per fnn release, breaking changes patched, issues addressed as they arise.


Supporting Links

[DIS] Fiber Python SDK — Fiber Network Payments 原生 Python 库

摘要

本提案申请 5,000 美元等值的 CKB 资助,用于构建并发布一个 Fiber Network 原生 Python SDK。

该 SDK 将为 Python 开发者和 AI 智能体提供一个类型化、可安装的库,用于与 Fiber Network 节点进行交互,涵盖完整的支付生命周期:通道、节点、发票、支付、路由、网络图以及比特币跨链互操作。

  • 申请资助金额: 5,000 美元等值 CKB

  • 预计完成时间: 获批后 8 周

  • CKB 钱包或资金接收地址: ckb1qyqvaj4pmuw9vxurdlg8lx3sv7ywmcge33vsvrvu39

项目介绍

现状差距

目前 Fiber 的开发者工具和 SDK 开发以 TypeScript 为主——官方 RPC 封装及大多数应用层项目均基于 TypeScript 或 JavaScript:

  • @nervosnetwork/fiber-js — 官方 RPC 封装,仅限 JS (已在 npm 确认)

  • fiber-checkout — React 支付组件,TypeScript (Spark 资助,本人先前项目)

  • AgentPay, Fiber402 — Node.js (已确认)

生态系统中仅有的 Python 存在(根据 Fiber 展示页面 docs.fiber.world/showcase 核实):

  • 一份分步测试网教程(非库)

  • 一套集成测试套件(测试工具,非可安装包)

  • CKB Alpha Agent — 一个接受 Fiber 支付的 Python 智能体应用(非可复用库)

目前没有 pip install fiber-sdk,没有类型化的 Python 客户端。Python 开发者和 AI 智能体框架目前无可安装的库。

为何 Python 对现在的 Fiber 至关重要

大多数主流 AI 智能体框架均为 Python 优先——LangChain、CrewAI、MCP Python SDK 和 AutoGPT 均为 Python 编写。当前的 Python 开发者若要与 Fiber 节点交互,必须从零开始编写原始 JSON-RPC。目前没有可供安装的库、没有类型化客户端、没有示例。

先前工作与资历

我曾通过 Nervos Spark 项目构建了 fiber-checkout(一款 Fiber 的 Stripe 风格 React 支付组件)。委员会的评估结果是公开的。

Python SDK 是自然的第二步:Web 前端的 JS/React 层已经存在 (fiber-checkout),而用于智能体和后端开发者的 Python 层尚缺。

资助内容

一个 Python 包 (fiber-sdk,发布至 PyPI),封装 Fiber Network 节点 JSON-RPC 接口,具备:

  • 类型化请求与响应模型 (Pydantic)

  • 异步支持 (asyncio / httpx)

  • 适用于简单脚本的同步便利包装器

  • 针对 RPC 错误、节点掉线和超时的类型化异常

  • 示例:发票流程、支付轮询、智能体按调用付费 (pay-per-call)、BTC 跨链

范围 — fnn v0.8.1 (直接从源码核实)

SDK 封装了 v0.8.1 版本中 41 个官方 RPC 方法中的 28 个,涵盖了所有用户侧功能。其余 13 个为低级通道状态签名内部方法,非普通 SDK 用户调用,未包含在 v0.1 范围内。

SDK 方法 (28) — 直接从 v0.8.1 源码标签核实

类别 方法
通道 (Channels) open_channel, accept_channel, list_channels, update_channel, shutdown_channel, abandon_channel
TLC add_tlc, remove_tlc
节点 (Peers) connect_peer, disconnect_peer, list_peers
发票 (Invoices) new_invoice, parse_invoice, get_invoice, cancel_invoice, settle_invoice
支付 (Payments) send_payment, send_payment_with_router, build_router, get_payment, list_payments
网络 (Network) graph_nodes, graph_channels
节点 (Node) node_info
BTC / CCH send_btc, receive_btc, get_cch_order
瞭望塔 (Watchtower) remove_watch_channel

交付物

里程碑 1 — 核心 SDK (第 1–4 周)

  • Python 包发布至 PyPI,命名为 fiber-sdk

  • 异步 JSON-RPC 客户端 (基于 httpx)

  • 针对所有 28 个 SDK 方法的类型化 Pydantic 模型

  • 针对 RPC 错误、节点掉线、超时的类型化异常

  • 包含安装与快速入门的 README

  • 验证:pip install fiber-sdk,连接公共测试网节点,创建发票,轮询支付状态 —— 全流程通过,且类型通过 mypy 检查。

里程碑 2 — 示例与文档 (第 5–8 周)

  • 四个记录在案的示例:

    • 发票创建与支付状态轮询

    • 通道开启 → 发票 → 支付 → 列出支付(全生命周期)

    • 智能体按调用付费(服务器在 402 时返回 Fiber 发票,客户端支付并自动重试)

    • BTC 跨链:接收 BTC → 获取 CCH 订单 → 确认结算

  • 完整的 API 参考文档(由 Pydantic 模型 + 文档字符串生成)

  • CHANGELOG 与版本控制策略

  • 包含使用示例的论坛公告贴

  • 验证:所有四个示例均在公共测试网上运行通过。PyPI 包无需额外步骤即可安装。

时间表

工作内容
1 包脚手架、异步 RPC 客户端、错误类型、CI 设置
2 类型化模型与方法 — 通道、节点、node_info
3 类型化模型与方法 — 发票、支付、路由
4 BTC/CCH 方法、PyPI 发布、M1 验证
5 示例 1 + 2 (发票生命周期、完整通道流程)
6 示例 3 (智能体按调用付费)
7 示例 4 (BTC 跨链)
8 API 文档、CHANGELOG、论坛帖、M2 验证

预算

总计:(提交时约 5,000 美元)

里程碑 金额
里程碑 1:核心 SDK + PyPI 发布 (约 2,500 美元)
里程碑 2:示例 + 文档 [CKB 等值] (约 2,500 美元)

为何此时是最佳时机

  • fnn v0.8.1 是一个稳定的标签版本(2026 年 4 月 15 日)。基于标签版本构建意味着 SDK 是针对已固定的 API 表面进行发布,而非不断变化的目标。

  • Fiber 上的 AI 智能体需求是真实的。智能体框架均为 Python 优先。生态系统已为 Python SDK 做好准备 —— 只是目前尚无此类库。

风险与缓解

风险 缓解措施
fnn v0.9 发布破坏性 RPC 变更 截至 7 月 2 日,v0.9 处于 rc7 阶段。我正在监控,并在 M2 结束前标记 28 个 SDK 方法中的任何破坏性变更。CHANGELOG 将记录所有差异。
提交时 PyPI 名称 fiber-sdk 已被占用 提交时检查 — 备用名称 ckb-fiber-sdk 也可用 (已确认)。

交付后计划

该软件包将得到积极维护 —— 根据 fnn 发布更新 CHANGELOG,修补破坏性变更,并在问题出现时予以解决。

支持链接

9 Likes

One design decision worth clarifying: The SDK will wrap settle_invoice, which enables hold-invoice patterns — pay now, release on condition. This is what makes escrow flows like PactAgent’s milestone releases possible without a third party custodying funds.

1 Like

You can refer to this article to see if it helps you:

I exported the fiber as C ABI, so not only mobile client but also Python should be able to call it.

1 Like

This fits really well with the recent wave of developer tools around Fiber. Step by step, it’s becoming much easier for builders to experiment without having to reinvent everything from scratch :rocket: