投资
Bloom 是一个交易市场,用于 受权限控制的现实世界资产. 每个资产都是一个普通的 Solidity 合约,只会在 Rome 链上部署一次,而谁可以持有它的规则就写在该合约内部。本指南将带领买家从落地页开始,浏览资产、检查资格、申请加入允许名单、购买并持有——随后还会说明,对于使用 Solana 钱包签名的持有人,有一件真正不同的事情。
规则随资产一起流转。 谁可以持有资产由资产合约本身在每次转移时强制执行——不是由本网站决定。这里任何界面上的内容都不能覆盖它,也没有绕过它的路径。Bloom 只是链上的一个窗口;真正作出决定的是链。
对于买家而言,“permissioned”是什么意思
受权限控制的资产拥有一个 允许名单:发行方已决定可以持有它的一组地址。允许名单不是 Bloom 的功能——它存在于附加到资产合约的一个模块中,资产在每次铸造、销毁和转移时都会查询它。
链上只保存关于你的一条事实:针对你的地址的一个是或否结果。 链上或本应用中从不存储任何文件、个人信息或身份声明。当发行方接纳你时,最终上链的只有
isWhitelisted(yourAddress) = true。完整的合规模型见 COMPLIANCE.md.
由此会产生两个后果,而且在产品中都能看到:
在你能够购买之前,系统会询问该资产是否 你的地址 可以持有它。拒绝是资产规则本身的事实,而不是你的钱包出了问题。
向发行方未批准的地址进行转移 会在链上回滚。资产会直接拒绝;无需任何界面去拒绝。
两个钱包世界
单个 Bloom 资产可通过 两者都 EVM 钱包(例如 MetaMask)和 Solana 钱包(例如 Phantom)访问。你一次只能连接一个钱包。
EVM 钱包
它自己的 EVM 地址,与任何 EVM 链上一样
一笔 EVM 交易
Solana 钱包
一个 EVM 地址 由你的 Solana 公钥派生而来
你的 Solana 签名
对于 EVM 钱包,没有什么新东西需要学习。对于 Solana 钱包,资产位于一个 派生的 地址上——计算方式为 keccak256(solana_pubkey)[12..32] ——而且只有你的 Solana 签名才能驱动它。不存在 桥、第二个代币或 EVM 账户 参与其中。这里在以下部分有完整说明: Solana 持有人部分 以及下方的 LANES.md.
落地页

落地页(/) Solidity 资产,同时面向 Solana 和 EVM 开放 ——并为你提供两个入口: 投资者 (会将你带到以下开放资产页面 /invest) 发行方。作为买家,请选择 投资者.
两行, Solana 钱包 以及 EVM 钱包,列出你的浏览器通过 EIP-6963 和 Wallet Standard 发现协议实际公布的钱包。不会显示你未安装的钱包;每个钱包的名称和图标都来自其自身。
在底部,有一个 合约 部分会列出此部署所交互的地址——代币工厂、共享实现、权限路由器、一级销售前端和现金代币——每个地址都链接到区块浏览器,因此应用本身从不会以自己的口吻断言某个地址。
“使用 Solana 怎么可能实现?”

落地页包含一段说明,解释 Solana 钱包如何持有 Solidity 资产。它强调三点:
一次部署。 该资产是一个普通的 Solidity 合约,只部署一次。任何地方都没有它的桥接副本——一旦有第二份副本,恰恰就会让它脱离规则。
两个钱包世界。 EVM 钱包以访问任何链的方式访问该合约。Solana 钱包访问 同一个 合约,因为 Rome 链运行在 Solana 之中:资产持有在由你的 Solana 密钥派生出的一个 EVM 地址上,而你的签名是唯一能够驱动它的东西。
规则由资产自身掌握。 每次转移时,谁可以持有它都由合约强制执行——不是由本网站,也不是由桥接来决定。发行方未批准的地址根本无法接收它。
浏览开放资产

/invest 列出当前所有正在开放销售的资产。每一行你都能看到:
资产
直接从代币本身读取的资产名称和符号
价格
单个单位的价格,以 wUSDC
已售出
已售出的单位数 / 提供的单位数,并附有进度条
表格上方的摘要统计 当前开放 (有多少销售正在进行), 在此发行 (此链已发行多少资产),以及 支付币种 (wUSDC,即此部署中每笔销售使用的现金代币)。
此页面上的任何内容都不是写死的。 价格、库存和状态都会在每次访问时从链上实时读取。如果链没有响应,页面会明确说明—— “链未响应……” ——而不是显示过期数字或声称为空。 “目前没有任何商品在售” 是对链状态的判断,而且只有当链确实返回空列表时才会出现。
你无需连接钱包也能查看价格和库存。要购买,则需要钱包:页面会显示一个 连接钱包 提示,并在两个标题下提供你的 EVM 和 Solana 钱包。选择一行会打开该资产的详情页。
单个资产

资产页面(/invest/[address])分为两部分:左侧是资产事实和规则,右侧是你的资格信息和购买面板。
事实信息
价格
单个单位的价格,以 wUSDC
可用
公开销售中仍可用的单位数
收益支付币种
任何收益分配所使用的货币(wUSDC)
谁可以持有
页面列出了该资产执行的三条规则:
允许的持有人
经发行方批准的地址。资产在每次转移时都会检查。
最小值
1 个单位。无锁定期。
转移
只能转移到另一个允许的地址,且来自任一钱包世界。
资产会在每次转移时自行检查这一点。本页面上的任何内容都无法覆盖它。 这些规则被表述为关于代币的事实,而不是本应用的政策,因为它们本来就是这样。
资格——在购买前由代币本身检查

在向你提供购买之前,资产页面会询问资产自身的允许名单模块, 你的地址 你是否可以持有它。资格卡片会显示以下状态之一:
连接后检查
尚未连接钱包。连接一个钱包以执行检查。
检查中……
已连接;链上检查尚未完成。
已允许
你的地址可以持有该资产。
不允许
资产规则拒绝了你的地址。页面会提供一个链接,供你申请加入允许名单。
不可用
当前无法读取检查结果(并非拒绝)。
该检查是双向的。 购买会将单位 从销售页面转给你,因此这笔转移的双方都必须在允许名单中。Bloom 正是这样提问——如果只做单向检查,会把你判定为符合资格,随后却看到购买回滚,因为销售页面并未列在该代币的允许名单中。
一旦你的地址加入允许名单,同一张卡片会显示 已允许,你就可以购买:

当你被拒绝时,显示的原因是 代币自身的,会原文引用。Bloom 从不会就你为何被拒绝写出一句说明。如果该资产尚未关联允许名单模块(草稿状态),则它是 无门槛的 ——没有任何限制在约束任何人,因此你是被允许的。
如果你被拒绝,卡片会链接到 申请加入允许名单.
申请加入允许名单

/apply 是你请求发行方接纳你的地址的地方。其导语已说明全部内容: 无需文件。仅需声明。
表单中没有值得泄露的内容,也不会向任何链写入任何东西。 申请是由发行方在链下决定的一条记录。发行方在其自身系统中执行自己的检查;允许名单的写入发生在他们一侧,而最终上链的只有针对你地址的是或否结果。
你只需提供四项内容,不多不少:
将持有它的地址
从你已连接的钱包中预填。对于 Solana 钱包,这就是你的 派生的 地址——资产所在的地址,而不是用于签名的密钥。
司法管辖区
固定列表中的一项(新加坡、阿拉伯联合酋长国、瑞士、英国)。
你是
个人、合格投资者个人或机构。
两项声明
两项都必须接受:你代表自己行事并控制该地址;以及你接受由发行方决定谁可以持有该资产,并且发行方可以撤销该资格。
该 ? 位于导语旁的说明解释了为何不要求文件:发行方只需要他们会据此采取行动的信息;你可上传的任何内容都不会存储在这里;而上链记录仅是一个是或否。
申请步骤:
确认地址,选择司法管辖区和持有人类型,并接受两项声明。
点击 提交申请。表单会在本地进行校验,存储端也会在服务器上重新检查所有内容,因为表单只需一次请求就可能被绕过。
系统会给你一个 私密链接 ,格式为
…/apply/status?ref=AP-XXXX-XXXX-XXXX.
请保存该链接——它是返回你的申请的唯一方式。 该引用由 60 位密码学随机性生成,并且 是 授权凭证:没有其他东西挡在你的声明前面,也没有账户或密码可用于找回它们。
在演示中,一个 测试接线 提示会引导你前往 /approve,在那里你可以批准自己的申请以完成整个流程。真实发行方会在其自己的系统中完成这一步—— 见下文.
你的申请状态,以及删除声明

/apply/status 根据引用编号读取申请(来自 ?ref= 链接,或此浏览器记住的最后一个)。
页面会显示你的状态—— 在发行方处, 你可以持有该资产,或 已拒绝 ——以及一张详情表(引用编号、申请日期、地址、资产、司法管辖区,还有一行 检查 )和一段简短的事件时间线。如果你已获批准,将出现一个 购买该资产 链接。若被拒绝,则会显示发行方自身的理由,并按原文引用。
该 检查 这一行反映了发行方自身的 KYC 记录。在此演示中没有接入任何提供商,因此它显示为 “仅声明——未要求文件” 而不是暗示一次并未发生的验证。
删除你所声明的内容
你可以随时在此页面删除你的声明。
删除会销毁声明,但保留决定。 你关于自己的陈述会被删除且无法恢复。发行方的决定会保留,因为它已经在公链上公开执行过——而撤销这一点需要由发行方签名完成,不是你可以执行的删除。(发行方自身的 KYC 记录,如有,也会保留,因为那是发行方接纳一个如今已在公链上的地址的证据;在这里删除它,也不会删除其提供商那边的任何内容。)
/approve ——测试接线替代项

/approve 之所以存在,是为了能在演示中完整走通整个流程。它带有一条横幅,写着 “测试接线——不是发行方”,而这条横幅正是它存在得合理的原因:在生产环境中,发行方会在其自身工作流内审批申请,而不是在这里。
其中真实的部分是: 批准是真正的链上允许名单写入。页面会调用一个已部署的 TestApprover 合约,该合约 已在演示资产上启用 (Mineral Vault I, ARCV,位于 0x2b13ba16a429bf630f94882e477fe775d34b7c74)。该合约需要 任何角色 来自调用者——任何人都可以通过它批准任意地址——这正是它存在的全部原因:它让演示流程可以对任何钱包、来自任一路径地闭环。
要批准你自己的地址:
连接你提交申请时使用的钱包(EVM 或 Solana)。你的地址会自动填入。
点击 批准此地址。写入的前置条件和后果会在按钮下方折叠显示——展开 “此操作的作用” 可在签名前准确了解将发生什么。
成功后,页面显示 “已批准。申请人现在可以持有该资产。”
如果你使用 Solana 钱包登录,提示会显示 “这将批准从你的 Solana 密钥派生出的地址” ——本次运行进行签名的地址 所对应的是 就是派生后的地址;其签名使用的密钥 是 你的 Solana 密钥。
在生产环境中,这由发行方在其自身系统中做出决定。 演示中的
TestApprover设计上是开放的,因此整个流程可以走通;真实的允许名单写入则由发行方持有的某个角色进行控制。合规模型本身没有任何变化——仍然由发行方决定,链上仍然只是一个布尔值,而且任何地方都没有文件。
一旦获批,返回资产页面;你的资格现在显示为 已允许.
购买
购买面板位于资产页面上的资格卡片下方。
需要先准备 wUSDC 吗? 每笔销售都以 wUSDC 定价,而新钱包中没有它。 将资金带入 Rome 会引导你完成资金充值:从 Sepolia 桥接 USDC 或 ETH,然后将桥接来的 gas 包装成 wUSDC——全部都在
/bridge页面上完成。

输入数量 单位 。面板会显示单价以及你将支付的总额,以
wUSDC计。(购买实际扣取的现金会根据基础单位价格计算,因此获批金额始终与报价金额一致。)点击购买控件。购买不是一次点击,而是一段简短流程:如果该销售尚未获准扣取你的
wUSDC,则会先出现一个 授权 步骤(“允许销售扣取你的现金”),然后再进行 购买 本身。每一步都以其按钮开头,并将其 前置条件 以及 后果 折叠显示在按钮下方——签名前只需再点一下——并在运行时标明其阶段—— “等待你的钱包……”,然后 “落到链上……”。该流程会在各步骤之间重新检查条件,因此如果销售在你授权后关闭,购买会停止,而不会回滚。
成功后,面板显示 “已购买。它将显示在持仓中。”
如果你的钱包处于错误的网络,面板会明确提示,并提供切换到该资产链的选项,而不是让按钮毫无反应。
购买会通过与任何转移相同的允许名单门槛。 只有当销售页面本身和你的地址都被允许时,销售页面才会将单位转给你。Bloom 端没有任何检查可以替代资产自身的检查。
你的持仓
/portfolio 显示你持有的内容。连接持有该资产的钱包后,你将看到:

一个摘要—— 总价值 (以
wUSDC), 资产 (你持有多少种不同的资产),以及 已收到收益;一个 持仓 列出每项资产、您的持有数量及其价值的表格。
所有内容都直接从链上实时读取。当您尚未持有任何资产时,页面会明确显示,并链接到开放销售。 已收到收益 目前显示为短横线:读取您的收益发放历史意味着要将分配事件一直回溯到该资产的首个区块,这项工作仍在推进中——在本该是一个……的位置,短横线更为诚实 0.00 本应是一个声明。
持仓是一个视图,不是市场。 Bloom 展示的是从一级销售中买入资产并持有它。该资产本身允许将其转移至 其他获准地址 ,可由任一钱包环境发起(这正是其明示规则之一),但 Bloom 目前并未提供二级转移或出售控制。
对于 Solana 持有者
以上内容同样适用于您,且不作任何更改。本节只说明一个确实属于您的意外情况: 该资产存放在一个您的 Solana 钱包永远不会列出的地址上,以及这为何是安全的。
托管链

当您连接 Solana 钱包时, /portfolio 显示一个 持有于 行显示资产所在的 EVM 地址,以及一个 这是如何持有的? 切换按钮,可打开一个托管面板,以三步说明派生过程:
您的 Solana 密钥 ——它已存在于您的钱包中。它用于签名;从不离开。
计算得到——持有该资产的地址 ——派生出的 EVM 地址。它是 算术结果,而不是账户:它由您的密钥推导而来,并不存在对应的私钥。
什么可以移动它 ——只有来自您密钥的签名才能移动该地址上的内容。
为什么这很安全。 该资产驻留于 EVM 状态中:其余额存储在 Rome 程序的账户内。不存在 对应的 SPL 铸币、没有代币账户,也没有任何原生 Solana 对象可供移动——因此 Solana 侧的基础设施没有任何指令能够将其移出。只有您的 Solana 签名才能驱动该派生地址,而它所能表达的每一次移动,实质上都是对资产合约的调用,该合约会执行允许名单校验。无论是由 EVM 密钥还是 Solana 密钥签名,向未获准地址的转账都会以相同方式回滚。这正是权限资产所需要的属性——见 LANES.md.
由于没有可列出的 SPL 代币, 您的 Solana 钱包不会显示该 RWA 持仓 ——Bloom 应用是您的持仓界面。丢失的 Solana 密钥通过发行方流程找回,而不是通过链外转移资产。
支付,以及额外的签名提示
您使用自己钱包中的 lamports 付款。 交易费用由您的 Solana 钱包支付;派生的 EVM 地址从不需要充值。
每个操作都是一笔原子性的 Solana 交易。 受限转账、批准、购买——每一项都是一笔完整交易,并各自独立签名。一次购买是一个 批准 然后是一个 购买,因此它是 两次签名 ,在 Solana 通道上总计如此。
账户较多的操作可能会增加提示。 大多数流程都能容纳在一笔 Solana 交易内(例如,商店购买目前会解析为 22 个账户,约 1,061 字节,仍在 1,232 字节上限以内)。涉及更多状态的操作——例如首次持有者,其代币账户仍需创建——可能会超过该限制,此时客户端会回退到一种更大的交易格式,并基于为此创建的查找表构建。此类步骤各自都会触发钱包提示,因此一次购买可能变成三到四次签名。您的钱包会每次都询问;逐一批准是预期行为。
Solana 通道仅支持原子性。 每个 Bloom 流程都是一笔在一笔 Solana 交易内执行的 EVM 交易。“多步骤流程”(先批准,再购买)是多笔完整交易,每一笔本身都是原子的——并不是把一次执行拆分到多笔交易中。如果某个调用无法以原子方式容纳,解决办法是缩小调用规模,而不是切换通道。
合规真正落实在何处
为总结各项约束分别由谁执行,避免将这里的任何内容误认为是 Bloom 政策:
谁可以持有该资产
资产的允许名单模块,在每次转账时
本网站
向未获批准地址的转账
由资产在链上回滚
任何链下过滤器
关于您的存储内容
一个布尔值(isWhitelisted)每个地址一个
任何文档或个人身份信息,存于任何地方
谁可以为您准入
发行方的链下决定
Bloom
要了解完整模型,请阅读 COMPLIANCE.md;要了解双通道机制, LANES.md.
这不是演示图。 一位真实买家通过 EVM 钱包购买了该资产,另一位真实的 Solana 钱包则在 Solana 通道上买下了它——同一代币、同一允许名单、同一 wUSDC。每笔交易都链接在 证据 页面上。本指南中的“已获准”卡片、持仓以及 Solana 托管链,展示的都是这些买家在这些交易之后的状态。
最后更新于
这有帮助吗?