# Edit or Delete a Legacy Contract

Once a legacy is **Live**, the owner (or, for Safe legacies, any Safe signer) can edit or delete it at any time before it's activated.

## Editing

### What you can change

* **Name** — private label.
* **Beneficiaries** — add, remove, or replace up to 10 primary addresses.
* **Allocations** — any percentages, as long as they sum to 100%. Single-beneficiary legacies auto-allocate 100%.
* **Activation trigger** — the inactivity window (days).
* **Note to beneficiaries** — an on-chain message they'll see in the inherited view.
* **Approvals** — include new ERC-20s, adjust existing allowances, or remove tokens from the inclusion set.
* **Safe threshold for beneficiaries** (Multisig legacies only) — how many beneficiaries must sign as the new Safe's threshold after activation.
* **Contingent layers** (Premium) — add, remove, or resize the second- and third-line activation windows.

### EOA legacy

A single transaction from your wallet applies the change. No coordination needed.

{% hint style="info" %}
**Which edits reset the activation timer?** Approving, adjusting, or removing allowances and changing the note **do not** reset the timer. All other edits (beneficiaries, allocations, trigger window) do. If you want to explicitly reset without another edit, use the heartbeat action instead.
{% endhint %}

### Safe legacy

Any Safe signer can submit the edit; your Safe co-signers then finalize at the Safe's threshold. The edit shows as *Needs finalizing to update* until the threshold is met. You can finalize in our app or on [app.safe.global](https://app.safe.global).

## Deleting

Deletion is available to owners (EOA) or any Safe signer (Safe), and returns the legacy to a clean state:

* **Native tokens** held by the contract (rare — Transfer legacies rarely hold native tokens directly; this mostly applies to legacy contracts that pre-date the storage-token flow) are returned to the owner's wallet.
* **ERC-20 allowances** granted to the legacy contract are revoked automatically as part of the delete flow. This is a separate `approve(legacy, 0)` per-token; the UI runs through each one.

### EOA delete

1. Click **Delete contract** on the details page.
2. Confirm in the popup.
3. Sign one transaction to tear down the legacy. The UI then walks through revoking approvals on any tokens you'd approved.

{% hint style="info" %}
**If the revoke loop reports a warning.** You'll only see "some approvals could not be cleared" if an actual `approve(0)` transaction failed for a specific token. A legacy with zero tokens approved is deleted cleanly with no warning.
{% endhint %}

{% hint style="success" %}
**Post-delete refresh.** The home page and the "create legacy" eligibility check re-read directly from the chain after a delete, so you can create a new legacy immediately without refreshing the page.
{% endhint %}

### Safe delete

1. Click **Delete contract** on the details page.
2. Confirm in the popup — this submits the first signature.
3. Safe co-signers finalize at the threshold; status shows *Needs finalizing to delete* until done.
4. Once finalized, assets return to the Safe and approvals are revoked.

## What stays the same after edits

Notification settings — **watchers and email reminders** — are tied to the wallet that created the legacy, not to the legacy itself. Editing or replacing beneficiaries doesn't change who controls notifications. For Safe legacies where the creator is a specific Safe signer, only that signer can change notification settings; see [Creator vs. signer](/user-guide/concepts.md#creator-vs-signer-safe-legacies).

If the creator needs to effectively hand off notification settings to another Safe signer, the current workaround is: delete the legacy and recreate it, with the new signer submitting the creation transaction.

## See also

* [Legacy Contract Details](/user-guide/legacy/legacy-contract-details.md)
* [Activate a Legacy Contract and Claim Funds](/user-guide/legacy/activate-a-legacy-contract-and-claim-funds.md)
* [Manage Authorized Watchers](/user-guide/premium-features/manage-authorized-watchers.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.10102.io/user-guide/legacy/edit-or-delete-a-legacy-contract.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
