关于 FlashBank
FlashBank 提供非托管链上借贷,包括原子闪电贷和固定费用、抵押担保的点对点定期贷款,面向流动性提供者、借款人和 Agent。资金仅在使用时从提供者钱包中调取,定期贷款按时间结算且无需价格预言机。
主要功能
- 01流动性留在提供者钱包
- 02同一交易内原子偿还
- 03固定费用抵押点对点贷款
- 04无需预言机的按时结算
- 05所有者与管理员分权控制
适用场景
- 01无需存入资金即可提供 WETH 流动性
- 02为套利或清算使用原子流动性
- 03与另一方协商固定期限贷款
MCP 相关
仓库包含 @flashbank/mcp MCP 服务。Agent 可浏览贷款报价、获取报价、查询闪电贷流动性和费用,并在明确配置后发布、接受和偿还贷款或使用 Sepolia 水龙头。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @flashbank/mcpFLASHBANK_MCP_PRIVATE_KEY密钥Optional EVM private key enabling write tools (create/take/repay offers, faucet). Omit for read-only mode. Use a throwaway key.FLASHBANK_MCP_ALLOW_MAINNETSet to 'true' to allow write tools on mainnets (Ethereum, Base, Arbitrum). Defaults to Sepolia-only writes.FLASHBANK_MCP_RPC_SEPOLIAOptional custom RPC URL override for Sepolia (similarly FLASHBANK_MCP_RPC_ETHEREUM / _BASE / _ARBITRUM).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
15收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
FlashBank
非托管的链上借贷,在实际使用资金之前,资金始终留在你的钱包中。 FlashBank 是两款遵循这一原则的互补产品:
| 产品 | 说明 | 合约 | 页面 |
|---|---|---|---|
| Flash Loans | 用于套利、清算和 MEV 的原子化、同一笔交易内的流动性。出借方从自己的钱包批准并承诺提供 WETH——无需存款,每笔贷款都能赚取费用。 | flashloans/ · FlashBankRouter.sol | / |
| P2P Term Loans | 由两个人直接商定的固定期限、以抵押品作担保的贷款。收取一笔固定费用而非利息,完全按时间结算——没有资金池、价格预言机,也无需监控清算。 | loans/ · FlashBankP2PLoan.sol | /p2p |
品牌使用规则:“flashbank”仅用作动词(你可以 flashbank 一笔贷款)。FlashBank 不是银行,不持有存款,也不以金融机构身份托管资金。
网站:flashbank.net · 源码:github.com/Rotwang9000/flashbank-net
Flash Loans(Router)
FlashBankRouter 是一个由多家提供方组成的闪电贷资金池,流动性提供方始终保有资金托管权:
- **无需存款。**提供方批准 Router 并调用
setCommitment(token, limit, expiry, paused)。WETH 留在其钱包中,仅在闪电贷期间的几微秒内被提取。 - **要么原子完成,要么全部回滚。**借款方实现
IL2FlashLoan,并必须在同一笔交易中偿还principal + fee,否则整笔交易都会回滚。 - **费用可配置且有上限。**每种代币都可设置
feeBps(1–100 bps),另设单独的所有者分成(ownerFeeBps)以及每笔交易最高借款额占资金池份额的上限(maxBorrowBps)。 - **双重控制管理。**敏感操作(代币配置、所有权变更、利润提取)采用提议后执行的流程,由
owner和独立的admin分别负责。详见 docs/security/DUAL_CONTROL.md。
提供方流程(WETH):
await weth.deposit({ value: ethers.parseEther("5") }); // wrap ETH (stays in your wallet)
await weth.approve(routerAddress, ethers.MaxUint256); // approve once
await router.setCommitment(wethAddress, ethers.parseEther("3"), 0, false); // lend up to 3 WETH
// pause/resume any time — just flip the paused flag or drop the limit to 0
借款方流程(MEV / 套利机器人):
await router.flashLoan(
wethAddress,
ethers.parseEther("100"),
true, // receive native ETH (router unwraps WETH for you)
strategyCalldata // forwarded to IL2FlashLoan.executeFlashLoan
);
位于 flashloans/。使用 cd flashloans && npx hardhat run scripts/deploy-router.js --network <network> 部署
(在仓库根目录的 .env 中设置 ADMIN_ADDRESS / TESTNET_ADMIN_ADDRESS)。网站通过 NEXT_PUBLIC_* 环境变量读取各网络的地址。
P2P 定期贷款
FlashBankP2PLoan 是一个中立托管合约,让双方通过 flashbank 进行有固定期限、由抵押品担保的贷款:
- 仅按时间结算。 在
maturity + grace之前偿还principal + a flat fee,否则贷款方即可领取抵押品。链上不会对任何资产定价,因此不需要预言机。 - 可选返还剩余抵押品(无需预言机)。 报价可以设置一个约定汇率(存储为
settlementValue,即抵押品整体被认定的价值,并在贷款发放时锁定);发生违约时,借款人可取回超出principal + fee的抵押品。若只想质押或没收抵押品,请将其设为0。这遵循了 Lorrow 的剩余抵押品返还保护原则,且无需预言机——详见docs/design/LORROW_COMPATIBILITY.md。 - 可编辑报价,防止抢跑。 报价开放期间,创建者可以直接修改价格或其他非托管条款(
updateOffer),也可以增加精选展示费用(boostOffer),且不会失去已有的展示加权。每次编辑都会递增version;接受报价的一方可调用takeChecked(id, version),锁定自己审核过的确切条款。 - 固定费用,而非利息。 采用一次性固定费用,不随时间累积利息,因此更符合避免 riba 的信仰金融理念(这并非声称获得了伊斯兰教法认证)。
- 三种可选、默认关闭的费用:
- 可选择启用的界面费(由贷款方支付,仅适用于通过 flashbank 发布的报价;目前为 0%),
- 可选的加推费用,按支出金额决定市场中的精选展示排序(属于广告,而非利息;不予退款),
- 可支付给任意地址的每笔报价服务费(保险/第三方服务)。 直接调用合约即可零佣金。
- 代币就是 ERC-20。 在主网/L2 上,托管使用真实资产(WETH、USDC 等)。在测试网体验环境中,
fpETH/fpUSD是免费水龙头代币,没有实际价值。
代码位于 loans/。完整设计文档:docs/design/P2P_LENDING_DESIGN.md。
已在主网运行(Ethereum + Base)
FlashBankP2PLoan 已部署并在主网通过验证——自审计认为其可靠,并趁 ETH Gas 费用较低时发布。各链使用相同字节码;采用 Ownable,费用接收方为 Vultisig vault,目前为 0 bps(上架费仅适用于通过 listed 选择启用的报价,且链上硬性上限为 1%)。
未经外部审计——使用真实资产的风险由你自行承担。
| 链 | FlashBankP2PLoan(已验证) |
|---|---|
| Ethereum | 0x131C…18A0 |
| Base | 0x86Fb…FcbB |
主网界面使用真实的 WETH/USDC。(Arbitrum 尚待部署——部署者余额过低,暂时无法部署;之后可在将 MAX_FEE_GWEI 设为较低值后添加。)各链记录见 loans/deployments/*-p2p.json。
目前主网界面仅支持 ETH 和 USDC——自定义代币仅限测试网使用——因此前端不会引导用户使用未知/伪造代币(合约本身仍保持无需许可,任何人都可以直接调用)。
v2——已在 Sepolia 体验环境上线。 FlashBankP2PLoanV2 新增了链上代币安全验证、分阶段冷静期返利(固定费用从 10% 的最低比例开始归属,因此近乎即时的还款成本较低,可杜绝利用伪代币刷取费用;但消耗上架名额绝不会免费,同区块保护机制也会阻止免费闪电贷),以及提取式支付回退机制,确保被列入黑名单的收款方绝不会导致另一方无法还款或领取违约抵押品。该版本经对抗性审查并通过单元测试(22 个用例),且已部署至 Sepolia(已验证并注资);在此已通过一次双 Agent 实时生命周期演练。主网仍使用 v1,待 v2 通过成熟度验证后再升级。完整的风险分析见 docs/design/P2P_V2_COOLING_OFF.md。
在 Sepolia 上运行(体验环境 — 仅限测试网,无实际价值)
我们在 Sepolia 上部署了一个可自行体验的环境,任何人都可以端到端尝试完整流程 ——
该环境运行 v2 托管合约,因此冷静期返利和主动提现功能会率先在这里上线。所有源代码
均已在 Etherscan 上验证;只有密钥材料保留在未跟踪的 .env 文件中。未经审计的演示 —
切勿发送真实资产。
| 合约 | 地址(已验证) |
|---|---|
FlashBankP2PLoanV2(冷静期返利 + 代币检查 + 主动提现) | 0x536f…1E76 |
PlaygroundToken fpUSD(6d) | 0x4aBb…760c |
PlaygroundToken fpETH(18d) | 0xB9CC…96F5 |
试用方法:打开 /p2p(默认使用 Ethereum 主网),切换到 Sepolia,点击
水龙头铸造测试代币,然后发布或接受报价(已预置了几个报价,包括用于展示排名的加成报价,
以及一个由创建者设置了 2 天冷静期的报价)。重新部署可运行
cd loans && npx hardhat run scripts/deploy-playground-v2.js --network sepolia
(地址记录在 loans/deployments/sepolia-playground-v2.json 中;已弃用的 v1 体验环境
0x3Ce4…1017 仍保留在链上)。
面向 AI Agent(MCP)
npx -y @flashbank/mcp # zero-config read-only MCP server, any MCP client
此仓库提供了一个独立的 Model Context Protocol 服务(mcp/,发布为
@flashbank/mcp,已列入官方 MCP
Registry 和
Glama),让 Agent 也能使用
FlashBank:浏览开放的 P2P 报价、获取报价、查看闪电贷流动性和费用 — 并且只需明确配置一个
一次性密钥,即可发布/接受/偿还贷款并使用 Sepolia 水龙头。读取操作无需配置;主网写入操作
受到双重限制,必须同时设置 FLASHBANK_MCP_PRIVATE_KEY 和
FLASHBANK_MCP_ALLOW_MAINNET=true。接受报价时始终会将经过审核的确切条款固定到链上;在 v2
链上,工具会计算已归属费用并报告冷静期返利。完整生命周期已通过一场双 Agent 实时演练
(npm run drill)验证:通过 Sepolia 上两个真实 MCP 服务实例,依次执行水龙头 → 创建 →
接受 → 提前偿还(已验证返利)→ 取消。详情和工具目录见:
mcp/README.md。
仓库结构
每项功能都是一个独立的 Hardhat 项目。两个项目绝不会导入彼此的 Solidity 代码,因此你可以 复刻此仓库,删除不需要的功能,另一个功能仍可编译、测试和部署。
flashloans/ Flash-loan router feature — own contracts/, test/, scripts/, test-scripts/, hardhat.config.js
loans/ P2P term-loan feature — own contracts/, test/, scripts/, deployments/, hardhat.config.js
common/ Shared toolchain (hardhat.base.js) inherited by both features — do not delete
website/ Next.js front end (static export, deployed to flashbank.net) — showcases both features
mcp/ Model Context Protocol server so AI agents can browse/quote/transact (see mcp/README.md)
docs/ Documentation (see docs/README.md) — architecture, security, deployment, design
package.json Thin root: installs the shared dependencies and runs both features' scripts
只想保留一项功能? 删除另一个顶层目录:
rm -rf flashloans # keep just the P2P term loans
# ...or...
rm -rf loans # keep just the flash-loan router
common/ 由两者共享,必须保留。website/ 是一个综合展示站点;如果移除某项功能,还要删除其
页面(闪电贷对应 website/src/pages/index.tsx,
P2P 对应 website/src/pages/p2p.tsx),以及 website/src/components/Nav.tsx 中的对应链接。
早期采用存款模式的设计
FlashBankRevolutionary早于无存款 Router。其 合约和说明保存在flashloans/下,供历史参考;Router 和 P2P 托管是当前产品。
快速开始
npm install # installs the shared toolchain both features build against
npm run compile # compile both features
npm test # run both features' test suites
# work inside a single feature
cd flashloans && npx hardhat test
cd loans && npx hardhat test
# website
npm run website:dev # local dev server on http://localhost:3000
npm run website:build # static export
依赖只需在仓库根目录安装一次;各功能会从那里解析 Hardhat、插件和 OpenZeppelin,因此无需在每个
功能目录中单独运行 npm install。
测试
Solidity 测试套件覆盖路由器(闪电贷流程、所有者费用累积、双重控制、验证)和 P2P 托管(生命周期、基于时间的违约、三级费用模型和加成、重入攻击,以及一项 随机化资金守恒模糊测试)。
npm test # both features
npm run test:flashloans # router suite only
npm run test:loans # P2P suite only
文档
浏览 docs/ 查看完整文档:
- 架构 — 概览、资金池机制、Gas 分析
- P2P 设计 — P2P_LENDING_DESIGN.md、Lorrow 兼容性
- 安全 — 实时的诚实审计页面(涵盖两项功能,坦诚说明信任假设、测试内容和已知限制),以及路由器审计说明、重入分析、双重控制操作手册
- 部署 — 指南、网站、实时网络
漏洞披露:SECURITY.md · 贡献:CONTRIBUTING.md · 变更:CHANGELOG.md
免责声明
实验性、未经审计的 DeFi 软件。智能合约可能存在漏洞;贷款期限内抵押品价值可能波动;闪电贷是否有利可图取决于市场机会。使用风险自负,并请自行研究。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。