Базовый платёж

Solana обеспечивает мгновенные глобальные переводы токенов с комиссиями менее $0.001. Независимо от того, строите ли вы сервис для международных переводов, выплат зарплаты или казначейских операций, базовый платёж в стейблкоинах проводится менее чем за секунду и стоит лишь доли цента.

Как это работает

Платёж переводит стейблкоины с токен-аккаунта отправителя на токен-аккаунт получателя. Если получатель впервые получает этот токен, его токен-аккаунт может быть создан в рамках той же транзакции.

Подробнее о ключевых концепциях платежей читайте в разделе Как работают платежи в Solana.

Вспомогательный инструмент splToken из @solana/client автоматически обрабатывает вывод ATA, преобразование десятичных значений и построение транзакций. Это идеально подходит для одиночных переводов.

Ниже приведены основные этапы процесса. Полный рабочий код смотрите в разделе Демо.

Создайте токен-хелпер

Настройте вспомогательный инструмент splToken(), вызвав функцию client.splToken() с адресом mint. Хелпер предоставляет методы для стандартных операций с токенами.

Установка tokenProgram: "auto" позволяет автоматически определить, принадлежит ли mint account программе Token или Token-2022.

Отправьте платёж

Используйте sendTransfer() для перевода токенов между кошельками. Метод выполняет:

  • Разрешение ATA: Автоматически определяет Associated Token Accounts (ATA) для отправителя и получателя. Если ATA получателя не существует, инструкция на создание аккаунта автоматически добавляется в ту же транзакцию.
  • Преобразование десятичных значений: Принимает сумму токенов и автоматически переводит её в базовые единицы в зависимости от количества знаков после запятой у mint (например, 0.25 токена → 250000 базовых единиц, если у mint 6 знаков после запятой)
  • Построение транзакции: Создаёт, подписывает и отправляет транзакцию с инструкцией на перевод

Проверка балансов

После завершения перевода используйте fetchBalance(), чтобы проверить балансы токенов. Этот метод принимает адрес кошелька и автоматически определяет соответствующий ATA для получения баланса.

Создайте токен-хелпер

Настройте вспомогательный инструмент splToken(), вызвав функцию client.splToken() с адресом mint. Хелпер предоставляет методы для стандартных операций с токенами.

Установка tokenProgram: "auto" позволяет автоматически определить, принадлежит ли mint account программе Token или Token-2022.

Отправьте платёж

Используйте sendTransfer() для перевода токенов между кошельками. Метод выполняет:

  • Разрешение ATA: Автоматически определяет Associated Token Accounts (ATA) для отправителя и получателя. Если ATA получателя не существует, инструкция на создание аккаунта автоматически добавляется в ту же транзакцию.
  • Преобразование десятичных значений: Принимает сумму токенов и автоматически переводит её в базовые единицы в зависимости от количества знаков после запятой у mint (например, 0.25 токена → 250000 базовых единиц, если у mint 6 знаков после запятой)
  • Построение транзакции: Создаёт, подписывает и отправляет транзакцию с инструкцией на перевод

Проверка балансов

После завершения перевода используйте fetchBalance(), чтобы проверить балансы токенов. Этот метод принимает адрес кошелька и автоматически определяет соответствующий ATA для получения баланса.

Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});

Демонстрация

Demo
// Generate keypairs for sender and recipient
const sender = (await generateKeypair()).signer;
const recipient = (await generateKeypair()).signer;
console.log("Sender Address:", sender.address);
console.log("Recipient Address:", recipient.address);
// Demo Setup: Create client, mint account, token accounts, and fund with initial tokens
const { client, mint } = await demoSetup(sender, recipient);
console.log("\nMint Address:", mint.address);
// =============================================================================
// Basic Token Payment Demo
// =============================================================================
// Create splToken helper for this mint using @solana/client
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});
// Transfer tokens from sender to recipient (ATA and decimals handled automatically)
const signature = await splToken.sendTransfer({
amount: 0.25,
authority: sender,
destinationOwner: recipient.address
});
console.log("\n=== Token Payment Complete ===");
console.log("Transaction Signature:", signature.toString());
// Fetch final token account balances using splToken helper
const senderBalance = await splToken.fetchBalance(sender.address);
const recipientBalance = await splToken.fetchBalance(recipient.address);
console.log("\nSender Token Account Balance:", senderBalance);
console.log("Recipient Token Account Balance:", recipientBalance);
// =============================================================================
// Demo Setup Helper Function
// =============================================================================
Console
Click to execute the code.

Is this page helpful?

Содержание

Редактировать страницу

Управляется

© 2026 Фонд Solana.
Все права защищены.
Подключиться