# Defender Deployment - Ready Status **Date**: 2025-12-11 **Status**: ✅ Scripts Updated - Configuration Needed --- ## ✅ What's Been Done ### Deployment Scripts Updated Both deployment scripts have been updated to use Defender: 1. **DeployMainnetTether.s.sol** - Now checks for `DEFENDER_ADMIN` first - Falls back to `TETHER_ADMIN` if Defender not set - Logs Defender admin address on deployment 2. **DeployTransactionMirror.s.sol** - Now checks for `DEFENDER_ADMIN` first - Falls back to `MIRROR_ADMIN` if Defender not set - Logs Defender admin address on deployment --- ## ⚠️ Configuration Required ### 1. Set Defender Admin Address Add to `.env` file: ```bash DEFENDER_ADMIN=0x... # Your Defender relayer address ``` **How to get Defender address:** 1. Go to OpenZeppelin Defender: https://defender.openzeppelin.com/ 2. Create or select a relayer 3. Copy the relayer address 4. Add to `.env` as `DEFENDER_ADMIN` ### 2. Update RPC URL The current RPC URL has a placeholder. Update in `.env`: ```bash ETH_MAINNET_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_ACTUAL_API_KEY ``` Replace `YOUR_ACTUAL_API_KEY` with your real Alchemy API key. --- ## 🚀 Deployment Commands (After Configuration) Once `.env` is configured: ### Deploy MainnetTether ```bash cd /home/intlc/projects/smom-dbis-138 source .env forge script script/DeployMainnetTether.s.sol \ --rpc-url $ETH_MAINNET_RPC_URL \ --private-key $PRIVATE_KEY \ --broadcast \ --verify \ -vvvv ``` ### Deploy TransactionMirror ```bash forge script script/DeployTransactionMirror.s.sol \ --rpc-url $ETH_MAINNET_RPC_URL \ --private-key $PRIVATE_KEY \ --broadcast \ --verify \ --via-ir \ -vvvv ``` --- ## ✅ Verification Steps After updating `.env`: 1. **Test RPC Connection:** ```bash cast block-number --rpc-url $ETH_MAINNET_RPC_URL ``` Should return current block number. 2. **Verify Defender Address:** ```bash echo $DEFENDER_ADMIN ``` Should show your Defender relayer address. 3. **Check Deployer Balance:** ```bash cast balance $(cast wallet address $PRIVATE_KEY) --rpc-url $ETH_MAINNET_RPC_URL ``` Should show sufficient ETH for gas. --- ## 📝 Environment Variables Summary Required in `.env`: - ✅ `PRIVATE_KEY` - Already set - ✅ `ETH_MAINNET_RPC_URL` - Needs actual API key (currently has placeholder) - ✅ `ETHERSCAN_API_KEY` - Already set - ⚠️ `DEFENDER_ADMIN` - Needs to be added Optional (fallback): - `TETHER_ADMIN` - Used if `DEFENDER_ADMIN` not set - `MIRROR_ADMIN` - Used if `DEFENDER_ADMIN` not set --- ## 🔐 Defender Benefits Using Defender as admin provides: - ✅ Automated transaction execution - ✅ Gas price optimization - ✅ Transaction monitoring and alerts - ✅ Multi-signature support - ✅ Rate limiting and security policies - ✅ Non-custodial key management --- ## 📄 Related Documentation - `DEPLOYMENT_RESULTS_DEFENDER.md` - Deployment results (after deployment) - `DEPLOYMENT_ISSUES_AND_FIXES.md` - Troubleshooting guide - `FINAL_PRE_DEPLOYMENT_CHECKLIST.md` - Pre-deployment checklist --- **Last Updated**: 2025-12-11 **Status**: Scripts Ready - Configuration Needed