Perusmaksu

Solana mahdollistaa välittömät, globaalit token-siirrot alle 0,001 dollarin maksuilla. Rakensitpa rajat ylittäviä rahalähetyksiä, palkanlaskentaa tai treasury-toimintoja, perus-stablecoin-maksu toteutuu alle sekunnissa ja maksaa murto-osan sentistä.

Miten se toimii

Maksu siirtää stablecoineja lähettäjän token-tilin vastaanottajan token-tilille. Jos vastaanottaja saa tätä tokenia ensimmäistä kertaa, hänen token-tilinsä voidaan luoda osana samaa transaktiota.

Katso How Payments Work on Solana maksun peruskäsitteistä.

token2022Program()-lisäosa @solana-program/token-2022-paketista laajentaa @solana/kit-asiakastasi client.token2022-apuvälineellä. Sen transferToATA-metodi käsittelee ATA-johdannan ja tapahtuman rakentamisen automaattisesti, mikä tekee siitä ihanteellisen yksittäisten maksusiirtojen käyttöön.

Alla olevat vaiheet näyttävät peruskulun. Katso Demo täydellisestä ajettavasta koodista.

Luo token-apufunktio

Lisää token2022Program()-lisäosa asiakkaallesi .use(token2022Program())-komennolla. Tämä paljastaa client.token2022-objektin, jonka instructions tarjoavat metodeja yleisiin token-operaatioihin.

Käytä token2022Program()-lisäosaa Token-2022-ohjelman omistamille minteille tai tokenProgram()-lisäosaa @solana-program/token-paketista alkuperäisen Token Program -ohjelman omistamille minteille.

Lähetä maksu

Käytä transferToATA()-metodia tokenien siirtämiseen lompakkojen välillä. Metodi käsittelee:

  • ATA-selvitys: Johtaa automaattisesti Associated Token Accounts (ATAs) -tilit lähettäjälle ja vastaanottajalle. Jos vastaanottajan ATA ei ole olemassa, tilin luomisohje lisätään automaattisesti samaan tapahtumaan.
  • Tarkistetut määrät: Anna amount perusyksiköissä yhdessä mintin decimals-arvon kanssa. Siirto tarkistetaan mintin desimaaleja vastaan ketjussa (esim. 250000 perusyksikköä -> 0,25 tokenia, jos mintillä on 6 desimaalia)
  • Tapahtuman rakentaminen: sendTransaction() rakentaa, allekirjoittaa ja lähettää tapahtuman, palauttaen tuloksen, jonka context.signature sisältää tapahtuman allekirjoituksen
Basic Payment
const client = createClient()
.use(signer(sender))
.use(solanaLocalRpc())
.use(token2022Program());
const result = await client.token2022.instructions
.transferToATA({
mint: mint.address,
authority: sender,
recipient: recipient.address,
amount: 250_000n,
decimals: 6
})
.sendTransaction();

Tarkista saldot

Siirron valmistuttua lue token-saldot RPC:ltä. Johda kunkin lompakon ATA findAssociatedTokenPda()-metodilla, sitten kutsu getTokenAccountBalance() hakeaksesi kyseisen tilin saldon.

Basic Payment
const client = createClient()
.use(signer(sender))
.use(solanaLocalRpc())
.use(token2022Program());
const result = await client.token2022.instructions
.transferToATA({
mint: mint.address,
authority: sender,
recipient: recipient.address,
amount: 250_000n,
decimals: 6
})
.sendTransaction();
const [senderAta] = await findAssociatedTokenPda({
mint: mint.address,
owner: sender.address,
tokenProgram: TOKEN_2022_PROGRAM_ADDRESS
});
const [recipientAta] = await findAssociatedTokenPda({
mint: mint.address,
owner: recipient.address,
tokenProgram: TOKEN_2022_PROGRAM_ADDRESS
});
const senderBalance = await client.rpc.getTokenAccountBalance(senderAta).send();
const recipientBalance = await client.rpc
.getTokenAccountBalance(recipientAta)
.send();

Luo token-apufunktio

Lisää token2022Program()-lisäosa asiakkaallesi .use(token2022Program())-komennolla. Tämä paljastaa client.token2022-objektin, jonka instructions tarjoavat metodeja yleisiin token-operaatioihin.

Käytä token2022Program()-lisäosaa Token-2022-ohjelman omistamille minteille tai tokenProgram()-lisäosaa @solana-program/token-paketista alkuperäisen Token Program -ohjelman omistamille minteille.

Lähetä maksu

Käytä transferToATA()-metodia tokenien siirtämiseen lompakkojen välillä. Metodi käsittelee:

  • ATA-selvitys: Johtaa automaattisesti Associated Token Accounts (ATAs) -tilit lähettäjälle ja vastaanottajalle. Jos vastaanottajan ATA ei ole olemassa, tilin luomisohje lisätään automaattisesti samaan tapahtumaan.
  • Tarkistetut määrät: Anna amount perusyksiköissä yhdessä mintin decimals-arvon kanssa. Siirto tarkistetaan mintin desimaaleja vastaan ketjussa (esim. 250000 perusyksikköä -> 0,25 tokenia, jos mintillä on 6 desimaalia)
  • Tapahtuman rakentaminen: sendTransaction() rakentaa, allekirjoittaa ja lähettää tapahtuman, palauttaen tuloksen, jonka context.signature sisältää tapahtuman allekirjoituksen

Tarkista saldot

Siirron valmistuttua lue token-saldot RPC:ltä. Johda kunkin lompakon ATA findAssociatedTokenPda()-metodilla, sitten kutsu getTokenAccountBalance() hakeaksesi kyseisen tilin saldon.

Basic Payment
const client = createClient()
.use(signer(sender))
.use(solanaLocalRpc())
.use(token2022Program());

Demo

Demo
// Generate signers for sender and recipient
const sender = await generateKeyPairSigner();
const recipient = await generateKeyPairSigner();
console.log("Sender Address:", sender.address);
console.log("Recipient Address:", recipient.address);
// Demo Setup: Create client, mint account, and fund the sender with initial tokens
const { client, mint } = await demoSetup(sender);
console.log("\nMint Address:", mint.address);
// =============================================================================
// Basic Token Payment Demo
// =============================================================================
// Transfer tokens from sender to recipient. The source and destination ATAs are
// derived automatically, and the recipient's ATA is created if it does not exist.
const result = await client.token2022.instructions
.transferToATA({
mint: mint.address,
authority: sender,
recipient: recipient.address,
amount: 250_000n, // 0.25 tokens (base units for a mint with 6 decimals)
decimals: 6
})
.sendTransaction();
console.log("\n=== Token Payment Complete ===");
console.log("Transaction Signature:", result.context.signature);
// Derive the sender and recipient ATAs to read their balances
const [senderAta] = await findAssociatedTokenPda({
mint: mint.address,
owner: sender.address,
tokenProgram: TOKEN_2022_PROGRAM_ADDRESS
});
const [recipientAta] = await findAssociatedTokenPda({
mint: mint.address,
owner: recipient.address,
tokenProgram: TOKEN_2022_PROGRAM_ADDRESS
});
// Fetch final token account balances via RPC
const senderBalance = await client.rpc.getTokenAccountBalance(senderAta).send();
const recipientBalance = await client.rpc
.getTokenAccountBalance(recipientAta)
.send();
console.log(
"\nSender Token Account Balance:",
senderBalance.value.uiAmountString
);
console.log(
"Recipient Token Account Balance:",
recipientBalance.value.uiAmountString
);
// =============================================================================
// Demo Setup Helper Function
// =============================================================================
Console
Click to execute the code.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.