Files
strategic/docs/DEPLOYMENT_GUIDE.md
2026-02-09 21:51:54 -08:00

3.6 KiB

Deployment Guide

Prerequisites

  • Node.js 18+
  • pnpm 8+
  • Foundry (for contract deployment)
  • RPC endpoints for target chains
  • Private key or hardware wallet

Step 1: Environment Setup

  1. Clone the repository:
git clone <repo-url>
cd strategic
  1. Install dependencies:
pnpm install
  1. Copy environment template:
cp .env.example .env
  1. Configure .env:
# RPC Endpoints
RPC_MAINNET=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
RPC_ARBITRUM=https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY
RPC_OPTIMISM=https://opt-mainnet.g.alchemy.com/v2/YOUR_KEY
RPC_BASE=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY

# Private Key (use hardware wallet in production)
PRIVATE_KEY=0x...

# Executor Address (set after deployment)
EXECUTOR_ADDR=

# Optional: 1inch API Key
ONEINCH_API_KEY=

# Optional: Flashbots
FLASHBOTS_RELAY=https://relay.flashbots.net

Step 2: Build

pnpm build

Step 3: Deploy Executor Contract

Testnet Deployment

  1. Set up Foundry:
forge install
  1. Deploy to testnet:
forge script script/Deploy.s.sol \
  --rpc-url $RPC_SEPOLIA \
  --broadcast \
  --verify
  1. Update .env with deployed address:
EXECUTOR_ADDR=0x...

Mainnet Deployment

  1. Verify addresses in scripts/Deploy.s.sol match your target chain

  2. Deploy with multi-sig:

forge script script/Deploy.s.sol \
  --rpc-url $RPC_MAINNET \
  --broadcast \
  --verify \
  --sender <MULTISIG_ADDRESS>
  1. Transfer ownership to multi-sig after deployment

  2. Configure allow-list via multi-sig:

executor.setAllowedTargets([...protocols], true);
executor.setAllowedPool(aavePool, true);

Step 4: Verify Deployment

  1. Check contract on block explorer
  2. Verify ownership
  3. Verify allow-list configuration
  4. Test with small transaction

Step 5: Test Strategy

  1. Create test strategy:
{
  "name": "Test",
  "chain": "mainnet",
  "executor": "0x...",
  "steps": [
    {
      "id": "test",
      "action": {
        "type": "aaveV3.supply",
        "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
        "amount": "1000000"
      }
    }
  ]
}
  1. Simulate first:
strategic run test.json --simulate --fork $RPC_MAINNET
  1. Dry run:
strategic run test.json --dry
  1. Execute with small amount:
strategic run test.json

Step 6: Production Configuration

Multi-Sig Setup

  1. Create multi-sig wallet (Gnosis Safe recommended)
  2. Transfer executor ownership to multi-sig
  3. Configure signers (minimum 3-of-5)
  4. Set up emergency pause procedures

Monitoring

  1. Set up transaction monitoring
  2. Configure alerts (see PRODUCTION_RECOMMENDATIONS.md)
  3. Set up health dashboard
  4. Configure logging

Security

  1. Review access controls
  2. Test emergency pause
  3. Verify allow-list
  4. Set up incident response plan

Troubleshooting

Deployment Fails

  • Check RPC endpoint
  • Verify gas prices
  • Check contract size limits
  • Verify addresses are correct

Execution Fails

  • Check executor address in strategy
  • Verify allow-list includes target protocols
  • Check gas limits
  • Verify strategy JSON is valid

High Gas Usage

  • Optimize batch size
  • Review strategy complexity
  • Consider splitting into multiple transactions

Post-Deployment

  1. Monitor for 24-48 hours
  2. Review all transactions
  3. Gradually increase limits
  4. Expand allow-list as needed
  5. Document learnings

Rollback Plan

If issues occur:

  1. Pause executor immediately
  2. Review recent transactions
  3. Revoke problematic addresses
  4. Fix issues
  5. Resume with caution