Documentation Index
Fetch the complete documentation index at: https://docs.getpara.com/llms.txt
Use this file to discover all available pages before exploring further.
Transfer XLM tokens between wallets using Para’s Stellar signer with the Stellar SDK.
Setup Stellar Libraries First
Send XLM
import { useParaStellar } from "./hooks/useParaStellar";
import { TransactionBuilder, Operation, Asset, BASE_FEE, Networks } from "@stellar/stellar-sdk";
function SendXLM() {
const { server, signer, isLoading } = useParaStellar();
const sendPayment = async (recipient: string, amount: string) => {
if (!signer) {
console.error("No signer available. Connect wallet first.");
return;
}
// Load the sender's account from the network
const sourceAccount = await server.loadAccount(signer.address);
// Build the payment transaction
const transaction = new TransactionBuilder(sourceAccount, {
fee: BASE_FEE,
networkPassphrase: Networks.PUBLIC,
})
.addOperation(
Operation.payment({
destination: recipient,
asset: Asset.native(),
amount, // e.g. "10" for 10 XLM
})
)
.setTimeout(180)
.build();
// Sign the transaction with Para
const { signedTxXdr } = await signer.signTransaction(transaction.toXDR());
// Submit to the network
const tx = TransactionBuilder.fromXDR(signedTxXdr, Networks.PUBLIC);
const result = await server.submitTransaction(tx);
console.log("Transaction hash:", result.hash);
return result;
};
if (isLoading) return <div>Loading...</div>;
return (
<div>
<p>Address: {signer?.address}</p>
<button onClick={() => sendPayment("GRECIPI...", "10")}>
Send 10 XLM
</button>
</div>
);
}
Send Custom Assets
To send a custom asset (like USDC on Stellar), replace Asset.native() with the specific asset:
import { Asset } from "@stellar/stellar-sdk";
// Example: USDC on Stellar
const usdc = new Asset(
"USDC",
"GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN"
);
// Use in your payment operation
Operation.payment({
destination: recipient,
asset: usdc,
amount: "100", // 100 USDC
});
The recipient must have a trustline for the custom asset before they can receive it. See Execute Transactions for how to create trustlines.
Next Steps