You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/defender/migration.mdx
+88-74Lines changed: 88 additions & 74 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,7 @@ title: Migrating from Defender to Open Source
7
7
Defender is now in maintenance mode. To continue using monitoring and relaying capabilities with the latest features and updates, we recommend migrating to OpenZeppelin's open source tools.
8
8
9
9
This guide covers:
10
+
10
11
- Migrating from **Defender Monitor** to [OpenZeppelin Monitor](/monitor)
11
12
- Migrating from **Defender Relayer** to [OpenZeppelin Relayer](/relayer)
12
13
@@ -57,8 +58,11 @@ The "OpenZeppelin Monitor Configurations" button will download a .zip file conta
57
58
- Webhook URLs for notifications
58
59
- Service integration credentials (Slack, Telegram, Discord, etc.)
59
60
60
-
<Callouttype='warn'>
61
-
Custom Actions attached to your Defender monitors will not be automatically migrated. You will need to manually recreate any custom action logic following the [OpenZeppelin Monitor documentation](/monitor) for trigger handlers and custom notifications.
61
+
<Callouttype="warn">
62
+
Custom Actions attached to your Defender monitors will not be automatically
63
+
migrated. You will need to manually recreate any custom action logic following
64
+
the [OpenZeppelin Monitor documentation](/monitor) for trigger handlers and
65
+
custom notifications.
62
66
</Callout>
63
67
64
68
Alternatively, if you don't want to download all the monitors configurations at once, you can navigate to each individual monitor and download its configuration separately. This gives you more control over which monitors to migrate and when.
@@ -99,33 +103,30 @@ Export your Defender Relayer configurations using the "OpenZeppelin Relayer Conf
If you don't want a specific relayer to be migrated, delete that relayer before clicking the download button.
106
+
<Callouttype="info">
107
+
If you don't want a specific relayer to be migrated, delete that relayer
108
+
before clicking the download button.
104
109
</Callout>
105
110
106
111
**What you'll download:**
107
112
108
-
-**ZIP file**: Downloaded if you have relayers on forked or private networks. The ZIP contains a `config.json` file and a `networks/` folder with custom network definitions.
109
-
-**JSON file**: Downloaded if all your relayers are on standard public networks. This is a single `config.json` file.
113
+
A **ZIP file** containing:
114
+
115
+
-`config.json` - Your relayer configurations
116
+
-`networks/` folder - Custom network definitions (if you have relayers on forked or private networks)
110
117
111
118
#### Step 2: Set Up OpenZeppelin Relayer
112
119
113
120
Before importing your configurations, set up the OpenZeppelin Relayer infrastructure by following the [OpenZeppelin Relayer Quick Start Guide](/relayer/quickstart).
114
121
115
122
#### Step 3: Place Configuration Files
116
123
117
-
**If you downloaded a ZIP file:**
118
-
119
-
1. Extract the ZIP file
124
+
1. Extract the downloaded ZIP file
120
125
2. Copy `config.json` to the `config/` directory in your OpenZeppelin Relayer project
121
-
3. Copy the `networks/` folder contents to `config/networks/`
122
-
123
-
**If you downloaded a plain JSON file:**
124
-
125
-
1. Copy the downloaded file to the `config/` directory
126
-
2. Rename it to `config.json`
126
+
3. If you have custom networks, copy the `networks/` folder contents to `config/networks/`
127
127
128
128
Your directory structure should look like:
129
+
129
130
```
130
131
openzeppelin-relayer/
131
132
├── config/
@@ -139,26 +140,25 @@ openzeppelin-relayer/
139
140
140
141
After placing the files, you need to update several configuration values:
141
142
142
-
**For custom networks (if you downloaded a ZIP file):**
143
+
**For custom networks:**
143
144
144
-
Update the RPC URLs in each network definition file under `config/networks/`. Replace placeholder values with your actual RPC endpoint URLs:
145
+
If you have forked or private networks, update the RPC URLs in each network definition file under `config/networks/`. Replace placeholder values with your actual RPC endpoint URLs:
145
146
146
147
```json
147
148
{
148
149
"network": "my-custom-network",
149
-
"rpc_urls": [
150
-
"https://your-rpc-endpoint.com"
151
-
]
150
+
"rpc_urls": ["https://your-rpc-endpoint.com"]
152
151
}
153
152
```
154
153
155
-
**For all migrations (both ZIP and JSON):**
154
+
**For all relayers:**
156
155
157
156
Edit `config/config.json` to update:
158
157
159
158
1.**Signer configuration**: Each relayer needs a signer configured. See [Choosing a Signer Type](#choosing-a-signer-type) below for options and setup instructions.
160
159
161
160
2.**Notification webhooks**: Update the `notifications` section with your webhook URLs:
161
+
162
162
```json
163
163
"notifications": [
164
164
{
@@ -175,8 +175,9 @@ Edit `config/config.json` to update:
175
175
176
176
3.**Network-specific policies**: Review and adjust policies for each relayer as needed (gas price caps, minimum balance thresholds, whitelist receivers, etc.).
177
177
178
-
<Callouttype='info'>
179
-
For detailed configuration options, see the [OpenZeppelin Relayer Configuration documentation](/relayer/configuration).
178
+
<Callouttype="info">
179
+
For detailed configuration options, see the [OpenZeppelin Relayer
@@ -219,8 +220,11 @@ Once OpenZeppelin Relayer is running correctly:
219
220
5.**Recommended**: Transfer a small amount first and test with a transaction
220
221
6. If the test transaction succeeds, transfer the remaining funds
221
222
222
-
<Callouttype='warn'>
223
-
Since you're creating new relayer addresses (see [Understanding Signer Migration](#understanding-signer-migration)), make sure to update any smart contract permissions, whitelists, or access control lists to include the new addresses before transferring all funds.
223
+
<Callouttype="warn">
224
+
Since you're creating new relayer addresses (see [Understanding Signer
225
+
Migration](#understanding-signer-migration)), make sure to update any smart
226
+
contract permissions, whitelists, or access control lists to include the new
227
+
addresses before transferring all funds.
224
228
</Callout>
225
229
226
230
#### Step 7: Gradually Move Traffic
@@ -246,6 +250,7 @@ Defender Relayers use AWS Key Management Service (AWS KMS) to secure private key
246
250
- You **must create new relayers with new addresses** when migrating to OpenZeppelin Relayer
247
251
248
252
This is a fundamental security feature of AWS KMS that protects your keys from unauthorized access.
253
+
249
254
</Callout>
250
255
251
256
### Choosing a Signer Type
@@ -254,15 +259,15 @@ OpenZeppelin Relayer supports multiple signer types to accommodate different sec
254
259
255
260
#### Available Signer Options
256
261
257
-
| Signer Type | Description |
258
-
|------------|-------------|
259
-
|**Local**| Encrypted keystore file stored on the filesystem |
260
-
|**AWS KMS**| Amazon Web Services Key Management Service |
261
-
|**Google Cloud KMS**| Google Cloud Key Management Service |
262
-
|**HashiCorp Vault**| Vault secret engine for private key storage |
@@ -277,8 +282,10 @@ OpenZeppelin Relayer supports multiple signer types to accommodate different sec
277
282
5.**Transfer funds** from old Defender Relayer addresses to new OpenZeppelin Relayer addresses
278
283
6.**Test thoroughly** before switching production traffic
279
284
280
-
<Callouttype='info'>
281
-
For detailed configuration instructions for each signer type, see the [OpenZeppelin Relayer Signer Configuration documentation](/relayer/configuration/signers).
285
+
<Callouttype="info">
286
+
For detailed configuration instructions for each signer type, see the
0 commit comments