HackQuest
成都 · VIBE CODING DAY 闪电工作坊(30–45 分钟)

从 Web2 到 Solana:
用 AI Vibe 出你的第一个应用

不搞自嗨编程,先验证需求,再借力官方 Skill 护栏下达结构化指令。
30 分钟内跑通一个真正的 Solana Pay 扫码收银台,并一键部署至全球边缘网络。

01 / 架构认知

从 Web2 出发:网页接入一个共享网络

前端 UI、Tailwind、组件交互,你熟悉的 Web2 技术依然发挥核心作用。不同的是,后端的私有数据库与转账结算被替换为去中心化的 Solana 共享网络计算机。

Solana 官方网络总览:前端 App 接入由全球验证节点维护的 Solana Network
Apps 客户端应用连接 Solana Network 共享计算网络。图源:Solana 官方入门教材
系统构件 Web2 传统架构 Solana Web3 架构
身份认证 账号密码 / 手机验证码 / Session Cookies Wallet 钱包(管理非对称公私钥,用户主动签名授权)
业务逻辑 中心化服务器(Spring Boot / Node.js / Go) Program 链上程序(无状态智能合约,直接由网络执行)
状态存储 私有关系型数据库(MySQL / PostgreSQL) Account 链上账户(网络公开可寻址、存有真实余额与数据的单元)
前后端通讯 HTTP REST API / WebSocket RPC 节点(JSON-RPC 协议,前端直接向节点发起读写广播)
💡 Web2 开发者最容易踩的 4 个心智误区
  • 误区 1:连接钱包不等于登录成功:前端仅仅调用 connect() 只代表获得了用户的公共地址。若要验证身份,必须由钱包对特定消息完成密码学签名并在后端验证。
  • 误区 2:账户不是用户名:Solana 中的账户是一块独立的链上存储空间,用来存 SOL、代币余额或游戏数据。
  • 误区 3:做应用不需要自己写智能合约:常规转账、代币发售、订单标记,直接调用官方成熟的 System Program 和 Token Program,无需从零写 Rust 合约。
  • 误区 4:没有中心化服务器也能完成业务:浏览器前端直连 RPC 节点,即可完成交易组装、签名提交与状态查询全闭环。
02 / 数据模型

账户与程序:数据与逻辑的彻底解耦

与以太坊将代码与状态混合存储在合约内不同,Solana 采用纯粹的“代码与数据解耦”架构。程序只负责执行规则,所有数据存在独立的账户中。

Solana 官方账户图:地址映射到账户,账户内部包含 lamports、data、owner、executable
Solana 账户底层数据结构。图源:Solana · Accounts 核心概念
Account 核心字段剖析数据单元
  • lamports:账户持有的原生 SOL 数量(1 SOL = 10^9 lamports)。
  • data:任意字节数组,保存代币余额、游戏状态或业务记录。
  • owner:标记哪个 Program 拥有修改本账户数据的唯一法定权限。
  • executable:布尔值。若为 true,说明该账户自身就是一段已编译的只读代码程序。
核心启发:零合约开发架构优势

在 Solana 上,程序(智能合约)本身是只读的。当你想为活动收款时,你只需要让系统程序(System Program)去修改两个账户的 lamports 余额,完全不必编写、审计或部署自定义智能合约!

创建数据账户只需保留最低 SOL 余额以达到免租金(Rent-Exempt)阈值,交易手续费每次仅需不足 $0.001。

03 / 代币体系

代币与持有人:Mint、Token Account 与 ATA

SOL 的余额直接记录在原生账户的 lamports 字段中;而像 USDC 或社区代币这样的 SPL Token,则通过 Mint 与 Token Account 体系清晰拆分。

Solana 官方代币关系:Token Program 管理 Mint 与持有人的 Token Account
Token Program、Mint 与用户 Token Account 关系。图源:Solana · 代币体系
1. Mint 账户
定义一种代币的元数据,记录发行者权限、代币精度(Decimals,如 USDC 为 6 位)和当前总流通量。
2. Token Account
记录某一个特定钱包地址对该 Mint 的持有余额。每个人持有的每种代币都有独立的 Token Account。
3. ATA (关联代币账户)
由持有人公钥和 Mint 地址通过标准算法推导出的确定性代币地址,方便任何人在链上快速为该用户充值。
04 / 交易与指令

点击按钮之后:一笔交易的执行全生命周期

Solana 的一笔 Transaction(交易)可以打包多个 Instruction(指令)。如果其中任何一条指令失败,整笔交易自动全部回滚,保证原子性。

Transaction 打包 Instruction 1, 2, 3 原子执行
交易与指令的层级关系:一笔交易原子化执行多个指令。图源:Solana · Transactions
单条 Instruction 包含 programId、accounts 数组与 data
单条指令内部结构:指定 Program、涉及的账户列表及调用参数。图源:Solana · Instructions
⚡ 交易确认级别(Commitment Level)速查
  • processed:节点刚收到并打包出块,最快(约 400ms),但在极端网络分叉下有轻微重组可能。
  • confirmed(推荐默认):全网超过 66% 验证节点投票确认,亚秒级生效,商业收银台推荐监听此状态。
  • finalized:超过 31 个区块确认,不可逆转的最终状态。
05 / 派生寻址

PDA 机制:没有私钥的程序派生地址

PDA(Program Derived Address)是 Solana 的独创设计。它是通过程序 ID 加上一组自定义 Seeds(如用户名、订单号)计算得出的特殊公钥,它不落在椭圆曲线上,因此没有任何人拥有其私钥。

由 Program ID 与 Seeds 派生出的 PDA 账户
程序派生地址(PDA)推导原理。图源:Solana · PDA 机制
为什么 PDA 如此重要?无私钥金库

在现实业务中,你经常需要一个“托管金库”或“公信账户”来存押金、质押奖池。由于 PDA 没有私钥,黑客无法通过盗取私钥卷走资金,只有对应的程序本身(通过代码逻辑)才能给它的转账签名授权!

06 / 现实场景

实战需求:活动现场咖啡摊的极速收款台

我们选择一个最具现实代表性的场景:黑客松现场的咖啡能量补给站。摊主输入金额生成二维码,顾客使用手机 Phantom 扫码支付 0.01 Devnet SOL,大屏幕需在 1 秒内感应到账!

Solana Pay 官方交互时序:Merchant 生成二维码 -> Customer 扫码签名 -> RPC 广播 -> 商户链上侦测到账
Solana Pay 标准时序交互流。图源:Solana Pay · 官方 Transfer Request 指南
技术破局点:区块链本身就是你的 Webhook零服务器

在传统扫码支付中,商家必须搭建服务器等待微信/Stripe 发送 HTTP Webhook 回调。而在 Solana Pay 中:

  • 1. 独立 Reference 公钥:收银台每次生成订单时,在前端内存里随机生成一个全新 Keypair,其公钥记为 reference。
  • 2. 组装标准 URI:solana:<收款公钥>?amount=0.01&reference=&label=成都咖啡能量站。
  • 3. 顾客扫码打包:Phantom 识别二维码后,会自动将 reference 作为非签名的只读账户附加在转账指令中上链。
  • 4. 链上极速监听:收银台每隔 1.5 秒调用 client.rpc.getSignaturesForAddress(reference)。只要链上一出现该公钥,100% 确定该笔订单已支付,大屏立刻亮绿!
☕ 现场可玩:线上收银台 Demo 已就绪立即打开 Demo 页面 ↗

本课程制作的收银台 MVP 已一并发布上线。点击上方按钮或访问 /demo,输入或一键填充测试地址即可当场生成 Solana Pay 0.01 SOL 收款码并在 Devnet 上体验扫码确认闭环!

07 / 工具护栏

官方技能护栏:安装正规 Solana Skills

很多开发者被 AI 坑过,因为大模型喜欢盲目调用 5 年前已废弃的旧版类库。官方在 solana.com/zh/skills 提供了专属的 AI 开发技能包,杜绝幻觉。

Solana 官方 Next.js Kit 模板预览图
官方 Next.js Kit 模板,集成最新 @solana/kit 与标准钱包连接。图源:Solana Templates
# 安装 Solana 基金会官方推荐的 AI 开发技能包 npx skills add https://github.com/solana-foundation/solana-dev-skill
📖 Frontend with Solana Kit
位于 skills/solana-dev/references/frontend.md。约束 AI 必须采用 Tree-shakable、函数式的最新 @solana/kit,而非庞大笨重的 web3.js 1.x。
💳 Payments & Commerce
位于 skills/solana-dev/references/payments.md。详细指导 AI 如何正确构造符合 Solana Pay 开放标准的付款请求与 reference 链上核验逻辑。
08 / 提示词架构

提示词工程:前后对比填空法

给 AI 下指令就像填空。先准备一套通用、结构化的提示词骨架,再将具体的业务变量填充进去,AI 产出的代码就会极其稳定可靠。

📄 阶段 A:提示词通用架构模板(挖空版)

【角色定义】 你是一个精通 [指定官方开发标准] 的前端工程师。

【上下文规则】 先读 [.agents/skills/... 规范路径],严格采用 [@solana/kit 最新写法],严禁使用 [淘汰类库]。

【业务输入】 基于当前 Next.js 模板,实现一个 [具体业务场景]:
- 输入参数:[商户收款公钥]、[金额]、[网络环境 Devnet]。
- 核心机制:为每笔订单调用生成 [临时唯一 reference 公钥],拼接符合 [Solana Pay 规范] 的 URL,并渲染二维码。

【输出与验收】
- 添加 1.5 秒 RPC 轮询监听,一旦检出签名立刻切换为 [绿色成功状态] 并展示 [Explorer 凭证]。
- 严禁索取或硬编码私钥,确保 `pnpm typecheck` 0 报错。

🚀 阶段 B:本次实战提示词(填充完成版)

【角色定义】 你是一个精通 Solana Pay 与 @solana/kit 的全栈工程师。

【上下文规则】 遵循 `.agents/skills/solana-dev/references/payments.md`。使用 `@solana/kit`,严禁使用旧版 web3.js 1.x。

【业务输入】 在 `app/components/actions/solana-pay-card.tsx` 实现咖啡摊收银台:
- 依赖:使用 `qrcode.react` 渲染二维码。
- 机制:组件挂载时调用 `generateKeyPairSigner()` 生成临时公钥作为 `reference`。
- 协议:拼接标准 URL `solana:<商户地址>?amount=0.01&reference=&label=成都Vibe咖啡&message=能量补给`。

【输出与验收】
- 轮询 `client.rpc.getSignaturesForAddress(reference)`,检出签名后跳出“支付成功”并提供 Explorer 链接。
- 保留一个本机一键模拟转账按钮作为保底,确保 `pnpm typecheck` 0 错误。

09 / 全球发布

把网页发布出去:Cloudflare Skill 一键上线

做完 Demo 并不算结束,下午路演时评委需要能在自己的手机上亲自打开。我们使用 Cloudflare 的官方部署能力,几十秒内将 Next.js 部署到全球边缘网络。

1. 本地零报错验证
pnpm typecheck # 验证类型安全 (0 错误) pnpm build # 生产环境优化打包 pnpm test # 运行自动化单元测试
2. Cloudflare Pages 秒级发布已上线
# 配置 Cloudflare Skill 或直接使用 Wrangler npx wrangler pages deploy web --project-name solana-vibe-chengdu

线上演示主页:https://solana-vibe-chengdu.pages.dev ↗
实战 Demo 页面:https://solana-vibe-chengdu.pages.dev/demo ↗

10 / 生态赛道

可以做什么:Solana 核心赛道与头部案例

从 Solana 产品库 与 实际案例 寻找灵感。挑选一个细分切口,用 1 天时间做出最小闭环。

1. PayFi 商业支付最易出彩

标杆案例:Stripe (Pay with Crypto)、Solana Pay、Sphere。结合 400ms 出块,为独立开发者或跨国创作者做即时分账收款台。

  • 1 天 MVP 建议:活动门票即扫即开、数字商品无感微支付。
2. AI 智能体经济 (x402)前沿热点

标杆案例:x402 原生微支付、Pay.sh。基于 HTTP 402 状态码,AI Agent 自主按次为调用的 API 和算力支付稳定币。

x402 协议交互时序
x402 智能体按次结算时序。图源:Coinbase x402 文档
  • 1 天 MVP 建议:按次付费生成的 AI 报告网关、数据抓取悬赏池。
3. 社交交易 Blinks消费级破圈

标杆案例:Actions & Blinks、Dialect。把转账、投票或铸造操作解构为一条 URL,可在 X (Twitter) 或 Telegram 聊天框内直接展开成交互卡片。

  • 1 天 MVP 建议:推特一键给项目打赏 0.01 SOL 的微型 Blink。
4. 真实资产与扩展 (RWA)合规基建

标杆案例:Token Extensions、xStocks。利用转账钩子与合规白名单,将股票与现实资产上链映射。

xStocks 真实资产案例
xStocks 资产映射案例。图源:Solana 官方 Token Extensions 案例
  • 1 天 MVP 建议:会员白名单门禁资产、应收账款贴现面板。
11 / 甲方特别赛事

赢两次的机会:Solana Blitz v9 冲刺指南

由主办方 Solar (Solana 中文社群) 联合 @magicblock 组织的特别赛事现已正式启动!今天做出的项目,不仅能参加 Crypto World's Fair,还可以同时角逐 Blitz 专项大奖!

Solana Blitz v9 官方赛事海报 (10月5日-12日)
Solana Blitz v9 官方海报。图源:MagicBlock 官方 Luma 页面
🏆 赛事核心情报与奖池1,000 USDC
  • 活动周期:10 月 5 日 至 10 月 12 日(整整一周,现正火热进行中)。
  • 奖池分配:🥇 第一名 500 USDC | 🥈 第二名 250 USDC | 🥉 第三名 150 USDC | 🧙‍♂️ 特别奖 100 USDC。
  • 技术资格要求:使用以下技术开发的项目均可参与评奖:
    • Ephemeral Rollups (ER)
    • Private Ephemeral Rollups
    • MagicBlock VRFs (链上可验证随机数)
  • AI 极速开发文档:借助 AI Dev Skill 几分钟快速搭建:docs.magicblock.gg ↗
  • 组队与参赛入口:开发者目录找队友 ↗ | Luma 报名通道 ↗
MagicBlock Ephemeral Rollups 架构示意
MagicBlock 专项执行环境与 Solana L1 状态同步。图源:MagicBlock 官方文档
💡 必胜策略:一鱼两吃 (Double Win)

“为 Crypto World's Fair 开发的项目,同时提交到 Blitz v9!” 两个赛事的截稿时间完全吻合(10 月 12 日)。只要你的项目涉及实时交互、对局逻辑或 VRF 随机数,一份代码提交两个赛道,双份赢奖机会!

12 / 速查与行动

用到时从这里查:权威资料与冲刺安排

黑客松拼的是执行力。把有用的工具放在手边,下午 13:30 准时开冲!

⏱ 今日日程安排
  • 11:45 - 12:30 | 确定创意 & 填写需求卡
  • 12:30 - 13:30 | 社交午餐 & 自由组队
  • 13:30 - 17:00 | 高能 Coding 冲刺(导师全程指导)
  • 17:00 - 17:30 | 项目提交 & 准备 Demo
  • 17:30 - 18:30 | Demo Day 现场路演 🏆
📦 配套资源与在线 Demo即开即用