当前位置: 首页 > news >正文

Solana Web3 快速入门:创建并获取钱包账户的完整指南

在区块链技术的浪潮中,Solana 以其高性能和低成本的特性迅速崭露头角,成为 Web3 开发的热门选择。本文将带你走进 Solana 的世界,通过一个简单的实操案例,详细讲解如何创建 Solana 钱包账户、请求 SOL 空投并获取账户信息。无论你是区块链新手还是开发者,这篇教程都将为你提供清晰的指引,快速上手 Solana 开发!

本文基于 Solana 官方文档,结合实际操作,展示如何使用 @solana/web3.js 库生成密钥对、为新地址请求 SOL 空投,并查询账户信息。教程涵盖环境配置、项目初始化、代码实现和本地节点启动等步骤,适合初学者快速掌握 Solana 开发基础。最终,你将学会如何在 Solana 网络上创建并操作钱包账户,为进一步的 Web3 开发打下坚实基础。

获取钱包账户

  1. 生成一个新的密钥对(公钥/私钥对)。
  2. 请求 SOL 空投以为新地址提供资金。
  3. 检索已资助地址的账户数据。

实操

在 Solana 上,为新地址提供 SOL 资金会自动创建一个由系统程序拥有的账户。所有“钱包”账户只是由系统程序拥有的账户,这些账户持有 SOL 并可以签署交易。

前提

solana --version
solana-cli 2.1.21 (src:8a085eeb; feat:1416569292, client:Agave)rustc --version
rustc 1.87.0 (17067e9ac 2025-05-09)anchor --version
anchor-cli 0.31.1

创建项目并切换到项目目录

mcd get_wallet_account
/Users/qiaopengjun/Code/Solana/solana-sandbox/get_wallet_account

初始化项目

pnpm init
Wrote to /Users/qiaopengjun/Code/Solana/solana-sandbox/get_wallet_account/package.json{"name": "get_wallet_account","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC","packageManager": "pnpm@10.9.0"
}tsc --init Created a new tsconfig.json with:                                                                                       TS target: es2016module: commonjsstrict: trueesModuleInterop: trueskipLibCheck: trueforceConsistentCasingInFileNames: trueYou can learn more at ***********************

安装依赖

solana-sandbox/get_wallet_account on  main [?] is 📦 1.0.0 via ⬢ v23.11.0 on 🐳 v27.5.1 (orbstack) 
➜ pnpm install --save @solana/web3.js   solana-sandbox/get_wallet_account on  main [?] is 📦 1.0.0 via ⬢ v23.11.0 on 🐳 v27.5.1 (orbstack) 
➜ pnpm install --save @solana/kit

查看项目目录

solana-sandbox/get_wallet_account on  main [?] is 📦 1.0.0 via ⬢ v23.11.0 on 🐳 v27.5.1 (orbstack) 
➜ tree . -L 6 -I "target|test-ledger|.vscode|node_modules"
.
├── package.json
├── pnpm-lock.yaml
├── src
│   └── fetch_account.ts
└── tsconfig.json2 directories, 4 files

fetch_account.ts 文件

import { Keypair, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js";(async () => {const keypair = Keypair.generate();console.log(`Public Key: ${keypair.publicKey}`);const connection = new Connection("http://localhost:8899", "confirmed");// Funding an address with SOL automatically creates an accountconst signature = await connection.requestAirdrop(keypair.publicKey,LAMPORTS_PER_SOL);await connection.confirmTransaction(signature, "confirmed");const accountInfo = await connection.getAccountInfo(keypair.publicKey);console.log(JSON.stringify(accountInfo, null, 2));
})();

启动本地节点

solana-sandbox/get_wallet_account on  main [?] is 📦 1.0.0 via ⬢ v23.11.0 on 🐳 v27.5.1 (orbstack) 
➜ solana-test-validator
Ledger location: test-ledger
Log: test-ledger/validator.log
⠈ Initializing...                                                                                                Waiting for fees to stabilize 1...
Identity: FFQCYjHdHYxfeAjTrTVu2pzeg8CYspy2GZTSNdwX8XMb
Genesis Hash: 54MLkuZMgbEfuVdTGg56XavmWVmao1Y63QK1wTgvoCpV
Version: 2.1.21
Shred Version: 39123
Gossip Address: 127.0.0.1:1024
TPU Address: 127.0.0.1:1027
JSON RPC URL: http://127.0.0.1:8899
WebSocket PubSub URL: ws://127.0.0.1:8900
⠴ 00:00:42 | Processed Slot: 89 | Confirmed Slot: 89 | Finalized Slot: 58 | Full Snapshot Slot: - | Incremental Sna

执行 TypeScript 文件

solana-sandbox/get_wallet_account on  main [?] is 📦 1.0.0 via ⬢ v23.11.0 on 🐳 v27.5.1 (orbstack) 
➜ ts-node src/fetch_account.ts
Public Key: B7fkF4vmjKZtzZkSqcoH5RZRmbQYzujjBWZSEbr5oibp
{"data": {"type": "Buffer","data": []},"executable": false,"lamports": 1000000000,"owner": "11111111111111111111111111111111","rentEpoch": 18446744073709552000,"space": 0
}

总结

通过本教程,我们完成了 Solana 钱包账户的创建与基本操作,包括生成密钥对、请求 SOL 空投以及获取账户信息。Solana 的高性能和简单易用的开发工具(如 @solana/web3.js)使其成为 Web3 开发的理想选择。希望这篇文章能帮助你快速上手 Solana,为探索更多区块链应用场景奠定基础!继续学习和实践,你将能够构建更复杂的去中心化应用。更多相关文章,https://t.me/gtokentool

http://www.lqws.cn/news/121231.html

相关文章:

  • Axure高保真LayUI框架 V2.6.8元件库
  • Axure 下拉框联动
  • 2025年Splunk的替代方案:更智能的安全选择
  • 力提示(force prompting)的新方法
  • PHP 复制商品扩展实操:轻松切换一号通、99api ,实现商品复制功能
  • 【Linux 】centos8搭建nextcloud全过程
  • 直播美颜SDK深度解析:AI人脸美型与智能美白技术揭秘
  • 机器学习实战37-基于情感字典和机器学习的股市舆情分析可视化系统
  • 微信小程序开发一个自定义组件的详细教程
  • 概念全解析:结构化数据,半结构化数据,非结构化数据分别是什么意思?
  • TPU(张量处理单元)和 TVM(张量虚拟机)深度分析
  • 分类预测 | Matlab实现CNN-BiLSTM-Attention高光谱数据分类预测
  • 【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南
  • 美业破局:AI智能体如何用数据重塑战略决策(5/6)
  • VSCode 工作区配置文件通用模板创建脚本
  • OpenHarmony平台驱动使用(十五),SPI
  • springboot--实战--大事件--文章分类接口开发详解
  • 解决:如何在Windows adb使用dmesg | grep检查内核日志
  • 系统调试——ADB 工具
  • yum更换阿里云的镜像源
  • 【论文阅读笔记】Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation
  • 突破数据孤岛:StarRocks联邦查询实战指南
  • RDMA简介3之四种子协议对比
  • 数据结构第一章
  • git操作指南
  • layer norm和 rms norm 对比
  • 数据结构(7)—— 二叉树(1)
  • Facebook用户信息爬虫技术分析与实现详解
  • Kafka入门- 基础命令操作指南
  • springboot 微服务 根据tomcat maxthread 和 等待用户数量,达到阈值后,通知用户前面还有多少用户等待,请稍后重试