Stellar: delivery by rotation
On Stellar, an account is not the same thing as a key. An account has a list of signers with weights, and thresholds that say how much weight an operation needs. That makes it possible to hand over a vanity account without handing over the key that found it.
The delivery transaction
The seller found the vanity key V; you pay from your wallet, whose key is K. Delivery is one transaction with two operations:
op 1 CreateAccount destination: V starting balance: 2 XLM
op 2 SetOptions source account: V
add signer K, weight 1
master (V) weight: 0
thresholds low / medium / high: 1 / 1 / 1
signed by: the seller's funding account and VAfter it is applied:
Vhas weight 0, so a signature byVcounts for nothing. Whoever kept a copy ofVcannot move funds, change signers or close the account.Khas weight 1, which meets every threshold. Your key alone controls the account.- Both operations are in one transaction, so they apply together or not at all. There is no moment when the account exists with
Vstill in control.
KeyPlates checks one more thing before signing, the lock-out guard: the remaining signers must reach the highest threshold, so a delivery can never produce an account that nobody can operate.
Check it yourself
- Open the account on the verify page, or on an explorer such as StellarExpert, and look at Signers.
- The address's own key must show weight 0 (Horizon sometimes omits it altogether).
- Your key must be listed, with a weight at least as high as the high threshold.
- Optionally, open the creating transaction: you will see the two operations above.
Using the account
Your wallet key K signs for the vanity account V. Most wallets show only the account whose master key they hold, so add V as an account that K signs for. In Lobstr, for example, you add the account's public address and your signer secret. The KeyPlates FAQ has the steps.
What rotation does not protect against
- Lookalike addresses. Scammers create accounts that start and end like yours and send dust, hoping you copy theirs from your history. Copy addresses from your wallet, never from history.
- Your own key. Whoever has
Kcontrols the account. Keep it as safe as any wallet key, or add more signers and raise the thresholds.