-
Contract Deployment:
PRIVATE_KEYinapps/contracts/.envis used to deploy the contract- During deployment, we set
adminSigner=0x93774ed7296373e372547587a3cc6ef3c0cc7b66 - The contract stores this address
-
Backend Signing:
ADMIN_PRIVATE_KEYinapps/backend/.envis used to sign oracle messages- The backend creates signatures using this private key
- The contract recovers the signer address from the signature
-
Verification:
- Contract recovers signer from signature
- Checks if recovered address ==
adminSigner(set during deployment) - If match → reward is paid ✅
- If no match → transaction fails ❌
The address derived from ADMIN_PRIVATE_KEY must match 0x93774ed7296373e372547587a3cc6ef3c0cc7b66
You said:
ADMIN_PRIVATE_KEYin backend =PRIVATE_KEYin contracts- Admin wallet address =
0x93774ed7296373e372547587a3cc6ef3c0cc7b66
Question: Does the PRIVATE_KEY in your contracts/.env correspond to address 0x93774ed7296373e372547587a3cc6ef3c0cc7b66?
- Everything is correct!
ADMIN_PRIVATE_KEY=PRIVATE_KEYis fine- Proceed with deployment
- You need to set
ADMIN_PRIVATE_KEYto the private key that corresponds to0x93774ed7296373e372547587a3cc6ef3c0cc7b66 PRIVATE_KEYcan be different (for deployment)ADMIN_PRIVATE_KEYmust match the admin wallet
You can verify by checking what address your PRIVATE_KEY corresponds to:
# Quick check (if you have node installed)
node -e "const { ethers } = require('ethers'); const wallet = new ethers.Wallet('YOUR_PRIVATE_KEY'); console.log('Address:', wallet.address);"Or check in your wallet:
- Import the private key
- See what address it shows
- Does it match
0x93774ed7296373e372547587a3cc6ef3c0cc7b66?
Bottom line: If your PRIVATE_KEY corresponds to 0x93774ed7296373e372547587a3cc6ef3c0cc7b66, then yes, they should be the same! ✅