Версії для прикладів у «Як отримати тестові SOL на Devnet» перевірено 2 серпня 2026 року. Стабільна гілка Anchor v1 має релізи 1.0.x і орієнтується на Solana 3.x; Anchor v2 у документації позначений як alpha. Приклади для Anchor 0.29–0.32 залишаються лише відтворюваними прикладами для зафіксованого legacy-середовища: їх не слід переносити в новий проєкт без міграції залежностей і повторного тестування. Клієнт @anchor-lang/core сумісний із legacy @solana/web3.js v1, а не з v2.

Тестові SOL — це токени без реальної вартості, які існують виключно на Devnet-кластері Solana. Вони потрібні для оплати комісій за транзакції під час розробки та тестування. Нижче наведено три перевірені способи їх отримання, інструкцію з перевірки балансу та опис типових помилок.

Навіщо тестові SOL

Оплата комісій за транзакції на Devnet

Кожна транзакція в Solana потребує оплати комісії (compute budget та базова fee). Навіть створення нового акаунта або виклик програми коштує певну кількість lamports — найменшої одиниці SOL (1 SOL = 1 000 000 000 lamports). Без тестових SOL жодна транзакція на Devnet не пройде.

Створення акаунтів та розгортання програм

Коли ви розгортаєте смарт-контракт (програму на Rust або Anchor), Solana резервує простір на ланцюгу за ваш рахунок. Розмір резерву залежить від розміру скомпільованої програми. Типовий Anchor-проєкт займає від 0.2 до 0.5 SOL на розгортання. Крім того, кожен PDA-акаунт (Program Derived Address), який створює ваша програма, також потребує оплати rent-exempt мінімуму.

Через Solana CLI

Середовище: macOS / Linux / WSL на Windows. Версія CLI: 1.18.x або новіша. Кластер: Devnet.

Перед отриманням переконайтеся, що CLI налаштований на Devnet:

solana config set --url devnet

Отримати 1 тестовий SOL:

solana airdrop 1

Очікуваний результат: у терміналі з'явиться підпис транзакції (signature), а баланс вашого ключа збільшиться на 1 SOL.

Ліміт airdrop та як його перевірити

Devnet-фацет має обмеження на кількість SOL, яку можна отримати на одну адресу. Спроба перевищити ліміт призведе до помилки. Точне значення ліміту змінюється — перевірити поточний залишок можна, повторивши запит: якщо отримаєте повідомлення про перевищення ліміту, значить, квота вичерпана.

Якщо вам потрібно більше SOL, ніж дозволяє ліміт одного airdrop-запиту, виконайте кілька послідовних команд з меншою сумою:

solana airdrop 1
solana airdrop 1
solana airdrop 1

Зверніть увагу: це концептуальний приклад для навчальних цілей. У реальному робочому процесі краще отримати необхідну суму за мінімальну кількість викликів.

Через TypeScript SDK

Середовище: Node.js 18+, пакет @solana/web3.js версії 1.x (стабільна гілка). Кластер: Devnet.

Програмний airdrop

Метод connection.requestAirdrop() відправляє запит до Devnet-фацету програмно:

import { Connection, Keypair, LAMPORTS_PER_SOL } from "@solana/web3.js";

const connection = new Connection("https://api.devnet.solana.com", "confirmed");
const keypair = Keypair.generate();

const signature = await connection.requestAirdrop(
  keypair.publicKey,
  LAMPORTS_PER_SOL
);

Очікування підтвердження airdrop

Запит airdrop повертає підпис транзакції, але це не означає, що кошти вже на рахунку. Треба дочекатися підтвердження:

const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash("confirmed");

await connection.confirmTransaction({
  signature,
  blockhash,
  lastValidBlockHeight,
}, "confirmed");

const balance = await connection.getBalance(keypair.publicKey);
console.log(`Баланс: ${balance / LAMPORTS_PER_SOL} SOL`);

Очікуваний результат: у консолі відобразиться баланс, що дорівнює 1 SOL (або іншій запитаній сумі).

Цей підхід зручний, коли ви автоматизуєте налаштування середовища в тестах або скриптах розгортання. Для одноразового отримання коштів CLI зазвичай швидший.

Через Solana Faucet

Веб-фацет: введення адреси, отримання SOL

Офіційний веб-фацет Solana доступний за адресою faucet.solana.com. Користування просте: виберіть кластер Devnet, вставте публічний ключ вашого гаманця (base58-рядок, що починається з цифри або літери, наприклад, 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU) і натисніть кнопку отримання. Сума та ліміт залежать від поточних налаштувань фацета.

Коли використовувати фацет замість CLI

  • У вас немає встановленого Solana CLI і ви не плануєте його ставити просто для одного airdrop.
  • Ви працюєте з гаманцем, створеним у браузерному розширенні (Phantom, Solflare), і хочете швидко поповнити його для тестування.
  • Вам потрібно отримати SOL на адресу, яка не є поточним ключем у CLI (у CLI це вимагає додаткового прапорця --address, а у фацеті достатньо вставити рядок).

Перевірка балансу

solana balance — перевірка через CLI

solana balance

Ця команда показує баланс поточного ключа в SOL. Щоб перевірити іншу адресу:

solana balance <PUBLIC_KEY>

Очікуваний результат: рядок на кшталт 1.5 SOL. Якщо баланс нульовий, переконайтеся, що ви на правильному кластері:

solana config get

Перевірка через Explorer

Відкрийте Solana Explorer за адресою explorer.solana.com, виберіть кластер Devnet у випадаючому списку ліворуч зверху та вставте свою адресу в рядок пошуку. На сторінці акаунта відобразиться баланс, список транзакцій та інша інформація. Це корисно, коли ви хочете побачити не лише баланс, а й підтвердження конкретного airdrop-запиту.

Типові помилки

Airdrop rate limit exceeded

Повне повідомлення: Too many requests: Rate limit exceeded або подібне. Причина: ви досягли ліміту на кількість запитів або суму SOL для цієї адреси.

Що робити:

  • Зачекайте деякий час (ліміт скидається періодично).
  • Створіть нову ключову пару для тестування: solana-keygen new --no-bip39-passphrase.
  • Використовуйте веб-фацет як альтернативне джерело — його ліміти можуть відрізнятися від CLI.

SOL не надійшли (мережева затримка)

Ви виконали airdrop, отримали підпис, але баланс залишається нульовим. Можливі причини:

  • Запит ще не підтверджено. Devnet працює повільніше за Mainnet. Зачекайте 10–30 секунд і перевірте баланс знову. У TypeScript-коді завжди викликайте confirmTransaction() перед тим, як читати баланс.
  • Ви перевіряєте баланс на неправильному кластері. Якщо CLI налаштований на mainnet-beta, а airdrop робився на Devnet, баланс буде нульовим. Перевірте налаштування: solana config get.
  • Ви перевіряєте іншу адресу. Переконайтеся, що публічний ключ, на який робився airdrop, збігається з тим, що ви перевіряєте.
  • Транзакція відхилена. Відкрийте підпис транзакції в Devnet-експлорері. Якщо статус — Failed, перегляньте деталі помилки. Найчастіша причина — тимчасова недоступність фацета.

Тестові SOL не мають грошової цінності і призначені виключно для розробки. Після того як ви отримали кошти на Devnet, наступний крок — створення та розгортання вашої першої програми. Перед цим рекомендується переконатися, що структура проєкту відповідає загальноприйнятим практикам екосистеми Solana.

Джерела