Skip to main content
This page sends a real 10 XLM payment on Testnet through Lumeus RPC. You build and sign the transaction locally; Lumeus only ever sees the signed envelope, never your secret key. The script runs these steps:
1

Create and fund accounts

Generate a sender and a recipient keypair and fund both with Friendbot.
2

Build the payment

Load the sender’s sequence number with getAccount and build a transfer call on the native XLM asset contract.
3

Prepare

prepareTransaction calls simulateTransaction and adds the resource fee, footprint and authorization.
4

Sign and send

Sign locally, then call sendTransaction. A PENDING status means the node accepted it.
5

Poll for the result

Call getTransaction every 2 seconds until the status is SUCCESS or FAILED.

Run it

Set LUMEUS_API_KEY to your Testnet lum_test_ key, then install the SDK and run the script. Each run sends 2 Friendbot requests and about 7 RPC calls, which count toward the daily Testnet cap of 10,000 requests and cost no credits.
Output (the keys and hash differ on every run):
getTransaction then returns the full outcome. Trimmed:
For a classic operation such as Operation.payment, skip prepareTransaction: build, sign and send. Simulation applies only to Soroban (smart contract) operations.

Read the status

If the send times out

If sendTransaction reached the node but its answer was lost, Lumeus returns 503 with error.data submission_outcome_unknown and the hash in error.transaction_hash:
  1. Poll getTransaction with that hash (or the hash you computed before sending) until it is found or the transaction’s time bound has passed.
  2. If you resend, send the same signed envelope. The node answers DUPLICATE, so it cannot apply twice.
  3. Do not build a new transaction with a new sequence number until the first one has expired.
For retry-safe requests with an Idempotency-Key, see idempotency and recovery.

Next