Podstawowa płatność

Solana umożliwia natychmiastowe, globalne transfery tokenów z opłatami poniżej 0,001 USD. Niezależnie od tego, czy tworzysz rozwiązania do przekazów międzynarodowych, wypłat wynagrodzeń czy operacji skarbowych, podstawowa płatność stablecoinem rozlicza się w mniej niż sekundę i kosztuje ułamek centa.

Jak to działa

Płatność przenosi stablecoiny z token account nadawcy na token account odbiorcy. Jeśli odbiorca otrzymuje ten token po raz pierwszy, jego token account może zostać utworzone w ramach tej samej transakcji.

Zobacz Jak działają płatności na Solanie, aby poznać podstawowe pojęcia dotyczące płatności.

Helper splToken z @solana/client automatycznie obsługuje wyznaczanie ATA, konwersję dziesiętną i budowanie transakcji. To idealne rozwiązanie do pojedynczych transferów płatności.

Poniższe kroki pokazują główny przebieg procesu. Pełny, gotowy do uruchomienia kod znajdziesz w sekcji Demo.

Utwórz Token Helper

Skonfiguruj helpera splToken(), wywołując client.splToken() z adresem mint. Helper udostępnia metody do najczęstszych operacji na tokenach.

Ustawienie tokenProgram: "auto" automatycznie wykrywa, czy mint account jest własnością programu Token lub Token-2022.

Wyślij płatność

Użyj sendTransfer(), aby przelać tokeny między portfelami. Metoda obsługuje:

  • Rozpoznawanie ATA: Automatycznie wyznacza Associated Token Accounts (ATA) dla nadawcy i odbiorcy. Jeśli ATA odbiorcy nie istnieje, instrukcja utworzenia konta zostanie automatycznie dodana do tej samej transakcji.
  • Konwersja dziesiętna: Przyjmuje kwoty tokenów i automatycznie przelicza je na jednostki bazowe na podstawie liczby miejsc po przecinku dla danego mint (np. 0,25 tokena -> 250000 jednostek bazowych, jeśli mint ma 6 miejsc dziesiętnych)
  • Budowanie transakcji: Tworzy, podpisuje i wysyła transakcję z instrukcją transferu
Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});
const signature = await splToken.sendTransfer({
amount: 0.25,
authority: sender,
destinationOwner: recipient.address
});

Weryfikacja sald

Po zakończeniu transferu użyj fetchBalance(), aby zweryfikować salda tokenów. Ta metoda przyjmuje adres portfela i automatycznie wyprowadza odpowiadający mu ATA, aby pobrać saldo.

Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});
const signature = await splToken.sendTransfer({
amount: 0.25,
authority: sender,
destinationOwner: recipient.address
});
const senderBalance = await splToken.fetchBalance(sender.address);
const recipientBalance = await splToken.fetchBalance(recipient.address);

Utwórz Token Helper

Skonfiguruj helpera splToken(), wywołując client.splToken() z adresem mint. Helper udostępnia metody do najczęstszych operacji na tokenach.

Ustawienie tokenProgram: "auto" automatycznie wykrywa, czy mint account jest własnością programu Token lub Token-2022.

Wyślij płatność

Użyj sendTransfer(), aby przelać tokeny między portfelami. Metoda obsługuje:

  • Rozpoznawanie ATA: Automatycznie wyznacza Associated Token Accounts (ATA) dla nadawcy i odbiorcy. Jeśli ATA odbiorcy nie istnieje, instrukcja utworzenia konta zostanie automatycznie dodana do tej samej transakcji.
  • Konwersja dziesiętna: Przyjmuje kwoty tokenów i automatycznie przelicza je na jednostki bazowe na podstawie liczby miejsc po przecinku dla danego mint (np. 0,25 tokena -> 250000 jednostek bazowych, jeśli mint ma 6 miejsc dziesiętnych)
  • Budowanie transakcji: Tworzy, podpisuje i wysyła transakcję z instrukcją transferu

Weryfikacja sald

Po zakończeniu transferu użyj fetchBalance(), aby zweryfikować salda tokenów. Ta metoda przyjmuje adres portfela i automatycznie wyprowadza odpowiadający mu ATA, aby pobrać saldo.

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

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?

Spis treści

Edytuj stronę

Zarządzane przez

© 2026 Solana Foundation.
Wszelkie prawa zastrzeżone.
Bądź na bieżąco