|
| 1 | +# Migration: Tezos Ghostnet → Shadownet |
| 2 | + |
| 3 | +> **Note:** This file should be removed once the migration is complete and merged. |
| 4 | +
|
| 5 | +## Overview |
| 6 | + |
| 7 | +Tezos is replacing Ghostnet with Shadownet as the long-term testnet. This document tracks what needs to change for Homebase to support Shadownet. |
| 8 | + |
| 9 | +Reference: https://teztnets.com/shadownet-about |
| 10 | + |
| 11 | +## Shadownet Technical Details |
| 12 | + |
| 13 | +- **RPC:** `https://rpc.shadownet.teztnets.com` |
| 14 | +- **Faucet:** `https://faucet.shadownet.teztnets.com` |
| 15 | +- **Network Name:** `TEZOS_SHADOWNET_2025-08-07T20:00:00Z` |
| 16 | +- **Activation Date:** 2025-08-07 |
| 17 | + |
| 18 | +## External Service Compatibility |
| 19 | + |
| 20 | +| Service | Status | Endpoint | |
| 21 | +|---------|--------|----------| |
| 22 | +| TzKT API | ✅ Ready | `api.shadownet.tzkt.io` | |
| 23 | +| TzKT Explorer | ✅ Ready | `shadownet.tzkt.io` | |
| 24 | +| Shadownet Faucet | ✅ Ready | `faucet.shadownet.teztnets.com` | |
| 25 | +| SmartPy RPC | ❓ Unknown | May not support shadownet | |
| 26 | +| Beacon Wallet SDK | ✅ Ready | Upgraded to 4.7.0 with native `NetworkType.SHADOWNET` | |
| 27 | +| Better Call Dev | ❓ Unknown | May not support shadownet | |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## Changes Required |
| 32 | + |
| 33 | +### 1. Frontend App (this repo) |
| 34 | + |
| 35 | +#### Files to modify: |
| 36 | + |
| 37 | +| File | Change | |
| 38 | +|------|--------| |
| 39 | +| `src/services/beacon/utils.ts` | Replace `ghostnet` with `shadownet` in Network type, RPC nodes, colors, and wallet config | |
| 40 | +| `src/services/config/constants.ts` | Rename env key to `REACT_APP_RPC_NETWORK_SHADOWNET` | |
| 41 | +| `src/modules/common/Footer.tsx` | Update explorer link to `shadownet.tzkt.io` | |
| 42 | +| `src/modules/creator/state/context.tsx` | Update network checks from `ghostnet` to `shadownet` | |
| 43 | +| `src/services/tzprofiles/hooks/useProfileClaim.tsx` | Update network validation | |
| 44 | +| `.env` | Update env var name | |
| 45 | + |
| 46 | +### 2. Hasura/Indexer |
| 47 | + |
| 48 | +The Homebase indexer needs to be reconfigured: |
| 49 | + |
| 50 | +- [ ] Point indexer to shadownet RPC (`https://rpc.shadownet.teztnets.com`) |
| 51 | +- [ ] Reset/migrate database (shadownet is a new chain) |
| 52 | +- [ ] Redeploy Hasura instance |
| 53 | +- [ ] Update any hardcoded network references |
| 54 | + |
| 55 | +**Indexer endpoints:** |
| 56 | +- V1: `https://v3-homebase-indexer.tezos-homebase.io/v1/graphql` |
| 57 | +- V2: `https://v2-homebase-indexer.w3api.dev/v1/graphql` |
| 58 | + |
| 59 | +### 3. Smart Contracts |
| 60 | + |
| 61 | +All contracts must be **redeployed on Shadownet** (it's a completely new chain): |
| 62 | + |
| 63 | +- [ ] Token contracts (FA1.2/FA2) |
| 64 | +- [ ] BaseDAO contracts |
| 65 | +- [ ] Registry contracts |
| 66 | +- [ ] Metadata carrier contracts |
| 67 | +- [ ] DAO deployer service contracts |
| 68 | + |
| 69 | +### 4. Environment Variables |
| 70 | + |
| 71 | +```bash |
| 72 | +# Old |
| 73 | +REACT_APP_RPC_NETWORK_GHOSTNET=https://ghostnet.smartpy.io |
| 74 | + |
| 75 | +# New |
| 76 | +REACT_APP_RPC_NETWORK_SHADOWNET=https://rpc.shadownet.teztnets.com |
| 77 | +``` |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## Testing Checklist |
| 82 | + |
| 83 | +- [x] Get tez from shadownet faucet |
| 84 | +- [x] Test wallet connection with Temple/Kukai (Kukai works with Beacon SDK 4.7.0) |
| 85 | +- [x] Fix: Wallet was connecting to mainnet instead of shadownet (now passes network to `requestPermissions`) |
| 86 | +- [ ] Test token creation (on correct network) |
| 87 | +- [ ] Test DAO creation flow |
| 88 | +- [ ] Test staking |
| 89 | +- [ ] Test proposal creation |
| 90 | +- [ ] Test voting |
| 91 | +- [ ] Test proposal execution |
| 92 | +- [ ] Verify TzKT links work correctly |
| 93 | +- [ ] Verify indexer picks up new DAOs |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## Migration Strategy |
| 98 | + |
| 99 | +**Approach: Replace ghostnet with shadownet** |
| 100 | + |
| 101 | +Since Ghostnet is being deprecated, we're replacing it entirely rather than adding shadownet alongside it. Users will lose access to existing ghostnet DAOs, but those would become inaccessible anyway once Ghostnet shuts down. |
| 102 | + |
| 103 | +--- |
| 104 | + |
| 105 | +## Rollback Plan |
| 106 | + |
| 107 | +If issues arise: |
| 108 | +1. Revert this branch |
| 109 | +2. Re-enable ghostnet configuration |
| 110 | +3. Investigate and fix shadownet issues in a new branch |
0 commit comments