# Remaining Next Steps - Complete Checklist

**Date**: 2026-01-26  
**Status**: All token lists created and validated  
**Remaining**: Hosting, submission, and distribution

---

## ✅ Completed (Do Not Repeat)

- [x] Created all 3 token list files
- [x] Validated all token lists
- [x] Discovered ALL Mainnet tokens (9 tokens including AUSDT)
- [x] Updated ChainID 138 with cUSDT and cUSDC
- [x] Created extraction and discovery scripts
- [x] Created comprehensive documentation

---

## 📋 Remaining Next Steps

### Phase 1: Hosting Token Lists (Required)

#### 1.1 Host on GitHub (Recommended)

**For Each Token List**:

- [ ] **Commit token lists to repository**
  ```bash
  cd /home/intlc/projects/proxmox
  git add token-lists/lists/*.json
  git commit -m "Add token lists for Ethereum Mainnet, ChainID 138, and ALL Mainnet"
  git push
  ```

- [ ] **Enable GitHub Pages** (if using Pages)
  - Go to repository Settings → Pages
  - Select branch (main/master)
  - Select folder: `/token-lists/lists/` or `/ (root)`
  - Save

- [ ] **Verify GitHub Raw URLs are accessible**
  - Test: `https://raw.githubusercontent.com/{user}/{repo}/main/token-lists/lists/dbis-138.tokenlist.json`
  - Test: `https://raw.githubusercontent.com/{user}/{repo}/main/token-lists/lists/ethereum-mainnet.tokenlist.json`
  - Test: `https://raw.githubusercontent.com/{user}/{repo}/main/token-lists/lists/all-mainnet.tokenlist.json`

- [ ] **Verify CORS headers** (if using custom domain)
  - Ensure `Access-Control-Allow-Origin: *` header is set
  - Test with: `curl -I <token-list-url>`

#### 1.2 Alternative Hosting Options

- [ ] **IPFS Hosting** (Optional - Decentralized)
  - Upload token lists to IPFS (Pinata, Infura, etc.)
  - Pin files to keep them available
  - Document IPFS hashes

- [ ] **Custom Domain Hosting** (Optional)
  - Configure `tokens.d-bis.org` or similar domain
  - Setup nginx/Apache with CORS headers
  - Mirror GitHub releases

---

### Phase 2: Signing Token Lists (Recommended for Security)

#### 2.1 Generate minisign Keypair (If Not Done)

- [ ] **Generate keypair**
  ```bash
  cd token-lists
  ./scripts/sign-list.sh --generate-key
  ```

- [ ] **Store private key securely**
  - Add to GitHub Secrets (for CI/CD)
  - Store securely for manual signing

- [ ] **Commit public key**
  ```bash
  git add minisign.pub
  git commit -m "Add minisign public key for token list verification"
  git push
  ```

#### 2.2 Sign All Token Lists

- [ ] **Sign ChainID 138 token list**
  ```bash
  cd token-lists
  ./scripts/sign-list.sh sign lists/dbis-138.tokenlist.json
  ```

- [ ] **Sign Ethereum Mainnet token list**
  ```bash
  ./scripts/sign-list.sh sign lists/ethereum-mainnet.tokenlist.json
  ```

- [ ] **Sign ALL Mainnet token list**
  ```bash
  ./scripts/sign-list.sh sign lists/all-mainnet.tokenlist.json
  ```

- [ ] **Commit signatures**
  ```bash
  git add lists/*.sig
  git commit -m "Add minisign signatures for token lists"
  git push
  ```

---

### Phase 3: Create GitHub Releases

#### 3.1 Release ChainID 138 Token List

- [ ] **Update version** (if needed)
  ```bash
  cd token-lists
  ./scripts/release.sh patch  # or minor/major
  ```

- [ ] **Create git tag**
  ```bash
  git tag -a v1.2.0 -m "Release v1.2.0: Added cUSDT and cUSDC"
  git push --tags
  ```

- [ ] **Verify GitHub Actions release workflow** (if configured)
  - Check `.github/workflows/release.yml` exists
  - Verify workflow runs on tag push
  - Check release artifacts created

#### 3.2 Release Ethereum Mainnet Token List

- [ ] **Create initial release**
  ```bash
  git tag -a ethereum-mainnet-v1.0.0 -m "Release Ethereum Mainnet token list v1.0.0"
  git push --tags
  ```

#### 3.3 Release ALL Mainnet Token List

- [ ] **Create initial release**
  ```bash
  git tag -a all-mainnet-v1.0.0 -m "Release ALL Mainnet token list v1.0.0"
  git push --tags
  ```

---

### Phase 4: Submit to Token List Registries

#### 4.1 Uniswap Token Lists Registry

**For Each Token List**:

- [ ] **Fork Uniswap token-lists repository**
  - Repository: https://github.com/Uniswap/token-lists
  - Fork to your GitHub account

- [ ] **Clone your fork**
  ```bash
  git clone https://github.com/YOUR_USERNAME/token-lists.git
  cd token-lists
  ```

- [ ] **Add token list to repository**
  - Follow their directory structure
  - Copy token list file to appropriate location
  - Ensure file naming follows their conventions

- [ ] **Create Pull Request**
  ```bash
  git checkout -b add-{network}-token-list
  git add <token-list-file>
  git commit -m "Add {Network Name} token list"
  git push origin add-{network}-token-list
  ```
  - Then create PR on GitHub
  - Include description of tokens
  - Reference token list URL

**Specific PRs Needed**:
- [ ] PR for ChainID 138 token list
- [ ] PR for Ethereum Mainnet token list (if not already in registry)
- [ ] PR for ALL Mainnet token list

#### 4.2 MetaMask Token Lists

- [ ] **Add token list URLs to MetaMask** (Manual)
  - MetaMask → Settings → Security & Privacy → Token Lists
  - Add each token list URL
  - Test token discovery

- [ ] **Submit to MetaMask's default registry** (If they have one)
  - Check MetaMask documentation for submission process
  - Follow their guidelines

#### 4.3 Chainlist Integration

- [ ] **Update ChainID 138 chain configuration**
  - File: `token-lists/chainlists/chain-138.json`
  - Add `tokenLists` field with token list URL
  - Submit PR to Chainlist repository

- [ ] **Create ALL Mainnet chain configuration** (If not exists)
  - Create `chainlists/chain-651940.json`
  - Include token list URL reference
  - Submit to Chainlist

- [ ] **Update Ethereum Mainnet chain config** (If applicable)
  - Add token list reference if submitting custom list

---

### Phase 5: Update Configuration Files

#### 5.1 Update chains.ts (ALL Mainnet)

- [ ] **Update USDC address** in `alltra-lifi-settlement/src/config/chains.ts`
  - Current: `usdcAddress: ''` (empty)
  - Update to: `usdcAddress: '0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881'` (USDC on ALL Mainnet)

- [ ] **Update AUSDT address** (if needed)
  - Document AUSDT address: `0x015B1897Ed5279930bC2Be46F661894d219292A6`

#### 5.2 Update Documentation

- [ ] **Update CHAIN138_TOKEN_ADDRESSES.md**
  - Ensure all tokens are documented
  - Add explorer links

- [ ] **Create ALL_MAINNET_TOKEN_ADDRESSES.md**
  - Document all 9 tokens found
  - Include addresses, decimals, explorer links

---

### Phase 6: Logo Management (Optional but Recommended)

#### 6.1 Host Token Logos

- [ ] **Create logos directory**
  ```bash
  mkdir -p token-lists/logos
  ```

- [ ] **Download/verify logo URLs**
  - Check all logo URLs are accessible
  - Download logos for local hosting (optional)
  - Update logoURI fields if needed

- [ ] **Add missing logos**
  - HYDX, HYBX, CHT, AUDA may need logos
  - Create or source appropriate logos
  - Host logos publicly
  - Update token list with logo URLs

---

### Phase 7: CI/CD Enhancements (Optional)

#### 7.1 GitHub Actions Workflows

- [ ] **Verify PR validation workflow**
  - Check `.github/workflows/validate-pr.yml` exists
  - Test workflow on PR
  - Ensure it validates all token lists

- [ ] **Verify release workflow**
  - Check `.github/workflows/release.yml` exists
  - Test workflow on tag push
  - Verify artifacts created

- [ ] **Add workflow for ALL Mainnet** (if needed)
  - Create workflow to validate ALL Mainnet token list
  - Add chain ID 651940 validation

#### 7.2 Automated Updates

- [ ] **Setup automated token discovery** (Optional)
  - Create scheduled job to scan for new tokens
  - Auto-update token lists (with manual review)
  - Notify on new token discoveries

---

### Phase 8: Testing and Verification

#### 8.1 Integration Testing

- [ ] **Test MetaMask integration**
  - Add token list URL to MetaMask
  - Verify tokens appear correctly
  - Test token metadata display

- [ ] **Test Uniswap integration** (If applicable)
  - Verify token list works in Uniswap interface
  - Test token selection and display

- [ ] **Test dApp integration**
  - Use token list in sample dApp
  - Verify token metadata loading
  - Test token selection

#### 8.2 On-Chain Verification

- [ ] **Verify ChainID 138 tokens on-chain**
  ```bash
  node token-lists/scripts/verify-on-chain.js token-lists/lists/dbis-138.tokenlist.json --required
  ```
  (Requires RPC access)

- [ ] **Verify ALL Mainnet tokens on-chain** (If RPC accessible)
  - Create verification script for ALL Mainnet
  - Verify all 9 tokens exist and match metadata

---

### Phase 9: Documentation Updates

#### 9.1 Update Main README

- [ ] **Update token-lists/README.md**
  - Add ALL Mainnet token list to summary
  - Update token counts
  - Add ALL Mainnet discovery information

#### 9.2 Create Submission Status Document

- [ ] **Create submission tracking document**
  - Track PR status for each registry
  - Document submission dates
  - Track approval status

---

### Phase 10: Public Announcement (Optional)

#### 10.1 Community Announcements

- [ ] **Announce on social media** (If applicable)
  - Twitter/X post about token lists
  - Discord announcement
  - Community forum post

#### 10.2 Documentation Updates

- [ ] **Update project documentation**
  - Add token list URLs to main README
  - Update integration guides
  - Add to project website (if applicable)

---

## 📊 Priority Order

### High Priority (Required for Submission)

1. **Host token lists publicly** (GitHub Raw or Pages)
2. **Submit to Uniswap Token Lists registry**
3. **Update chains.ts with ALL Mainnet USDC address**

### Medium Priority (Recommended)

4. **Sign token lists** (minisign)
5. **Create GitHub releases**
6. **Submit to MetaMask token lists**
7. **Update Chainlist with token list references**

### Low Priority (Optional Enhancements)

8. **Logo management**
9. **CI/CD enhancements**
10. **Automated token discovery**

---

## 🎯 Quick Start Commands

### Host on GitHub

```bash
cd /home/intlc/projects/proxmox
git add token-lists/lists/*.json
git commit -m "Add complete token lists for all networks"
git push
```

### Sign Token Lists

```bash
cd token-lists
./scripts/sign-list.sh sign lists/dbis-138.tokenlist.json
./scripts/sign-list.sh sign lists/ethereum-mainnet.tokenlist.json
./scripts/sign-list.sh sign lists/all-mainnet.tokenlist.json
git add lists/*.sig
git commit -m "Add signatures for token lists"
git push
```

### Create Releases

```bash
cd token-lists
git tag -a v1.2.0 -m "Release ChainID 138 token list v1.2.0"
git tag -a ethereum-mainnet-v1.0.0 -m "Release Ethereum Mainnet token list"
git tag -a all-mainnet-v1.0.0 -m "Release ALL Mainnet token list"
git push --tags
```

---

## 📝 Notes

- **GitHub Raw URLs** work immediately after push (no Pages setup needed)
- **Signing** is optional but recommended for security
- **Submissions** can be done in parallel for all registries
- **Testing** should be done before public announcement

---

## ✅ Completion Checklist Summary

**Token Lists**: ✅ Complete (3 files, 16 tokens)  
**Validation**: ✅ Complete (all validated)  
**Documentation**: ✅ Complete (18 docs)  
**Scripts**: ✅ Complete (4 scripts)  

**Remaining**:
- [ ] Hosting (GitHub/IPFS/Custom domain)
- [ ] Signing (minisign)
- [ ] Releases (GitHub tags)
- [ ] Registry submissions (Uniswap, MetaMask, Chainlist)
- [ ] Configuration updates (chains.ts)
- [ ] Integration testing

---

**Last Updated**: 2026-01-26
