Account Demolisher

Close a shared account

Collect signatures from the signers of a multisig account and submit the close once the threshold is met.

When the key you connect cannot meet the account's signing threshold on its own, the close needs signatures from other signers. The app detects this from the account's signers and thresholds and adds a Signatures step after Review, where you collect them.

Every signer signs on their own device. Nobody shares a secret key, and the app relays only the transaction and its signatures, which are public data.

Run it

Start the close as normal

Connect your key and fill in Configure. A Shared account bar shows the signing weight the close needs and how many signers that takes.

On a shared account nothing is sold on the market. Every asset other than XLM is returned to its issuer or sent to the destination, as you choose in the Fix issues step. A market sale can fail when the price moves, and one failed operation would sink the single transaction everyone signs.

Create the signing request

At the bottom of Review, select Create signing request. The app builds the reviewed close as one transaction, signs it with your key, and publishes it to the signing relay.

Nothing is submitted to the network yet. The account stays open until enough signers sign.

The Signatures step shows a link under SEND TO THE OTHER SIGNERS. Select Copy link and send it to your co-signers. Each of them opens it and signs from their own device. See Sign a closure request for what they see.

Watch signatures arrive

The Signing weight collected bar updates as each signature arrives. Below it, every signer on the account is listed with its weight and a Signed or Pending badge. Your own key is marked You.

Updates stream live. When the stream drops, the page falls back to polling the relay and shows a Live updates interrupted notice with a Refresh button that pulls the latest signatures.

Close it

Once the collected weight reaches the threshold, select Continue to final confirmation. The app checks the request against the live account first, then opens the same typed confirmation as any other close: type the last four characters of the destination, wait for the timer, and confirm.

Signing several keys yourself

If you hold more than one signer key, you do not need the link for those keys. Under SIGN A KEY LOCALLY, paste a key and sign. Each signature moves the bar up. The keys are used in your browser only and are never uploaded or stored.

What a shared close cannot include

A signing request collects signatures on exactly one transaction, so the whole close has to fit in one classic transaction. When one of these applies, the app refuses the signing request and names the reason, before you start or on the review:

SituationWhy it does not fitWhat to do
The destination is an exchangeThe exchange path runs as several transactionsClose to an address you control instead
The account holds Soroban DeFi positionsEach exit is its own transactionUnwind them first, or close with all signers present
The account has token allowances to revokeEach revoke is its own transactionRevoke them first, or close with all signers present
You selected standalone tokens to sweepEach token move is its own transactionLeave them out, or close with all signers present
The account holds a classic liquidity pool shareThe pool withdraw runs in its own transaction firstWithdraw it first, or close with all signers present
You chose to claim a claimable balance in a token the account does not trustThe trustline is opened and the claim lands in a transaction of its own firstLeave it unclaimed, or close with all signers present
You chose to claim a claimable balance in a token with no disposal chosenThe claim has to land in its own transaction firstChoose to send it or return it to its issuer, leave it unclaimed, or close with all signers present

The close itself also has to fit in 100 operations, the Stellar limit for one transaction. The review refuses a close over that and gives the count.

How long you have

The bundled transaction is valid for 72 hours. The relay serves the request until the earlier of 72 hours after you publish it and one minute before the transaction's own expiry. After that you create a new request.

The relay keeps requests in the server's memory, so a server restart drops them. When the relay no longer has your request, the notice offers Publish this request again. The link stays the same and every signature collected in your browser is kept.

Before the close is submitted

When you confirm, the app checks the collected transaction against the account as it is now. It refuses to submit when the account changed in a way that makes the transaction fail (its sequence number, balances, offers or signers), when a DeFi position appeared since the request was built, or when the collected signatures no longer reach the threshold of the current signers. In each case you build a new signing request and every signer signs again.

When the network asks a higher fee than the request bid, the app offers a fee bump paid by your connected wallet. The signatures cover the inner transaction only, so nobody has to sign again.

How it works underneath

The signing relay API covers the routes, the checks on publishing a request, and how signatures are verified and merged.

On this page