Версії для прикладів у «Як отримати тестові 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.