---
title: "如何建立 Solana 錢包：技術指南"
description: "本文介紹 Solana 錢包的基礎知識，並說明如何設定自己的基本錢包與智慧錢包。"
---

# 如何建立 Solana 錢包：技術指南

過去幾年，Solana 迅速崛起，成為活躍度最高的區塊鏈網路之一，平均每日有超過 [120 萬活躍用戶](https://coincentral.com/solana-outperforms-ethereums-early-stage-with-2-85b-revenue/)，每日交易量（非投票）超過 [6,000 萬筆](https://blockworks.com/analytics/solana/solana-onchain-activity?ref=blog.quicknode.com)。這些活動來自 DeFi、DePIN、機構與企業等各方，交易速度極快，手續費也只需幾分之一分錢。

如果你想在 Solana 上開發並接觸這個快速成長的生態系，從錢包開始會是不錯的切入點。錢包是與任何鏈互動的入口：簽署交易、持有資產、驅動應用程式。

在這份指南中，我們會帶你使用 Alchemy 的[穩定 RPC 端點](https://www.alchemy.com/solana)建立一個一般的 Solana 錢包，實現無縫的網路連線，接著再比較一般錢包與智慧錢包的差異。我們先從 devnet 開始，讓你可以測試而不需要花真正的 SOL。

## Solana 上錢包的基礎概念

在 Solana 上，錢包的運作方式跟你在 Ethereum 上熟悉的模式不太一樣。Solana 並沒有嚴格區分使用者控制的[外部持有帳戶（EOA）與智慧合約](https://www.alchemy.com/docs/ethereum-accounts)，而是把所有東西都視為[帳戶（accounts）](https://solana.com/docs/core/accounts)，也就是區塊鏈上的資料儲存單位。這裡的「錢包」通常只是一組金鑰對（公鑰與私鑰），讓你能控制一個或多個帳戶。帳戶可以持有 SOL 代幣、其他資產，甚至是[程式（programs）](https://solana.com/docs/core/programs)的可執行程式碼（Solana 版本的智慧合約）。

這種統一的設計讓一些有趣的功能得以實現，像是程式衍生地址（PDA），程式可以產生地址，甚至能在不需要使用者私鑰的情況下代表使用者簽署交易。

這比 Ethereum 的模式更有彈性，Ethereum 中 EOA 純粹用於簽署，合約則單獨處理邏輯。若想深入了解 Solana 的帳戶模型，可參考 [Solana 官方文件中關於帳戶與錢包的說明](https://solana.com/docs/core/accounts#accounts-and-wallets)。

Solana 錢包大致分為兩類：

- **一般錢包（以金鑰對為基礎）**：這是最基本的加密金鑰對，用於簽署交易與管理帳戶。適合用於腳本或測試，但你需要手動處理金鑰與手續費。
- **智慧錢包（具備帳戶抽象化）**：這類錢包隱藏了金鑰管理等繁瑣細節，提升使用體驗。智慧錢包支援社交登入（例如用電子郵件或 passkey 登入，取代助記詞）、gas/rent 代付（由他人支付交易手續費）、批次交易（一次執行多個動作），甚至透過可程式化邏輯實現自動化行為。Solana 的設計讓這些功能特別強大，超越了 Ethereum [ERC-4337](https://www.alchemy.com/overviews/how-do-smart-contract-wallets-work) 僅著重於使用者體驗調整的範疇。想深入了解 Solana 的帳戶抽象化，可參考 [Solana Cookbook 中關於錢包管理的內容](https://solana.com/developers/cookbook/wallets/create-keypair)，以及 [ERC-4337 在 Solana 上的深度解析](https://solana.com/developers/evm-to-svm/erc4337)。

在本教學中，我們會使用 Alchemy 的 RPC 端點建立一個一般錢包，讓你不需要自行架設節點就能穩定存取 Solana 網路。若要使用社交登入等智慧錢包功能，可將錢包供應商與 Alchemy 的基礎設施搭配使用。

## 前置準備：設定你的 Devnet 環境

在開始寫程式之前，先確認你已經準備就緒。本教學假設你已具備基本的 JavaScript 知識，但我們會沿途解釋相關概念，讓每個人都能跟上。你需要準備：

- **Node.js（v16 或以上版本）與 npm/yarn**：這是在瀏覽器外執行 JS 程式碼的執行環境。如果還沒安裝，可以從 [nodejs.org](https://nodejs.org/) 下載。
- **像是 [VS Code](https://www.alchemy.com/dapps/vs-code) 或 Cursor 這樣的程式碼編輯器**：用來撰寫與除錯程式碼。VS Code 是免費的，而且有許多區塊鏈開發相關的擴充套件，可以從[這裡](https://code.visualstudio.com/)設定。Cursor 則像是更酷、具備 AI 功能的 VS Code，可以從[這裡](https://cursor.com/agents)了解更多。
- **基本 JavaScript 知識**：範例使用 Node.js 與 Solana web3.js。
- **一個 Alchemy 帳號**：到 [dashboard.alchemy.com](https://dashboard.alchemy.com/) 免費註冊。建立新的 app，選擇 Solana（測試用 devnet，正式環境用 mainnet），並取得你的 API key。順便也可以啟用像 Sepolia 這樣的 EVM 鏈，以支援混合鏈應用，這對跨鏈應用很有幫助。
- **一般錢包所需項目**：安裝 [Solana web3.js library](https://www.npmjs.com/package/@solana/web3.js)，用於處理金鑰產生、連線與交易。這個函式庫是與 Solana 程式互動的首選工具。

  `npm install @solana/web3.js`

小提醒：所有內容先在 devnet 上建置。這是主要的測試環境，能完美模擬部署到 mainnet 的情境，讓你測試合約、驗證流程、確認一切正常運作。等你有信心、且已在 testnet 上部署並充分測試後，部署到 mainnet 只需要換掉 RPC URL 即可，不需要更動任何程式碼，直接切換就行。

## 了解 Solana 的錢包結構

在產生錢包之前，讓我們先退一步，快速說明 Solana 錢包的運作方式。這有助於你理解接下來要進行的步驟為何如此設計，尤其是如果你是從 Ethereum 轉過來的話。

- **帳戶 vs. 錢包**：在 Solana 中，錢包本質上是一組「擁有」帳戶的金鑰對。帳戶就像存放資料的容器：可以儲存你的 SOL 餘額、代幣，或程式碼。與 Ethereum 不同，Ethereum 中 EOA（使用者地址）與合約地址是分開的，但 Solana 模糊了這條界線：所有東西都是帳戶。這代表你可以隨時建立帳戶、分別為它們注資，甚至讓程式透過 [PDA](https://solana.com/docs/core/pda) 來控制帳戶。產生金鑰時不會自動建立帳戶；你需要注資才能初始化帳戶。若想深入了解，可參考 [Solana 的核心概念](https://solana.com/docs/core)。
- **以 rent 取代動態 gas 費**：Solana 不像 Ethereum 那樣對每個計算單位收取 gas 費：交易採固定手續費（非常低廉，截至 2025 年平均約為 $0.00025），但如果帳戶餘額低於某個門檻（約每 KB 0.00089 SOL），帳戶就需要支付「rent」以維持資料持續儲存在鏈上。這就像儲存押金一樣：可以預付，或維持足夠的 SOL 以豁免此費用。這樣的機制能透過清除閒置帳戶讓網路保持精簡。交易仍然需要支付手續費，但 rent 是用於資料持久化的獨特機制。可以把它跟 Ethereum 的 gas 做比較，gas 是按每個操作收取，且在壅塞時可能暴增。Solana 的模型則優先考慮速度。詳情可參考 [Solana 的 rent 文件](https://solana.com/docs/core/fees#rent)。
- **PDA 與可程式化**：程式可以衍生出[「程式衍生地址」](https://solana.com/docs/core/pda)，這些地址看起來跟一般地址一樣，但由程式碼而非金鑰控制，這使得自動簽署等智慧錢包功能得以實現。這種機制比 Ethereum 的合約錢包更深植於 Solana 核心架構之中。

理解這些概念有助於你明白為什麼 Solana 錢包天生就感覺更「可程式化」。這一切都源自於帳戶的彈性設計。

## 如何建立一個一般 Solana 錢包：逐步教學

一般錢包是最基本的入門設定：一組用於簽署交易的簡單金鑰對。適合用於後端腳本、測試，或是你想要完全掌控而不使用抽象化功能的情境。在本教學中，我們會使用 `@solana/web3.js` 來產生金鑰對。

接著我們會使用 Alchemy 的 RPC 連接到網路；沒有 RPC 連線，你的錢包就無法查詢餘額或發送交易。

### 步驟一：產生金鑰對

在 Solana 上產生錢包，代表建立一組全新的加密金鑰對，也就是一對數學上相互關聯的金鑰。公鑰會成為你在 Solana 上的錢包地址，可以自由分享給任何需要向你付款或與你的帳戶互動的人。私鑰（也稱為 secret key）則用來證明你擁有該地址，並讓你能夠簽署交易。

這裡有一個與 Ethereum 重要的區別：在 Ethereum 上，當你產生一個外部持有帳戶（EOA）時，它會立即「就緒」並存在於區塊鏈上。而在 Solana 上，產生金鑰對只是建立了加密金鑰，實際的鏈上帳戶要等到有人為該地址注資後才會存在。這是 Solana 帳戶模型的一部分，帳戶需要具備 rent 豁免餘額才能在鏈上持續存在。

建立一個新的 JS 檔案（例如 regular-wallet.js），並執行以下程式碼片段：

<CodeSnippet language="javascript" code={`import { Keypair } from '@solana/web3.js';

const wallet = Keypair.generate();
console.log('Public Key (Wallet Address):', wallet.publicKey.toString());
console.log('Secret Key:', wallet.secretKey); // Secure this immediately! Never log in production.`} />
用 node.js 執行這個腳本，完成：你已經有一個錢包了。

以下是你應該會得到的回傳結果：

- **公鑰（錢包地址）**：這是一組以 base58 編碼的字串，看起來會像 `7xj9WkvP6Az8vG5nXJh4Fq3qY8kPqT9wXVZN2xMqGnD4`。這是你想收款或與其他[應用程式](https://www.alchemy.com/dapps/top/defi-dapps)連線、查詢餘額時會分享出去的內容。可以把它想像成你的銀行帳號，公開分享是安全的。
- **Secret Key**：這會以 `Uint8Array`（64 個位元組的陣列）的形式回傳。這是你的私鑰，也是你控制此錢包的加密證明。任何人只要取得這組 secret key，就能簽署交易並從你的錢包轉移資金。絕對不要分享它，也不要把它提交到版本控制系統。

關於 secret key 的關鍵安全實務：

- **絕對不要在正式環境中記錄它**：我們範例中的 `console.log` 在本機測試時沒問題，但在部署任何正式應用前務必移除。
- **使用環境變數**：將其儲存在加入 `.gitignore` 的 `.env` 檔案中，並在程式碼中用 `process.env.PRIVATE\_KEY` 存取。
- **考慮使用硬體錢包**：若正式應用涉及大額資金，可整合像 [Ledger](https://www.alchemy.com/dapps/ledger) 或 [Trezor](https://www.alchemy.com/dapps/trezor) 這類硬體錢包，將私鑰隔離在安全的硬體裝置中。
- **儲存時務必加密**：如果必須將 secret key 儲存在資料庫或檔案中，請先用強加密函式庫加密。

關於安全最佳實務，可參考 [Solana 的安全指南](https://solana.com/learn/staying-safe-on-solana)。

### 步驟二：透過 Alchemy RPC 連接到網路

接下來，使用 RPC 端點將你的錢包連接到 Solana 的 devnet。這個「連線」物件讓你的程式碼能與區塊鏈溝通、查詢餘額、提交交易等等。Alchemy 的 RPC 就像是連接到 Solana 節點的強化代理，負責處理負載平衡，讓你的應用保持穩定回應。

把以下程式碼加入你的腳本中（將 \<YOUR_API_KEY\> 替換為你在 [Alchemy dashboard](https://dashboard.alchemy.com/) 取得的 key）：

<CodeSnippet language="javascript" code={`import { Connection } from '@solana/web3.js';

const connection = new Connection(
'https://solana-devnet.g.alchemy.com/v2/<YOUR_API_KEY>', // Devnet for testing
'confirmed' // Commitment level: 'confirmed' for speed with some finality
);

async function checkBalance(publicKey) {
const balance = await connection.getBalance(publicKey);
console.log('Balance:', balance / 1e9, 'SOL'); // Convert lamports (1 SOL = 1e9 lamports)
}

await checkBalance(wallet.publicKey);`} />
這個連線讓你可以檢查錢包是否已注資，並與應用程式互動。執行腳本；如果尚未注資，回應會顯示 0 SOL。完整的 RPC 方法可參考 [Solana 的 RPC 文件](https://solana.com/docs/rpc)或我們的 [Alchemy Solana RPC 指南](https://www.alchemy.com/docs/reference/solana-api-quickstart)。

### 步驟三：為錢包注資並與其互動

連線建立後，接下來就是實際在鏈上互動。這正是有趣的部分：透過 airdrop 注資（僅限 devnet）、簽署交易等等。這些基本操作讓你能夠轉移 SOL、呼叫程式，或建立簡單的工具。

#### 請求 airdrop（在 devnet 上注資）

Devnet 提供免費的 SOL 供測試使用，讓你能為空帳戶注資，但要注意每個 IP 位址每天限額約為 24 SOL。

你需要為帳戶注資，以支付手續費中的 rent 豁免部分。此方法僅適用於 devnet。在正式環境中，手續費需以真正的 SOL 支付（而非測試用 SOL），你需要透過像 Coinbase 這樣的交易所購買/注資。詳見 [Solana 的 Devnet SOL 指南](https://solana.com/developers/guides/getstarted/solana-token-airdrop-and-faucets)。

<CodeSnippet
  language="javascript"
  code={`const airdropSignature = await connection.requestAirdrop(
wallet.publicKey,
1e9 // 1 SOL in lamports
);
await connection.confirmTransaction(airdropSignature);
console.log('Airdrop complete! Check balance again.');`}
/>
以下是實際發生的步驟：

- **請求 airdrop**：`connection.requestAirdrop\(\)` 向 devnet 請求測試用 SOL。它會帶入你錢包的公鑰與金額（以 lamport 為單位，`1e9` = 1 SOL），並回傳一個交易簽章，也就是此交易的唯一識別碼。
- **確認交易**：`await connection.confirmTransaction\(\)` 會等待網路處理這筆 airdrop。這一步很關鍵：如果不等待確認，即使 airdrop 已被請求，你的餘額可能仍會顯示 0 SOL。Solana 是以非同步方式處理交易的，所以需要等待。
- **成功**：確認完成後，再次執行 `checkBalance\(\)`，你應該會看到錢包中有 1 SOL。

#### 簽署並發送交易

接著我們來轉移 0.1 SOL 到另一個地址。此範例示範了交易簽署的過程，你的私鑰會對交易進行加密授權，證明你擁有發送方錢包。我們會建立一筆交易，用你的金鑰對簽署，並透過 RPC 廣播到網路上。交易手續費（約 0.000005 SOL）會自動從你的餘額中扣除。若要處理更複雜的操作，例如多指令交易或程式呼叫，可參考 [Solana 的交易基礎](https://solana.com/docs/core/transactions)文件。

執行以下程式碼來發送 SOL：

<CodeSnippet language="javascript" code={`import { Transaction, SystemProgram, PublicKey, sendAndConfirmTransaction } from '@solana/web3.js';

const recipient = new PublicKey('recipient_address_here'); // Replace with a real address\`

const tx = new Transaction().add(
SystemProgram.transfer({
fromPubkey: wallet.publicKey,
toPubkey: recipient,
lamports: 1e8 // 0.1 SOL
})
);

// Simplest approach - handles blockhash and confirmation automatically
const signature = await sendAndConfirmTransaction(
connection,
tx,
[wallet] // Signers
);

console.log('Transfer signature:', signature);`} />
以下是實際發生的步驟：

- **建立接收方**：`new PublicKey\(\)` 將 base58 編碼的地址字串轉換為 Solana 可以處理的 PublicKey 物件。將 `'recipient\_address\_here'` 替換為實際的 Solana 地址（你甚至可以用自己錢包的公鑰測試發送給自己）。
- **建立交易**：`new Transaction\(\).add\(\)` 建立一筆交易並加入轉帳指令。`SystemProgram.transfer\(\)` 呼叫時會指定發送方（`fromPubkey`）、接收方（`toPubkey`），以及金額（以 lamport 為單位，1e8 = 0.1 SOL）。
- **發送並確認**：`sendAndConfirmTransaction\(\)` 是一個輔助函式，一次處理三個步驟：取得最新的 blockhash（所有 Solana 交易都需要）、用你的錢包金鑰對簽署交易、將交易發送到網路，並等待確認。`\[wallet\]` 陣列包含所有簽署者，在此範例中就只有你的錢包。
- **交易簽章**：回傳的簽章就是執行證明，是此筆特定交易在區塊鏈上的唯一識別碼。
- **安全提醒**：絕對不要把 secret key 寫死在程式碼中，應使用 `process.env.PRIVATE\_KEY`。在正式環境中，可整合硬體錢包以減少其他攻擊面。更多關於安全金鑰管理的內容，可參考[我們的金鑰管理與安全最佳實務](https://www.alchemy.com/docs/best-practices-for-key-security-and-management)。

如果一切順利，你應該會收到一個成功的交易簽章！這個簽章就是該交易已在 Solana 區塊鏈上被處理的證明。你可以在 [Solana Explorer](https://explorer.solana.com/?cluster=devnet) 上查詢它，查看完整細節：發送方、接收方、支付的手續費，以及區塊確認狀態。

這就是在 devnet 上與簡單 [Solana 錢包](https://www.alchemy.com/overviews/solana-wallets)互動的核心內容：產生金鑰對、透過 RPC 連線、注資、簽署交易。這些基礎元件——金鑰對產生、網路連線、餘額查詢與交易簽署——是所有 Solana 開發工作的基石。

我們剛才互動的這類以金鑰對為基礎的一般錢包，非常適合需要程式化控制的後端腳本、測試與開發，以及偏好直接管理自己金鑰的開發者，還有像基本轉帳與程式互動這類簡單的使用情境。不過你也能看出這些錢包有其取捨：使用者必須自行管理金鑰、支付自己的手續費，並處理區塊鏈互動的技術複雜度。對於重視使用者體驗的消費端應用來說，這種摩擦可能是難以接受的。

這正是智慧錢包發揮作用的地方。它們把複雜度抽象化，同時提供社交登入、無 gas 交易、session key 等強大功能。

## 一般錢包 vs. 智慧錢包：快速比較

為了幫助你根據使用情境做出決定，以下表格整理了 Solana 上不同錢包類型的主要差異，讓你知道在專案中何時該使用哪一種。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "", dataType: "object" },
      { key: "2", width: 200, title: "Regular Wallet", dataType: "object" },
      { key: "3", width: 200, title: "Smart Wallet", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p><strong>Structure</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<p>Simple keypair (EOA-like)</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Abstracted via AA; uses PDAs for programmable control</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p><strong>Features</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<p>Basic signing, manual fee handling</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Social login, batching, sponsorship, automation</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p><strong>Complexity</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<p>Low, direct key management</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Medium, Complex setup abstracted by SDK</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p><strong>Use Cases</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<p>Scripts, bots, testing setups</p>", tooltip: "", icon: "" },
        "3": { title: "<p>User-facing apps, seamless onboarding</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p><strong>vs. Ethereum</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<p>Uniform accounts; PDAs add flexibility</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Solana-specific rent handling + EVM compatibility via SDK</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": { title: "<p><strong>Alchemy Role</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<p>RPC for reliable connections</p>", tooltip: "", icon: "" },
        "3": { title: "<p>SDK + RPC for full AA features</p>", tooltip: "", icon: "" },
        id: 5,
      },
    ],
  }}
/>

## 最佳實務：開發時的注意事項

在打造你的 Solana 錢包時，以下是一些最佳實務與提示，確保它安全、可擴展且對使用者友善。

- **安全優先**：對於一般錢包，在 mainnet 上務必使用硬體錢包（如 Ledger 或 Trezor），讓金鑰保持離線。使用智慧錢包時，可利用你的錢包供應商提供的 passkey 或多重驗證，避免使用助記詞以降低釣魚風險。絕對不要在程式碼中暴露 secret，應使用加密儲存。可用像 [Solana 的安全指南](https://solana.com/learn/staying-safe-on-solana)這類工具來檢查你的設定。
- **徹底測試**：一律先在 devnet 或 testnet 上開始，以便反覆迭代而不產生成本。使用 Alchemy 的 dashboard 監控 RPC 使用量、交易失敗情況與效能指標，就像是為你的區塊鏈呼叫內建除錯工具。模擬網路壅塞等邊界情境，確保重試機制正常運作。
- **錯誤處理與可靠性**：將 RPC 呼叫包在 try-catch 區塊中，並加入指數退避重試機制（例如透過 p-retry 等函式庫）。Solana 的高速度可能導致競態條件，因此請使用 'finalized' commitment 來確認交易，以確保最大安全性。這能讓你的應用更穩健，尤其是對高流量應用而言。
- **可擴展性考量**：Alchemy 的基礎設施會針對高負載自動擴展，所以你不會在 RPC 上遇到瓶頸。使用智慧錢包時，盡量進行批次處理以減少交易數量。留意 rent 豁免狀況，避免產生意外費用。像 [Solscan explorer](https://solscan.io/) 這類工具有助於追蹤。
- **深入學習資源**：持續關注 [Alchemy 的 Solana 文件](https://www.alchemy.com/docs/reference/solana-api-quickstart)以掌握 SDK 更新，並參考 [Solana 官方的 react 錢包轉接器](https://solana.com/developers/cookbook/wallets/connect-wallet-react)來進行 UI 整合。

## 結語：開始在 Solana 上開發

到這裡，你已經學會如何借助 Alchemy 建立一般的 Solana 錢包，也了解了智慧錢包的比較。無論你是要撰寫簡單的轉帳腳本，還是打造具備無 gas 登入功能的強大 dApp，Solana 的生態系都已為創新做好準備。現在正是開始動手嘗試的時機。更多資源可參考我們的[完整 Solana 開發者資源](https://www.alchemy.com/docs/reference/solana-api-quickstart)與 [Solana 文件](https://solana.com/developers)。祝開發順利——如果遇到問題，歡迎前往 [Alchemy 支援中心](https://www.alchemy.com/support)。一起打造鏈上的精彩成果！

## 常見問題

### 什麼是 Solana 錢包？

Solana 錢包是一組金鑰對（公鑰與私鑰），讓你能控制 Solana 區塊鏈上的帳戶，這些帳戶可以持有 SOL 代幣、其他資產或可執行程式碼。與 Ethereum 的 EOA 模型不同，Solana 將所有東西都視為帳戶，結構更彈性、也更可程式化。

### 建立 Solana 錢包需要付費嗎？

不需要，產生金鑰對是免費的，但 Solana 上的帳戶需要支付 rent（約每 KB 0.00089 SOL）才能在鏈上持續存在，交易手續費平均為 $0.00025。在 devnet 上可以透過 airdrop 取得免費的測試用 SOL，但 mainnet 則需要購買 SOL。

### 一般錢包與智慧型 Solana 錢包有什麼差異？

一般錢包是基本的金鑰對，需要你手動管理金鑰並支付手續費，適合用於腳本與測試。智慧錢包則利用帳戶抽象化，提供社交登入、gas 代付、批次交易與可程式化邏輯，非常適合面向使用者的應用程式。

### 我可以用社交登入取代助記詞嗎？

可以，許多智慧錢包供應商讓使用者能透過電子郵件、Google 或 passkey 進行驗證，而不需要管理助記詞。這能消除使用者在傳統金鑰管理上的摩擦。

### 如何在 devnet 上為 Solana 錢包注資？

使用 `connection.requestAirdrop()` 可在 devnet 上取得免費的測試用 SOL（每個 IP 位址每天限額約 24 SOL）。若是 mainnet，你需要透過像 [Coinbase](https://www.alchemy.com/dapps/coinbase) 這樣的交易所購買 SOL。

### Solana 上的 rent 是什麼？

Rent 是一種儲存押金機制，帳戶必須維持最低 SOL 餘額（約每 KB 0.00089 SOL）才能持續在鏈上保持活躍。它與 Ethereum 的 gas 費不同，能透過清除閒置帳戶來幫助維持網路效率。

### 智慧錢包可以代付使用者的交易手續費嗎？

可以，部分智慧錢包供應商支援 gas 與 rent 代付。這讓你的應用程式能替使用者支付手續費，實現無 gas 體驗，提升轉換率並簡化新手引導流程。

### 我需要自己架設 Solana 節點嗎？

不需要，我們的 RPC 端點提供穩定的 Solana 網路存取，無需自行架設節點。此服務負責處理負載平衡、擴展，並提供 HTTP 與 WebSocket 連線，支援即時更新。
