Skill: koba42corp/chia-walletconnect (version 1.0.0)

--- name: chia-walletconnect description: Telegram Web App for Chia wallet verification via WalletConnect and Sage. Enables cryptographic proof of wallet ownership through signature verification using MintGarden API. metadata: {"clawdbot":{"requires":{"bins":["node"]},"install":[]}} --- # Chia WalletConnect Skill Verify Chia wallet ownership via Telegram using WalletConnect integration with Sage Wallet. ## What It Does This skill provides a **Telegram Mini App** (Web App) that enables users to: 1. Connect their Sage Wallet via WalletConnect v2 2. Sign a challenge message cryptographically 3. Verify wallet ownership via MintGarden's signature verification API 4. Return verification status to your Telegram bot **Use Cases:** - NFT-gated Telegram groups - Airdrop eligibility verification - Web3-style authentication - DAO voting authentication - Proof of token holdings ## Architecture ``` /verify command → Web App button → WalletConnect → Sage signs → Verification ``` The user never leaves Telegram. The entire flow happens in-app via the Telegram Web App API. ## Installation ```bash # Install via ClawdHub clawdhub install chia-walletconnect # Install dependencies cd skills/chia-walletconnect npm install # Make CLI executable chmod +x cli.js ``` ## Deployment ### Step 1: Deploy Web App Deploy the `webapp/` folder to a public HTTPS URL: **Vercel (Recommended):** ```bash cd skills/chia-walletconnect/webapp vercel # Copy the URL (e.g., https://chia-verify.vercel.app) ``` **Netlify:** ```bash cd skills/chia-walletconnect/webapp netlify deploy --prod ``` **Your Server:** ```bash # Start Express server npm start # Expose via ngrok or reverse proxy ``` ### Step 2: Register with BotFather 1. Message [@BotFather](https://t.me/BotFather) 2. Send `/newapp` or `/editapp` 3. Select your bot 4. **Web App URL:** Enter deployed URL 5. **Short Name:** `verify` ### Step 3: Add to Bot #### Using Clawdbot Message Tool ```javascript // Send /verify command handler message({ action: 'send', target: chatId, message: 'Click below to verify your Chia wallet:', buttons: [[{ text: '🌱 Verify Wallet', web_app: { url: 'https://your-app.vercel.app' } }]] }); ``` #### Handling Verification Response ```javascript // In your bot's web_app_data handler bot.on('web_app_data', async (msg) => { const data = JSON.parse(msg.web_app_data.data); const { address, message, signature, publicKey, userId } = data; // Verify signature const { verifySignature } = require('./skills/chia-walletconnect/lib/verify'); const result = await verifySignature(address, message, signature, publicKey); if (result.verified) { // Wallet verified! Grant access, record verification, etc. message({ action: 'send', target: msg.chat.id, message: `✅ Wallet verified!\n\nAddress: ${address}` }); // Store verification // await db.saveVerification(userId, address); } else { message({ action: 'send', target: msg.chat.id, message: `❌ Verification failed: ${result.error}` }); } }); ``` ## CLI Usage The skill includes a CLI for testing: ```bash # Generate challenge message node cli.js challenge xch1abc... telegram_user_123 # Verify signature manually node cli.js verify xch1abc... "message" "signature" "pubkey" # Validate address format node cli.js validate xch1abc... # Start development server node cli.js server ``` ## API Reference ### MintGarden Signature Verification **Endpoint:** `POST https://api.mintgarden.io/address/verify_signature` ```json { "address": "xch1abc...", "message": "Verify ownership of Chia wallet:...", "signature": "hex_signature", "pubkey": "hex_public_key" } ``` **Response:** ```json { "verified": true } ``` ### CHIP-0002 Methods (WalletConnect) | Method | Purpose | |--------|---------| | `chip0002_getPublicKeys` | Fetch public keys from wallet | | `chip0002_signMessage` | Request message signature | | `chia_getCurrentAddress` | Get current receive address | ## Verification Flow ``` 1. User sends /verify to bot 2. Bot responds with Web App button 3. User taps button → Mini App opens in Telegram 4. Mini App initializes WalletConnect 5. User connects Sage Wallet 6. Challenge message generated (includes nonce + timestamp) 7. User signs message in Sage Wallet 8. Signature sent back to bot via Telegram.WebApp.sendData() 9. Bot verifies signature with MintGarden API 10. Bot confirms verification success/failure ``` **Time:** ~5-10 seconds for full flow (user-dependent) ## Configuration ### Environment Variables Create `.env` in skill folder: ```env PORT=3000 WALLETCONNECT_PROJECT_ID=your-project-id MINTGARDEN_API_URL=https://api.mintgarden.io ``` ### Get WalletConnect Project ID 1. Visit [WalletConnect Cloud](https://cloud.walletconnect.com) 2. Create a new project 3. Copy your Project ID 4. Update in `webapp/app.js` **Default Project ID:** The skill includes [REDACTED_SECRET] (Dracattus reference). For production, use your own. ## Security ### What's Protected - ✅ Challenge nonces prevent replay attacks - ✅ Timestamps expire after 5 minutes - ✅ MintGarden cryptographic verification - ✅ No private keys ever requested - ✅ HTTPS enforced by Telegram ### Best Practices 1. **Store verifications securely** — Use encrypted database 2. **Rate limit** — Prevent spam verification attempts 3. **Link to Telegram user ID** — Prevent address spoofing 4. **Implement cooldown** — 1 verification per user per day 5. **Log attempts** — Audit trail for security ### Production Checklist - [ ] Deploy to HTTPS URL (required by Telegram) - [ ] Use your own WalletConnect Project ID - [ ] Enable CORS only for your domain - [ ] Add rate limiting on webhook endpoints - [ ] Store verifications in persistent database - [ ] Implement retry logic for network errors - [ ] Set up monitoring/alerts ## Files ``` chia-walletconnect/ ├── webapp/ │ ├── index.html # Telegram Web App UI │ ├── app.js # WalletConnect logic │ └── styles.css # Styling ├── lib/ │ ├── challenge.js # Challenge generation │ └── verify.js # MintGarden API client ├── server/ │ └── index.js # Express webhook server ├── cli.js # CLI interface ├── package.json # Dependencies ├── SKILL.md # This file └── README.md # Full documentation ``` ## Troubleshooting ### Web App Doesn't Load - Verify HTTPS deployment (Telegram requires SSL) - Check URL is publicly accessible - Test URL directly in browser - Review browser console for errors ### WalletConnect Connection Fails - Ensure Sage Wallet is latest version - Try manual URI paste instead of QR - Check WalletConnect Project ID is valid - Verify Sage supports WalletConnect v2 ### Signature Verification Fails - Ensure message format matches exactly - Confirm public key corresponds to address - Check MintGarden API is operational - Verify signature encoding (hex) ### "No Public Key" Error - Some wallets don't expose pubkey via WalletConnect - Public key is optional for verification - Signature verification works without it ## Examples ### Simple Verification Bot ```javascript // Clawdbot skill handler const { verifySignature } = require('./lib/verify'); // /verify command if (message.text === '/verify') { await message({ action: 'send', target: message.chat.id, message: 'Verify your Chia wallet:', buttons: [[{ text: '🌱 Connect Wallet', web_app: { url: process.env.WEB_APP_URL } }]] }); } // Handle web app data bot.on('web_app_data', async (msg) => { const { address, message: challengeMsg, signature, publicKey } = JSON.parse(msg.web_app_data.data); const result = await verifySignature(address, challengeMsg, signature, publicKey); if (result.verified) { // Grant access await grantAccess(msg.from.id, address); await message({ action: 'send', target: msg.chat.id, message: `✅ Verified! Welcome, ${address.substring(0, 12)}...` }); } else { await message({ action: 'send', target: msg.chat.id, message: `❌ Verification failed` }); } }); ``` ### NFT Gating ```javascript // Check if user owns specific NFT collection const { verifySignature } = require('./skills/chia-walletconnect/lib/verify'); const mintGarden = require('./skills/mintgarden'); // Assume mintgarden skill exists bot.on('web_app_data', async (msg) => { const { address, message, signature, publicKey } = JSON.parse(msg.web_app_data.data); // Verify signature first const verifyResult = await verifySignature(address, message, signature, publicKey); if (!verifyResult.verified) { return bot.sendMessage(msg.chat.id, '❌ Invalid signature'); } // Check NFT ownership const nfts = await mintGarden.getNFTsByAddress(address); const hasRequiredNFT = nfts.some(nft => nft.collection_id === 'col1required...' ); if (hasRequiredNFT) { // Grant access to private group await inviteToGroup(msg.from.id); bot.sendMessage(msg.chat.id, '✅ Access granted! Check your invites.'); } else { bot.sendMessage(msg.chat.id, '❌ You need a Wojak NFT to join!'); } }); ``` ## Performance | Stage | Time | |-------|------| | WalletConnect Init | ~1-2s | | Connection Approval | User action | | Sign Request | ~2-5s | | MintGarden Verify | ~0.5-1s | | **Total** | **~5-10s** | ## Dependencies - `@walletconnect/sign-client` — WalletConnect v2 - `@walletconnect/utils` — WalletConnect helpers - `@walletconnect/types` — TypeScript types - `express` — Web server - `node-fetch` — HTTP client - `cors` — CORS middleware - `dotenv` — Environment config ## Version 1.0.0 ## License MIT — Koba42 Corp ## Links - **MintGarden API:** https://api.mintgarden.io/docs - **WalletConnect:** https://docs.walletconnect.com/ - **Telegram Web Apps:** https://core.telegram.org/bots/webapps - **Sage Wallet:** https://www.sagewallet.io/ - **CHIP-0002:** https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0002.md --- **Built with 🌱 by Koba42 Corp**

path: README.md
content: # 🌱 Chia WalletConnect - Telegram Signature Verification

**Verify Chia wallet ownership via Telegram using WalletConnect and Sage Wallet.**

A Telegram Web App (Mini App) that enables seamless wallet signature verification for Chia blockchain addresses through WalletConnect integration with Sage Wallet, powered by MintGarden's signature verification API.

---

## ✨ Features

- 🔗 **WalletConnect v2 Integration** — Industry-standard wallet connection protocol
- 📱 **Telegram Mini App** — Native in-app experience
- 🔐 **Signature Verification** — Cryptographic proof of wallet ownership
- ✅ **MintGarden API** — Trusted signature validation
- 🎯 **CHIP-0002 Support** — Sage Wallet compatibility
- 💚 **Mobile-First** — Optimized for Telegram mobile clients
- 🚀 **Zero Manual Copy/Paste** — Seamless user experience

---

## 🏗️ Architecture

```
┌─────────────────┐
│  Telegram Bot   │
│ (Clawdbot)      │
└────────┬────────┘
         │ /verify command
         │ Opens Web App →
         ▼
┌─────────────────────────────┐
│   Telegram Mini App         │
│   (Hosted Web Frontend)     │
│                             │
│  ┌──────────────────────┐  │
│  │  WalletConnect v2    │  │
│  │  Sign Client         │  │
│  └──────────┬───────────┘  │
│             │               │
│             │ Connect & Sign
│             ▼               │
│      ┌──────────────┐      │
│      │ Sage Wallet  │      │
│      │   (Mobile)   │      │
│      └──────┬───────┘      │
│             │               │
│             │ Returns signature
│             ▼               │
│  ┌──────────────────────┐  │
│  │  Send to Bot via     │  │
│  │  Telegram.sendData() │  │
│  └──────────────────────┘  │
└─────────────────────────────┘
              │
              │ web_app_data
              ▼
┌─────────────────────────┐
│  Bot Webhook Handler    │
│  (Verifies signature)   │
└────────┬────────────────┘
         │
         │ POST /verify_signature
         ▼
┌─────────────────────────┐
│  MintGarden API         │
│  (Signature validation) │
└─────────────────────────┘
```

---

## 🚀 Quick Start

### Installation

```bash
# Install skill via ClawdHub
clawdhub install chia-walletconnect

# Install dependencies
cd skills/chia-walletconnect
npm install

# Make CLI executable
chmod +x cli.js
```

### Local Development

```bash
# Start the development server
npm start
# Server runs on http://localhost:3000

# Test in browser
open http://localhost:3000
```

### CLI Usage

```bash
# Generate a challenge
node cli.js challenge xch1abc... telegram_user_123

# Verify a signature
node cli.js verify xch1abc... "message" "signature" "pubkey"

# Validate address format
node cli.js validate xch1abc...

# Start web server
node cli.js server
```

---

## 📱 Telegram Bot Integration

### Step 1: Deploy Web App

Deploy the `webapp/` folder to a public HTTPS URL:

**Option A: Vercel**
```bash
# Install Vercel CLI
npm i -g vercel

# Deploy
cd webapp
vercel

# Copy the deployment URL (e.g., https://your-app.vercel.app)
```

**Option B: Netlify**
```bash
# Install Netlify CLI
npm i -g netlify-cli

# Deploy
cd webapp
netlify deploy --prod

# Copy the deployment URL
```

**Option C: Your Own Server**
```bash
# Run the server on your VPS
npm start

# Use ngrok for testing
ngrok http 3000
```

### Step 2: Register with BotFather

1. Open Telegram and message [@BotFather](https://t.me/BotFather)
2. Send `/newapp` or `/editapp`
3. Select your bot
4. **Web App URL:** Enter your deployed URL (e.g., `https://your-app.vercel.app`)
5. **Short Name:** `verify` (or any unique identifier)

### Step 3: Add Bot Command

Create a `/verify` command in your bot:

```javascript
// In your Clawdbot skill or bot handler

bot.onText(/\/verify/, async (msg) => {
  const chatId = msg.chat.id;
  
  // Send inline button to launch Web App
  bot.sendMessage(chatId, 'Click below to verify your Chia wallet:', {
    reply_markup: {
      inline_keyboard: [[
        {
          text: '🌱 Verify Wallet',
          web_app: { url: 'https://your-app.vercel.app' }
        }
      ]]
    }
  });
});
```

### Step 4: Handle Web App Data

Listen for signature data returned from the Web App:

```javascript
// Handle web_app_data callback
bot.on('web_app_data', async (msg) => {
  const chatId = msg.chat.id;
  const data = JSON.parse(msg.web_app_data.data);
  
  const { address, message, signature, publicKey, userId } = data;
  
  console.log(`🔐 Received signature from ${address}`);
  
  // Verify signature with MintGarden API
  const { verifySignature } = require('./lib/verify');
  const result = await verifySignature(address, message, signature, publicKey);
  
  if (result.verified) {
    bot.sendMessage(chatId, `✅ Wallet verified!\n\nAddress: ${address}`);
    
    // Store verification in your database
    // await saveVerification(userId, address);
    
  } else {
    bot.sendMessage(chatId, `❌ Verification failed: ${result.error}`);
  }
});
```

---

## 🔧 Configuration

### Environment Variables

Create a `.env` file:

```env
# Server configuration
PORT=3000
NODE_ENV=production

# WalletConnect Project ID
# Get yours at https://cloud.walletconnect.com
WALLETCONNECT_PROJECT_ID=6d377259062295c0f6312b4f3e7a5d9b

# Optional: MintGarden API
MINTGARDEN_API_URL=https://api.mintgarden.io

# Optional: Your backend API
BACKEND_API_URL=https://your-backend.com/api
```

### WalletConnect Project ID

The included Project ID ([REDACTED_SECRET]) is from the Dracattus reference implementation. For production:

1. Visit [WalletConnect Cloud](https://cloud.walletconnect.com)
2. Create a new project
3. Copy your Project ID
4. Update in `webapp/app.js`:

```javascript
const WALLETCONNECT_PROJECT_ID = 'your-project-id-here';
```

---

## 🛠️ API Reference

### MintGarden Signature Verification

**Endpoint:** `POST https://api.mintgarden.io/address/verify_signature`

**Request:**
```json
{
  "address": "xch1abc...",
  "message": "Verify ownership of...",
  "signature": "signature_hex",
  "pubkey": "public_key_hex"
}
```

**Response:**
```json
{
  "verified": true
}
```

### CHIP-0002 Methods

The skill uses these WalletConnect methods for Sage Wallet:

| Method | Description |
|--------|-------------|
| `chip0002_getPublicKeys` | Fetch wallet public keys |
| `chip0002_signMessage` | Sign a message with wallet |
| `chia_getCurrentAddress` | Get current receive address |

---

## 📂 Project Structure

```
chia-walletconnect/
├── webapp/                   # Telegram Web App frontend
│   ├── index.html           # Main UI
│   ├── app.js               # WalletConnect logic
│   └── styles.css           # Styling
├── lib/                      # Core libraries
│   ├── challenge.js         # Challenge generation
│   ├── verify.js            # MintGarden API client
│   └── telegram.js          # Telegram Web App helpers
├── server/                   # Optional backend
│   └── index.js             # Express server for webhooks
├── cli.js                    # CLI interface
├── package.json             # Dependencies
├── SKILL.md                 # Clawdbot skill documentation
└── README.md                # This file
```

---

## 🧪 Testing

### Test Locally

1. **Start server:**
   ```bash
   npm start
   ```

2. **Open in browser:**
   ```
   http://localhost:3000
   ```

3. **Test WalletConnect:**
   - Click "Connect Sage Wallet"
   - Copy the URI or scan QR code
   - Open Sage Wallet → paste URI
   - Approve connection
   - Sign the challenge message

### Test with Telegram

1. **Use ngrok for local testing:**
   ```bash
   ngrok http 3000
   ```

2. **Update BotFather Web App URL** to ngrok URL

3. **Send `/verify` in your bot**

4. **Click the inline button**

5. **Complete verification flow**

---

## 🔐 Security Considerations

### ✅ What's Secure

- **Challenge Nonces** — Prevents replay attacks
- **Timestamp Validation** — Challenges expire after 5 minutes
- **MintGarden Verification** — Cryptographic signature validation
- **HTTPS Required** — Telegram enforces HTTPS for Web Apps
- **No Private Keys** — Never requests or stores private keys

### ⚠️ Important Notes

1. **Store Verifications Securely**
   - Use encrypted database
   - Don't log signatures/public keys
   - Implement rate limiting

2. **Validate User Identity**
   - Link Telegram user ID to verified address
   - Prevent address spoofing
   - Implement cooldown periods

3. **Production Checklist**
   - [ ] Use your own WalletConnect Project ID
   - [ ] Enable CORS only for your domain
   - [ ] Implement rate limiting on verification endpoint
   - [ ] Log verification attempts for auditing
   - [ ] Use environment variables for secrets
   - [ ] Deploy behind CDN for DDoS protection

---

## 💡 Use Cases

### 1. **NFT Gated Chats**
Verify users own a specific NFT before granting access to Telegram groups.

### 2. **Airdrop Eligibility**
Verify wallet ownership before distributing tokens.

### 3. **Authentication**
Use wallet as login credential (Web3-style auth).

### 4. **Proof of Holdings**
Verify users hold a minimum XCH balance or specific CATs.

### 5. **DAO Voting**
Authenticate voters based on token holdings.

---

## 🐛 Troubleshooting

### Problem: WalletConnect URI Not Working

**Solutions:**
1. Check Sage Wallet supports WalletConnect v2
2. Try manual URI paste instead of QR scan
3. Ensure Sage is on the latest version
4. Check console for connection errors

### Problem: Signature Verification Fails

**Solutions:**
1. Ensure correct message format (exact match)
2. Verify public key matches address
3. Check MintGarden API status
4. Confirm signature encoding (hex/base64)

### Problem: Web App Doesn't Load

**Solutions:**
1. Verify HTTPS deployment (Telegram requires SSL)
2. Check CORS headers
3. Test URL directly in browser
4. Review Telegram Bot logs

### Problem: "No Public Key Available"

**Solutions:**
1. Sage may not expose public key via WalletConnect
2. Try alternative method (signature still works)
3. Public key is optional for verification

---

## 🔄 Workflow Diagram

```
User              Telegram           Web App          Sage Wallet      MintGarden
 │                   │                  │                   │               │
 ├─ /verify ────────>│                  │                   │               │
 │                   ├─ Web App button >│                   │               │
 │                   │                  ├─ WC connect ─────>│               │
 │                   │                  │<── approve ───────┤               │
 │                   │                  ├─ sign request ───>│               │
 │                   │                  │<── signature ─────┤               │
 │                   │<─ sendData() ────┤                   │               │
 │                   ├──────────────────────── verify ──────────────────────>│
 │                   │<──────────────────────── verified ────────────────────┤
 │<─ ✅ Verified ────┤                  │                   │               │
 │                   │                  │                   │               │
```

---

## 📊 Performance

### Metrics

| Stage | Time |
|-------|------|
| WalletConnect Init | ~1-2s |
| Connection Approval | User-dependent |
| Signature Request | ~2-5s |
| MintGarden Verification | ~0.5-1s |
| **Total (optimal)** | **~5-10s** |

### Optimization Tips

1. **Cache WalletConnect sessions** — Reconnect faster on repeat use
2. **Batch verifications** — Verify multiple addresses at once
3. **Implement retry logic** — Handle transient network errors
4. **Use CDN** — Serve static assets faster

---

## 🤝 Contributing

Contributions welcome! Please:

1. Fork the repository
2. Create a feature branch
3. Add tests for new features
4. Submit a pull request

---

## 📜 License

**MIT License** — Koba42 Corp

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.

---

## 🔗 Links

- **MintGarden API:** https://api.mintgarden.io/docs
- **WalletConnect:** https://docs.walletconnect.com/
- **Telegram Web Apps:** https://core.telegram.org/bots/webapps
- **Sage Wallet:** https://www.sagewallet.io/
- **CHIP-0002:** https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0002.md

---

## 🌟 Credits

**Built by:** Koba42 Corp  
**Inspired by:** Dracattus Web App WalletConnect implementation  
**Powered by:** MintGarden API, WalletConnect, Sage Wallet, Telegram Bot API

---

<div align="center">

**🌱 Verify with confidence. Own with proof. 🌱**

[![ClawdHub](https://img.shields.io/badge/ClawdHub-chia--walletconnect-green)](https://clawdhub.com)
[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
[![WalletConnect](https://img.shields.io/badge/WalletConnect-v2-orange)](https://walletconnect.com)

</div>


path: cli.js
content: #!/usr/bin/env node

const { generateChallenge, createSimpleChallenge } = require('./lib/challenge');
const { verifySignature, isValidChiaAddress } = require('./lib/verify');

/**
 * CLI for Chia Wallet Verification
 */

const args = process.argv.slice(2);
const command = args[0];

async function main() {
  switch (command) {
    case 'challenge':
      handleChallenge(args.slice(1));
      break;
    
    case 'verify':
      await handleVerify(args.slice(1));
      break;
    
    case 'validate':
      handleValidate(args.slice(1));
      break;
    
    case 'server':
      handleServer();
      break;
    
    case 'help':
    case '--help':
    case '-h':
    default:
      showHelp();
      break;
  }
}

/**
 * Generate a challenge message
 */
function handleChallenge(args) {
  const address = args[0];
  const userId = args[1] || 'cli_user';
  
  if (!address) {
    console.error('❌ Error: Address required');
    console.log('\nUsage: chia-wallet challenge <address> [userId]');
    process.exit(1);
  }
  
  if (!isValidChiaAddress(address)) {
    console.error('❌ Error: Invalid Chia address format');
    console.log('Expected format: xch1...');
    process.exit(1);
  }
  
  const challenge = generateChallenge(address, userId);
  
  console.log('📝 Challenge Generated\n');
  console.log('Message to sign:');
  console.log('─'.repeat(50));
  console.log(challenge.message);
  console.log('─'.repeat(50));
  console.log('\nChallenge Data:');
  console.log(JSON.stringify(challenge, null, 2));
}

/**
 * Verify a signature
 */
async function handleVerify(args) {
  const address = args[0];
  const message = args[1];
  const signature = args[2];
  const publicKey = args[3];
  
  if (!address || !message || !signature) {
    console.error('❌ Error: Missing required arguments');
    console.log('\nUsage: chia-wallet verify <address> <message> <signature> [publicKey]');
    process.exit(1);
  }
  
  console.log('🔐 Verifying signature...\n');
  console.log(`Address:   ${address}`);
  console.log(`Message:   ${message.substring(0, 50)}...`);
  console.log(`Signature: ${signature.substring(0, 50)}...`);
  if (publicKey) {
    console.log(`PubKey:    ${publicKey.substring(0, 50)}...`);
  }
  console.log();
  
  const result = await verifySignature(address, message, signature, publicKey);
  
  if (result.verified) {
    console.log('✅ Signature verified successfully!\n');
    console.log('Verification Details:');
    console.log(JSON.stringify(result, null, 2));
  } else {
    console.log('❌ Signature verification failed!\n');
    console.log('Error:', result.error);
  }
}

/**
 * Validate address format
 */
function handleValidate(args) {
  const address = args[0];
  
  if (!address) {
    console.error('❌ Error: Address required');
    console.log('\nUsage: chia-wallet validate <address>');
    process.exit(1);
  }
  
  const isValid = isValidChiaAddress(address);
  
  if (isValid) {
    console.log(`✅ Valid Chia address: ${address}`);
  } else {
    console.log(`❌ Invalid Chia address: ${address}`);
    console.log('\nExpected format: xch1 followed by 59 lowercase alphanumeric characters');
  }
}

/**
 * Start the web server
 */
function handleServer() {
  console.log('🚀 Starting Chia WalletConnect server...\n');
  require('./server/index.js');
}

/**
 * Show help
 */
function showHelp() {
  console.log(`
🌱 Chia Wallet Verification CLI

USAGE:
  chia-wallet <command> [options]

COMMANDS:
  challenge <address> [userId]         Generate a challenge message
  verify <addr> <msg> <sig> [pubkey]   Verify a signature
  validate <address>                   Validate Chia address format
  server                               Start the web server
  help                                 Show this help message

EXAMPLES:
  # Generate challenge
  chia-wallet challenge xch1abc... user123

  # Verify signature
  chia-wallet verify xch1abc... "message" "signature" "pubkey"

  # Validate address
  chia-wallet validate xch1abc...

  # Start server
  chia-wallet server

TELEGRAM INTEGRATION:
  1. Deploy the web app to a public URL (Vercel, Netlify, etc.)
  2. Register the URL with BotFather as a Web App
  3. Send inline keyboard button to launch the app
  4. Handle web_app_data callback in your bot

For more info, see README.md
  `);
}

// Run CLI
main().catch(error => {
  console.error('❌ Fatal error:', error.message);
  process.exit(1);
});


path: lib/challenge.js
content: const crypto = require('crypto');

/**
 * Generate a challenge message for wallet signature verification
 * @param {string} address - Chia wallet address
 * @param {string} userId - Telegram user ID or identifier
 * @returns {object} - Challenge data with message, nonce, and timestamp
 */
function generateChallenge(address, userId = 'unknown') {
  const timestamp = Date.now();
  const nonce = crypto.randomBytes(16).toString('hex');
  
  const message = `Verify ownership of Chia wallet:\n${address}\n\nTimestamp: ${timestamp}\nNonce: ${nonce}\nUser: ${userId}`;
  
  return {
    message,
    nonce,
    timestamp,
    address,
    userId
  };
}

/**
 * Validate that a challenge is recent (within 5 minutes)
 * @param {number} timestamp - Challenge timestamp
 * @returns {boolean} - True if valid
 */
function validateChallengeTimestamp(timestamp) {
  const now = Date.now();
  const fiveMinutes = 5 * 60 * 1000;
  
  return (now - timestamp) < fiveMinutes;
}

/**
 * Create a simple challenge for testing
 * @param {string} address - Chia wallet address
 * @returns {string} - Simple challenge message
 */
function createSimpleChallenge(address) {
  const timestamp = new Date().toISOString();
  return `Sign this message to verify ownership of ${address} at ${timestamp}`;
}

module.exports = {
  generateChallenge,
  validateChallengeTimestamp,
  createSimpleChallenge
};


path: lib/verify.js
content: const fetch = require('node-fetch');

const MINTGARDEN_API = 'https://api.mintgarden.io';

/**
 * Verify a Chia wallet signature using MintGarden API
 * @param {string} address - Chia wallet address
 * @param {string} message - Original message that was signed
 * @param {string} signature - Signature from wallet
 * @param {string} publicKey - Public key from wallet
 * @returns {Promise<object>} - Verification result
 */
async function verifySignature(address, message, signature, publicKey) {
  try {
    const response = await fetch(`${MINTGARDEN_API}/address/verify_signature`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        address,
        message,
        signature,
        pubkey: publicKey
      })
    });

    if (!response.ok) {
      const errorText = await response.text();
      throw new Error(`MintGarden API error: ${response.status} - ${errorText}`);
    }

    const result = await response.json();
    
    return {
      verified: result.verified === true,
      address,
      message,
      timestamp: Date.now(),
      ...result
    };
  } catch (error) {
    console.error('❌ Signature verification failed:', error);
    return {
      verified: false,
      error: error.message,
      address,
      message
    };
  }
}

/**
 * Check if an address is valid Chia format
 * @param {string} address - Address to validate
 * @returns {boolean} - True if valid format
 */
function isValidChiaAddress(address) {
  // Chia addresses start with 'xch' and are 62 characters long
  const chiaAddressRegex = /^xch1[a-z0-9]{59}$/;
  return chiaAddressRegex.test(address);
}

module.exports = {
  verifySignature,
  isValidChiaAddress
};


path: package-lock.json
content: {
  "name": "chia-walletconnect",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "chia-walletconnect",
      "version": "1.0.0",
      "license": "MIT",
      "dependencies": {
        "@walletconnect/sign-client": "^2.11.0",
        "@walletconnect/types": "^2.11.0",
        "@walletconnect/utils": "^2.11.0",
        "@walletconnect/web3wallet": "^1.9.0",
        "cors": "^2.8.5",
        "dotenv": "^16.3.1",
        "express": "^4.18.2",
        "node-fetch": "^2.6.7"
      },
      "bin": {
        "chia-wallet": "cli.js"
      },
      "devDependencies": {}
    },
    "node_modules/@adraffy/ens-normalize": {
      "version": "1.11.1",
      "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@ethersproject/abstract-provider": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bignumber": "^5.8.0",
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/networks": "^5.8.0",
        "@ethersproject/properties": "^5.8.0",
        "@ethersproject/transactions": "^5.8.0",
        "@ethersproject/web": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/abstract-signer": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/abstract-provider": "^5.8.0",
        "@ethersproject/bignumber": "^5.8.0",
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/properties": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/address": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bignumber": "^5.8.0",
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/keccak256": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/rlp": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/base64": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bytes": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/bignumber": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "bn.js": "^5.2.1"
      }
    },
    "node_modules/@ethersproject/bytes": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/logger": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/constants": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bignumber": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/hash": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/abstract-signer": "^5.8.0",
        "@ethersproject/address": "^5.8.0",
        "@ethersproject/base64": "^5.8.0",
        "@ethersproject/bignumber": "^5.8.0",
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/keccak256": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/properties": "^5.8.0",
        "@ethersproject/strings": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/keccak256": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bytes": "^5.8.0",
        "js-sha3": "0.8.0"
      }
    },
    "node_modules/@ethersproject/logger": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT"
    },
    "node_modules/@ethersproject/networks": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/logger": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/properties": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/logger": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/rlp": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/logger": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/signing-key": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/properties": "^5.8.0",
        "bn.js": "^5.2.1",
        "elliptic": "6.6.1",
        "hash.js": "1.1.7"
      }
    },
    "node_modules/@ethersproject/strings": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/constants": "^5.8.0",
        "@ethersproject/logger": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/transactions": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/address": "^5.8.0",
        "@ethersproject/bignumber": "^5.8.0",
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/constants": "^5.8.0",
        "@ethersproject/keccak256": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/properties": "^5.8.0",
        "@ethersproject/rlp": "^5.8.0",
        "@ethersproject/signing-key": "^5.8.0"
      }
    },
    "node_modules/@ethersproject/web": {
      "version": "5.8.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/base64": "^5.8.0",
        "@ethersproject/bytes": "^5.8.0",
        "@ethersproject/logger": "^5.8.0",
        "@ethersproject/properties": "^5.8.0",
        "@ethersproject/strings": "^5.8.0"
      }
    },
    "node_modules/@msgpack/msgpack": {
      "version": "3.1.3",
      "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC",
      "engines": {
        "node": ">= 18"
      }
    },
    "node_modules/@noble/ciphers": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@noble/curves": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/hashes": "1.7.0"
      },
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@noble/hashes": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@scure/base": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@scure/bip32": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/curves": "~1.9.0",
        "@noble/hashes": "~1.8.0",
        "@scure/base": "~1.2.5"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@scure/bip32/node_modules/@noble/curves": {
      "version": "1.9.7",
      "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/hashes": "1.8.0"
      },
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@scure/bip32/node_modules/@noble/hashes": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@scure/bip39": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/hashes": "~1.8.0",
        "@scure/base": "~1.2.5"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@scure/bip39/node_modules/@noble/hashes": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@stablelib/aead": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@stablelib/binary": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/int": "^1.0.1"
      }
    },
    "node_modules/@stablelib/bytes": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@stablelib/chacha": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/binary": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/chacha20poly1305": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/aead": "^1.0.1",
        "@stablelib/binary": "^1.0.1",
        "@stablelib/chacha": "^1.0.1",
        "@stablelib/constant-time": "^1.0.1",
        "@stablelib/poly1305": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/constant-time": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@stablelib/ed25519": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/random": "^1.0.2",
        "@stablelib/sha512": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/hash": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@stablelib/hkdf": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/hash": "^1.0.1",
        "@stablelib/hmac": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/hmac": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/constant-time": "^1.0.1",
        "@stablelib/hash": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/int": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@stablelib/keyagreement": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/bytes": "^1.0.1"
      }
    },
    "node_modules/@stablelib/poly1305": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/constant-time": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/random": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/binary": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/sha256": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/binary": "^1.0.1",
        "@stablelib/hash": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/sha512": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/binary": "^1.0.1",
        "@stablelib/hash": "^1.0.1",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@stablelib/wipe": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@stablelib/x25519": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/keyagreement": "^1.0.1",
        "@stablelib/random": "^1.0.2",
        "@stablelib/wipe": "^1.0.1"
      }
    },
    "node_modules/@walletconnect/auth-client": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/@walletconnect/auth-client/-/auth-client-2.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "Apache-2.0",
      "dependencies": {
        "@ethersproject/hash": "^5.7.0",
        "@ethersproject/transactions": "^5.7.0",
        "@stablelib/random": "^1.0.2",
        "@stablelib/sha256": "^1.0.1",
        "@walletconnect/core": "^2.10.1",
        "@walletconnect/events": "^1.0.1",
        "@walletconnect/heartbeat": "^1.2.1",
        "@walletconnect/jsonrpc-utils": "^1.0.8",
        "@walletconnect/logger": "^2.0.1",
        "@walletconnect/time": "^1.0.2",
        "@walletconnect/utils": "^2.10.1",
        "events": "^3.3.0",
        "isomorphic-unfetch": "^3.1.0"
      },
      "engines": {
        "node": ">=16"
      }
    },
    "node_modules/@walletconnect/auth-client/node_modules/@walletconnect/logger": {
      "version": "2.1.3",
      "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/safe-json": "^1.0.2",
        "pino": "7.11.0"
      }
    },
    "node_modules/@walletconnect/auth-client/node_modules/on-exit-leak-free": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/auth-client/node_modules/pino": {
      "version": "7.11.0",
      "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "atomic-sleep": "^1.0.0",
        "fast-redact": "^3.0.0",
        "on-exit-leak-free": "^0.2.0",
        "pino-abstract-transport": "v0.5.0",
        "pino-std-serializers": "^4.0.0",
        "process-warning": "^1.0.0",
        "quick-format-unescaped": "^4.0.3",
        "real-require": "^0.1.0",
        "safe-stable-stringify": "^2.1.0",
        "sonic-boom": "^2.2.1",
        "thread-stream": "^0.15.1"
      },
      "bin": {
        "pino": "bin.js"
      }
    },
    "node_modules/@walletconnect/auth-client/node_modules/pino-abstract-transport": {
      "version": "0.5.0",
      "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "duplexify": "^4.1.2",
        "split2": "^4.0.0"
      }
    },
    "node_modules/@walletconnect/auth-client/node_modules/pino-std-serializers": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/auth-client/node_modules/process-warning": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/auth-client/node_modules/real-require": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 12.13.0"
      }
    },
    "node_modules/@walletconnect/auth-client/node_modules/sonic-boom": {
      "version": "2.8.0",
      "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "atomic-sleep": "^1.0.0"
      }
    },
    "node_modules/@walletconnect/auth-client/node_modules/thread-stream": {
      "version": "0.15.2",
      "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "real-require": "^0.1.0"
      }
    },
    "node_modules/@walletconnect/core": {
      "version": "2.23.4",
      "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.23.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "SEE LICENSE IN LICENSE.md",
      "dependencies": {
        "@walletconnect/heartbeat": "1.2.2",
        "@walletconnect/jsonrpc-provider": "1.0.14",
        "@walletconnect/jsonrpc-types": "1.0.4",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/jsonrpc-ws-connection": "1.0.16",
        "@walletconnect/keyvaluestorage": "1.1.1",
        "@walletconnect/logger": "3.0.2",
        "@walletconnect/relay-api": "1.0.11",
        "@walletconnect/relay-auth": "1.1.0",
        "@walletconnect/safe-json": "1.0.2",
        "@walletconnect/time": "1.0.2",
        "@walletconnect/types": "2.23.4",
        "@walletconnect/utils": "2.23.4",
        "@walletconnect/window-getters": "1.0.1",
        "es-toolkit": "1.44.0",
        "events": "3.3.0",
        "uint8arrays": "3.1.1"
      },
      "engines": {
        "node": ">=18.20.8"
      }
    },
    "node_modules/@walletconnect/environment": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "tslib": "1.14.1"
      }
    },
    "node_modules/@walletconnect/events": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "keyvaluestorage-interface": "^1.0.0",
        "tslib": "1.14.1"
      }
    },
    "node_modules/@walletconnect/heartbeat": {
      "version": "1.2.2",
      "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/events": "^1.0.1",
        "@walletconnect/time": "^1.0.2",
        "events": "^3.3.0"
      }
    },
    "node_modules/@walletconnect/jsonrpc-provider": {
      "version": "1.0.14",
      "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/jsonrpc-utils": "^1.0.8",
        "@walletconnect/safe-json": "^1.0.2",
        "events": "^3.3.0"
      }
    },
    "node_modules/@walletconnect/jsonrpc-types": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "events": "^3.3.0",
        "keyvaluestorage-interface": "^1.0.0"
      }
    },
    "node_modules/@walletconnect/jsonrpc-utils": {
      "version": "1.0.8",
      "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/environment": "^1.0.1",
        "@walletconnect/jsonrpc-types": "^1.0.3",
        "tslib": "1.14.1"
      }
    },
    "node_modules/@walletconnect/jsonrpc-ws-connection": {
      "version": "1.0.16",
      "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/jsonrpc-utils": "^1.0.6",
        "@walletconnect/safe-json": "^1.0.2",
        "events": "^3.3.0",
        "ws": "^7.5.1"
      }
    },
    "node_modules/@walletconnect/keyvaluestorage": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/safe-json": "^1.0.1",
        "idb-keyval": "^6.2.1",
        "unstorage": "^1.9.0"
      },
      "peerDependencies": {
        "@react-native-async-storage/async-storage": "1.x"
      },
      "peerDependenciesMeta": {
        "@react-native-async-storage/async-storage": {
          "optional": true
        }
      }
    },
    "node_modules/@walletconnect/logger": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-3.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/safe-json": "^1.0.2",
        "pino": "10.0.0"
      }
    },
    "node_modules/@walletconnect/relay-api": {
      "version": "1.0.11",
      "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/jsonrpc-types": "^1.0.2"
      }
    },
    "node_modules/@walletconnect/relay-auth": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/curves": "1.8.0",
        "@noble/hashes": "1.7.0",
        "@walletconnect/safe-json": "^1.0.1",
        "@walletconnect/time": "^1.0.2",
        "uint8arrays": "^3.0.0"
      }
    },
    "node_modules/@walletconnect/safe-json": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "tslib": "1.14.1"
      }
    },
    "node_modules/@walletconnect/sign-client": {
      "version": "2.23.4",
      "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.23.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "SEE LICENSE IN LICENSE.md",
      "dependencies": {
        "@walletconnect/core": "2.23.4",
        "@walletconnect/events": "1.0.1",
        "@walletconnect/heartbeat": "1.2.2",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/logger": "3.0.2",
        "@walletconnect/time": "1.0.2",
        "@walletconnect/types": "2.23.4",
        "@walletconnect/utils": "2.23.4",
        "events": "3.3.0"
      }
    },
    "node_modules/@walletconnect/time": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "tslib": "1.14.1"
      }
    },
    "node_modules/@walletconnect/types": {
      "version": "2.23.4",
      "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.23.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "SEE LICENSE IN LICENSE.md",
      "dependencies": {
        "@walletconnect/events": "1.0.1",
        "@walletconnect/heartbeat": "1.2.2",
        "@walletconnect/jsonrpc-types": "1.0.4",
        "@walletconnect/keyvaluestorage": "1.1.1",
        "@walletconnect/logger": "3.0.2",
        "events": "3.3.0"
      }
    },
    "node_modules/@walletconnect/utils": {
      "version": "2.23.4",
      "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.23.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "SEE LICENSE IN LICENSE.md",
      "dependencies": {
        "@msgpack/msgpack": "3.1.3",
        "@noble/ciphers": "1.3.0",
        "@noble/curves": "1.9.7",
        "@noble/hashes": "1.8.0",
        "@scure/base": "1.2.6",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/keyvaluestorage": "1.1.1",
        "@walletconnect/logger": "3.0.2",
        "@walletconnect/relay-api": "1.0.11",
        "@walletconnect/relay-auth": "1.1.0",
        "@walletconnect/safe-json": "1.0.2",
        "@walletconnect/time": "1.0.2",
        "@walletconnect/types": "2.23.4",
        "@walletconnect/window-getters": "1.0.1",
        "@walletconnect/window-metadata": "1.0.1",
        "blakejs": "1.2.1",
        "bs58": "6.0.0",
        "detect-browser": "5.3.0",
        "ox": "0.9.3",
        "uint8arrays": "3.1.1"
      }
    },
    "node_modules/@walletconnect/utils/node_modules/@noble/curves": {
      "version": "1.9.7",
      "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/hashes": "1.8.0"
      },
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@walletconnect/utils/node_modules/@noble/hashes": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/@walletconnect/web3wallet": {
      "version": "1.16.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/web3wallet/-/web3wallet-1.16.1.tgz",
      "integrity": [REDACTED_SECRET],
      "deprecated": "Web3Wallet is now Reown WalletKit. Please follow the upgrade guide at https://docs.reown.com/walletkit/upgrade/from-web3wallet-web",
      "license": "Apache-2.0",
      "dependencies": {
        "@walletconnect/auth-client": "2.1.2",
        "@walletconnect/core": "2.17.1",
        "@walletconnect/jsonrpc-provider": "1.0.14",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/logger": "2.1.2",
        "@walletconnect/sign-client": "2.17.1",
        "@walletconnect/types": "2.17.1",
        "@walletconnect/utils": "2.17.1"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@ethersproject/hash": {
      "version": "5.7.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/abstract-signer": "^5.7.0",
        "@ethersproject/address": "^5.7.0",
        "@ethersproject/base64": "^5.7.0",
        "@ethersproject/bignumber": "^5.7.0",
        "@ethersproject/bytes": "^5.7.0",
        "@ethersproject/keccak256": "^5.7.0",
        "@ethersproject/logger": "^5.7.0",
        "@ethersproject/properties": "^5.7.0",
        "@ethersproject/strings": "^5.7.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@ethersproject/transactions": {
      "version": "5.7.0",
      "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "individual",
          "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
        },
        {
          "type": "individual",
          "url": "https://www.buymeacoffee.com/ricmoo"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@ethersproject/address": "^5.7.0",
        "@ethersproject/bignumber": "^5.7.0",
        "@ethersproject/bytes": "^5.7.0",
        "@ethersproject/constants": "^5.7.0",
        "@ethersproject/keccak256": "^5.7.0",
        "@ethersproject/logger": "^5.7.0",
        "@ethersproject/properties": "^5.7.0",
        "@ethersproject/rlp": "^5.7.0",
        "@ethersproject/signing-key": "^5.7.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/core": {
      "version": "2.17.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "Apache-2.0",
      "dependencies": {
        "@walletconnect/heartbeat": "1.2.2",
        "@walletconnect/jsonrpc-provider": "1.0.14",
        "@walletconnect/jsonrpc-types": "1.0.4",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/jsonrpc-ws-connection": "1.0.14",
        "@walletconnect/keyvaluestorage": "1.1.1",
        "@walletconnect/logger": "2.1.2",
        "@walletconnect/relay-api": "1.0.11",
        "@walletconnect/relay-auth": "1.0.4",
        "@walletconnect/safe-json": "1.0.2",
        "@walletconnect/time": "1.0.2",
        "@walletconnect/types": "2.17.1",
        "@walletconnect/utils": "2.17.1",
        "@walletconnect/window-getters": "1.0.1",
        "events": "3.3.0",
        "lodash.isequal": "4.5.0",
        "uint8arrays": "3.1.0"
      },
      "engines": {
        "node": ">=18"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/jsonrpc-ws-connection": {
      "version": "1.0.14",
      "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/jsonrpc-utils": "^1.0.6",
        "@walletconnect/safe-json": "^1.0.2",
        "events": "^3.3.0",
        "ws": "^7.5.1"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/logger": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/safe-json": "^1.0.2",
        "pino": "7.11.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/relay-auth": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@stablelib/ed25519": "^1.0.2",
        "@stablelib/random": "^1.0.1",
        "@walletconnect/safe-json": "^1.0.1",
        "@walletconnect/time": "^1.0.2",
        "tslib": "1.14.1",
        "uint8arrays": "^3.0.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/sign-client": {
      "version": "2.17.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.1.tgz",
      "integrity": [REDACTED_SECRET],
      "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases",
      "license": "Apache-2.0",
      "dependencies": {
        "@walletconnect/core": "2.17.1",
        "@walletconnect/events": "1.0.1",
        "@walletconnect/heartbeat": "1.2.2",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/logger": "2.1.2",
        "@walletconnect/time": "1.0.2",
        "@walletconnect/types": "2.17.1",
        "@walletconnect/utils": "2.17.1",
        "events": "3.3.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/types": {
      "version": "2.17.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "Apache-2.0",
      "dependencies": {
        "@walletconnect/events": "1.0.1",
        "@walletconnect/heartbeat": "1.2.2",
        "@walletconnect/jsonrpc-types": "1.0.4",
        "@walletconnect/keyvaluestorage": "1.1.1",
        "@walletconnect/logger": "2.1.2",
        "events": "3.3.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/utils": {
      "version": "2.17.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "Apache-2.0",
      "dependencies": {
        "@ethersproject/hash": "5.7.0",
        "@ethersproject/transactions": "5.7.0",
        "@stablelib/chacha20poly1305": "1.0.1",
        "@stablelib/hkdf": "1.0.1",
        "@stablelib/random": "1.0.2",
        "@stablelib/sha256": "1.0.1",
        "@stablelib/x25519": "1.0.3",
        "@walletconnect/jsonrpc-utils": "1.0.8",
        "@walletconnect/keyvaluestorage": "1.1.1",
        "@walletconnect/relay-api": "1.0.11",
        "@walletconnect/relay-auth": "1.0.4",
        "@walletconnect/safe-json": "1.0.2",
        "@walletconnect/time": "1.0.2",
        "@walletconnect/types": "2.17.1",
        "@walletconnect/window-getters": "1.0.1",
        "@walletconnect/window-metadata": "1.0.1",
        "detect-browser": "5.3.0",
        "elliptic": "6.5.7",
        "query-string": "7.1.3",
        "uint8arrays": "3.1.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/bn.js": {
      "version": "4.12.2",
      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/web3wallet/node_modules/elliptic": {
      "version": "6.5.7",
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "bn.js": "^4.11.9",
        "brorand": "^1.1.0",
        "hash.js": "^1.0.0",
        "hmac-drbg": "^1.0.1",
        "inherits": "^2.0.4",
        "minimalistic-assert": "^1.0.1",
        "minimalistic-crypto-utils": "^1.0.1"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/on-exit-leak-free": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/web3wallet/node_modules/pino": {
      "version": "7.11.0",
      "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "atomic-sleep": "^1.0.0",
        "fast-redact": "^3.0.0",
        "on-exit-leak-free": "^0.2.0",
        "pino-abstract-transport": "v0.5.0",
        "pino-std-serializers": "^4.0.0",
        "process-warning": "^1.0.0",
        "quick-format-unescaped": "^4.0.3",
        "real-require": "^0.1.0",
        "safe-stable-stringify": "^2.1.0",
        "sonic-boom": "^2.2.1",
        "thread-stream": "^0.15.1"
      },
      "bin": {
        "pino": "bin.js"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/pino-abstract-transport": {
      "version": "0.5.0",
      "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "duplexify": "^4.1.2",
        "split2": "^4.0.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/pino-std-serializers": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/web3wallet/node_modules/process-warning": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/@walletconnect/web3wallet/node_modules/real-require": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 12.13.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/sonic-boom": {
      "version": "2.8.0",
      "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "atomic-sleep": "^1.0.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/thread-stream": {
      "version": "0.15.2",
      "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "real-require": "^0.1.0"
      }
    },
    "node_modules/@walletconnect/web3wallet/node_modules/uint8arrays": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "multiformats": "^9.4.2"
      }
    },
    "node_modules/@walletconnect/window-getters": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "tslib": "1.14.1"
      }
    },
    "node_modules/@walletconnect/window-metadata": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@walletconnect/window-getters": "^1.0.1",
        "tslib": "1.14.1"
      }
    },
    "node_modules/abitype": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "funding": {
        "url": "https://github.com/sponsors/wevm"
      },
      "peerDependencies": {
        "typescript": ">=5.0.4",
        "zod": "^3.22.0 || ^4.0.0"
      },
      "peerDependenciesMeta": {
        "typescript": {
          "optional": true
        },
        "zod": {
          "optional": true
        }
      }
    },
    "node_modules/accepts": {
      "version": "1.3.8",
      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "mime-types": "~2.1.34",
        "negotiator": "0.6.3"
      },
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/anymatch": {
      "version": "3.1.3",
      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC",
      "dependencies": {
        "normalize-path": "^3.0.0",
        "picomatch": "^2.0.4"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/array-flatten": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/atomic-sleep": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=8.0.0"
      }
    },
    "node_modules/base-x": {
      "version": "5.0.1",
      "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/blakejs": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/bn.js": {
      "version": "5.2.2",
      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/body-parser": {
      "version": "1.20.4",
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "bytes": "~3.1.2",
        "content-type": "~1.0.5",
        "debug": "2.6.9",
        "depd": "2.0.0",
        "destroy": "~1.2.0",
        "http-errors": "~2.0.1",
        "iconv-lite": "~0.4.24",
        "on-finished": "~2.4.1",
        "qs": "~6.14.0",
        "raw-body": "~2.5.3",
        "type-is": "~1.6.18",
        "unpipe": "~1.0.0"
      },
      "engines": {
        "node": ">= 0.8",
        "npm": "1.2.8000 || >= 1.4.16"
      }
    },
    "node_modules/brorand": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/bs58": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "base-x": "^5.0.0"
      }
    },
    "node_modules/bytes": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/call-bind-apply-helpers": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "es-errors": "^1.3.0",
        "function-bind": "^1.1.2"
      },
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/call-bound": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "call-bind-apply-helpers": "^1.0.2",
        "get-intrinsic": "^1.3.0"
      },
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/chokidar": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "readdirp": "^5.0.0"
      },
      "engines": {
        "node": ">= 20.19.0"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/content-disposition": {
      "version": "0.5.4",
      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "safe-buffer": "5.2.1"
      },
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/content-type": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/cookie": {
      "version": "0.7.2",
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/cookie-es": {
      "version": "1.2.2",
      "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/cookie-signature": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/cors": {
      "version": "2.8.6",
      "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "object-assign": "^4",
        "vary": "^1"
      },
      "engines": {
        "node": ">= 0.10"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/express"
      }
    },
    "node_modules/crossws": {
      "version": "0.3.5",
      "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "uncrypto": "^0.1.3"
      }
    },
    "node_modules/debug": {
      "version": "2.6.9",
      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "ms": "2.0.0"
      }
    },
    "node_modules/decode-uri-component": {
      "version": "0.2.2",
      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/defu": {
      "version": "6.1.4",
      "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/depd": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/destr": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/destroy": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8",
        "npm": "1.2.8000 || >= 1.4.16"
      }
    },
    "node_modules/detect-browser": {
      "version": "5.3.0",
      "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/dotenv": {
      "version": "16.6.1",
      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "BSD-2-Clause",
      "engines": {
        "node": ">=12"
      },
      "funding": {
        "url": "https://dotenvx.com"
      }
    },
    "node_modules/dunder-proto": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "call-bind-apply-helpers": "^1.0.1",
        "es-errors": "^1.3.0",
        "gopd": "^1.2.0"
      },
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/duplexify": {
      "version": "4.1.3",
      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "end-of-stream": "^1.4.1",
        "inherits": "^2.0.3",
        "readable-stream": "^3.1.1",
        "stream-shift": "^1.0.2"
      }
    },
    "node_modules/ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/elliptic": {
      "version": "6.6.1",
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "bn.js": "^4.11.9",
        "brorand": "^1.1.0",
        "hash.js": "^1.0.0",
        "hmac-drbg": "^1.0.1",
        "inherits": "^2.0.4",
        "minimalistic-assert": "^1.0.1",
        "minimalistic-crypto-utils": "^1.0.1"
      }
    },
    "node_modules/elliptic/node_modules/bn.js": {
      "version": "4.12.2",
      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/encodeurl": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/end-of-stream": {
      "version": "1.4.5",
      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "once": "^1.4.0"
      }
    },
    "node_modules/es-define-property": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/es-errors": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/es-object-atoms": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "es-errors": "^1.3.0"
      },
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/es-toolkit": {
      "version": "1.44.0",
      "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.44.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "workspaces": [
        "docs",
        "benchmarks"
      ]
    },
    "node_modules/escape-html": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/etag": {
      "version": "1.8.1",
      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/eventemitter3": {
      "version": "5.0.1",
      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/events": {
      "version": "3.3.0",
      "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=0.8.x"
      }
    },
    "node_modules/express": {
      "version": "4.22.1",
      "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "accepts": "~1.3.8",
        "array-flatten": "1.1.1",
        "body-parser": "~1.20.3",
        "content-disposition": "~0.5.4",
        "content-type": "~1.0.4",
        "cookie": "~0.7.1",
        "cookie-signature": "~1.0.6",
        "debug": "2.6.9",
        "depd": "2.0.0",
        "encodeurl": "~2.0.0",
        "escape-html": "~1.0.3",
        "etag": "~1.8.1",
        "finalhandler": "~1.3.1",
        "fresh": "~0.5.2",
        "http-errors": "~2.0.0",
        "merge-descriptors": "1.0.3",
        "methods": "~1.1.2",
        "on-finished": "~2.4.1",
        "parseurl": "~1.3.3",
        "path-to-regexp": "~0.1.12",
        "proxy-addr": "~2.0.7",
        "qs": "~6.14.0",
        "range-parser": "~1.2.1",
        "safe-buffer": "5.2.1",
        "send": "~0.19.0",
        "serve-static": "~1.16.2",
        "setprototypeof": "1.2.0",
        "statuses": "~2.0.1",
        "type-is": "~1.6.18",
        "utils-merge": "1.0.1",
        "vary": "~1.1.2"
      },
      "engines": {
        "node": ">= 0.10.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/express"
      }
    },
    "node_modules/fast-redact": {
      "version": "3.5.0",
      "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/filter-obj": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/finalhandler": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "debug": "2.6.9",
        "encodeurl": "~2.0.0",
        "escape-html": "~1.0.3",
        "on-finished": "~2.4.1",
        "parseurl": "~1.3.3",
        "statuses": "~2.0.2",
        "unpipe": "~1.0.0"
      },
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/forwarded": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/fresh": {
      "version": "0.5.2",
      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/function-bind": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/get-intrinsic": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "call-bind-apply-helpers": "^1.0.2",
        "es-define-property": "^1.0.1",
        "es-errors": "^1.3.0",
        "es-object-atoms": "^1.1.1",
        "function-bind": "^1.1.2",
        "get-proto": "^1.0.1",
        "gopd": "^1.2.0",
        "has-symbols": "^1.1.0",
        "hasown": "^2.0.2",
        "math-intrinsics": "^1.1.0"
      },
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/get-proto": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "dunder-proto": "^1.0.1",
        "es-object-atoms": "^1.0.0"
      },
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/gopd": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/h3": {
      "version": "1.15.5",
      "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "cookie-es": "^1.2.2",
        "crossws": "^0.3.5",
        "defu": "^6.1.4",
        "destr": "^2.0.5",
        "iron-webcrypto": "^1.2.1",
        "node-mock-http": "^1.0.4",
        "radix3": "^1.1.2",
        "ufo": "^1.6.3",
        "uncrypto": "^0.1.3"
      }
    },
    "node_modules/has-symbols": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/hash.js": {
      "version": "1.1.7",
      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "inherits": "^2.0.3",
        "minimalistic-assert": "^1.0.1"
      }
    },
    "node_modules/hasown": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "function-bind": "^1.1.2"
      },
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/hmac-drbg": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "hash.js": "^1.0.3",
        "minimalistic-assert": "^1.0.0",
        "minimalistic-crypto-utils": "^1.0.1"
      }
    },
    "node_modules/http-errors": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "depd": "~2.0.0",
        "inherits": "~2.0.4",
        "setprototypeof": "~1.2.0",
        "statuses": "~2.0.2",
        "toidentifier": "~1.0.1"
      },
      "engines": {
        "node": ">= 0.8"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/express"
      }
    },
    "node_modules/iconv-lite": {
      "version": "0.4.24",
      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "safer-buffer": ">= 2.1.2 < 3"
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/idb-keyval": {
      "version": "6.2.2",
      "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "Apache-2.0"
    },
    "node_modules/inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC"
    },
    "node_modules/ipaddr.js": {
      "version": "1.9.1",
      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.10"
      }
    },
    "node_modules/iron-webcrypto": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "funding": {
        "url": "https://github.com/sponsors/brc-dd"
      }
    },
    "node_modules/isomorphic-unfetch": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "node-fetch": "^2.6.1",
        "unfetch": "^4.2.0"
      }
    },
    "node_modules/js-sha3": {
      "version": "0.8.0",
      "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/keyvaluestorage-interface": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/lodash.isequal": {
      "version": "4.5.0",
      "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
      "integrity": [REDACTED_SECRET],
      "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
      "license": "MIT"
    },
    "node_modules/lru-cache": {
      "version": "11.2.5",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "BlueOak-1.0.0",
      "engines": {
        "node": "20 || >=22"
      }
    },
    "node_modules/math-intrinsics": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4"
      }
    },
    "node_modules/media-typer": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/merge-descriptors": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/methods": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/mime": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "bin": {
        "mime": "cli.js"
      },
      "engines": {
        "node": ">=4"
      }
    },
    "node_modules/mime-db": {
      "version": "1.52.0",
      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/mime-types": {
      "version": "2.1.35",
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "mime-db": "1.52.0"
      },
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/minimalistic-assert": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC"
    },
    "node_modules/minimalistic-crypto-utils": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/ms": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/multiformats": {
      "version": "9.9.0",
      "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "(Apache-2.0 AND MIT)"
    },
    "node_modules/negotiator": {
      "version": "0.6.3",
      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/node-fetch": {
      "version": "2.7.0",
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "whatwg-url": "^5.0.0"
      },
      "engines": {
        "node": "4.x || >=6.0.0"
      },
      "peerDependencies": {
        "encoding": "^0.1.0"
      },
      "peerDependenciesMeta": {
        "encoding": {
          "optional": true
        }
      }
    },
    "node_modules/node-fetch-native": {
      "version": "1.6.7",
      "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/node-mock-http": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/normalize-path": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/object-assign": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/object-inspect": {
      "version": "1.13.4",
      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/ofetch": {
      "version": "1.5.1",
      "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "destr": "^2.0.5",
        "node-fetch-native": "^1.6.7",
        "ufo": "^1.6.1"
      }
    },
    "node_modules/on-exit-leak-free": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=14.0.0"
      }
    },
    "node_modules/on-finished": {
      "version": "2.4.1",
      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "ee-first": "1.1.1"
      },
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC",
      "dependencies": {
        "wrappy": "1"
      }
    },
    "node_modules/ox": {
      "version": "0.9.3",
      "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.3.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/wevm"
        }
      ],
      "license": "MIT",
      "dependencies": {
        "@adraffy/ens-normalize": "^1.11.0",
        "@noble/ciphers": "^1.3.0",
        "@noble/curves": "1.9.1",
        "@noble/hashes": "^1.8.0",
        "@scure/bip32": "^1.7.0",
        "@scure/bip39": "^1.6.0",
        "abitype": "^1.0.9",
        "eventemitter3": "5.0.1"
      },
      "peerDependencies": {
        "typescript": ">=5.4.0"
      },
      "peerDependenciesMeta": {
        "typescript": {
          "optional": true
        }
      }
    },
    "node_modules/ox/node_modules/@noble/curves": {
      "version": "1.9.1",
      "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "@noble/hashes": "1.8.0"
      },
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/ox/node_modules/@noble/hashes": {
      "version": "1.8.0",
      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": "^14.21.3 || >=16"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/parseurl": {
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/path-to-regexp": {
      "version": "0.1.12",
      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/picomatch": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=8.6"
      },
      "funding": {
        "url": "https://github.com/sponsors/jonschlinkert"
      }
    },
    "node_modules/pino": {
      "version": "10.0.0",
      "resolved": "https://registry.npmjs.org/pino/-/pino-10.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "atomic-sleep": "^1.0.0",
        "on-exit-leak-free": "^2.1.0",
        "pino-abstract-transport": "^2.0.0",
        "pino-std-serializers": "^7.0.0",
        "process-warning": "^5.0.0",
        "quick-format-unescaped": "^4.0.3",
        "real-require": "^0.2.0",
        "safe-stable-stringify": "^2.3.1",
        "slow-redact": "^0.3.0",
        "sonic-boom": "^4.0.1",
        "thread-stream": "^3.0.0"
      },
      "bin": {
        "pino": "bin.js"
      }
    },
    "node_modules/pino-abstract-transport": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "split2": "^4.0.0"
      }
    },
    "node_modules/pino-std-serializers": {
      "version": "7.1.0",
      "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/process-warning": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/fastify"
        },
        {
          "type": "opencollective",
          "url": "https://opencollective.com/fastify"
        }
      ],
      "license": "MIT"
    },
    "node_modules/proxy-addr": {
      "version": "2.0.7",
      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "forwarded": "0.2.0",
        "ipaddr.js": "1.9.1"
      },
      "engines": {
        "node": ">= 0.10"
      }
    },
    "node_modules/qs": {
      "version": "6.14.1",
      "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "BSD-3-Clause",
      "dependencies": {
        "side-channel": "^1.1.0"
      },
      "engines": {
        "node": ">=0.6"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/query-string": {
      "version": "7.1.3",
      "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "decode-uri-component": "^0.2.2",
        "filter-obj": "^1.1.0",
        "split-on-first": "^1.0.0",
        "strict-uri-encode": "^2.0.0"
      },
      "engines": {
        "node": ">=6"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/quick-format-unescaped": {
      "version": "4.0.4",
      "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/radix3": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/range-parser": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/raw-body": {
      "version": "2.5.3",
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "bytes": "~3.1.2",
        "http-errors": "~2.0.1",
        "iconv-lite": "~0.4.24",
        "unpipe": "~1.0.0"
      },
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/readable-stream": {
      "version": "3.6.2",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "inherits": "^2.0.3",
        "string_decoder": "^1.1.1",
        "util-deprecate": "^1.0.1"
      },
      "engines": {
        "node": ">= 6"
      }
    },
    "node_modules/readdirp": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 20.19.0"
      },
      "funding": {
        "type": "individual",
        "url": "https://paulmillr.com/funding/"
      }
    },
    "node_modules/real-require": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 12.13.0"
      }
    },
    "node_modules/safe-buffer": {
      "version": "5.2.1",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
      "integrity": [REDACTED_SECRET],
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/feross"
        },
        {
          "type": "patreon",
          "url": "https://www.patreon.com/feross"
        },
        {
          "type": "consulting",
          "url": "https://feross.org/support"
        }
      ],
      "license": "MIT"
    },
    "node_modules/safe-stable-stringify": {
      "version": "2.5.0",
      "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/safer-buffer": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/send": {
      "version": "0.19.2",
      "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "debug": "2.6.9",
        "depd": "2.0.0",
        "destroy": "1.2.0",
        "encodeurl": "~2.0.0",
        "escape-html": "~1.0.3",
        "etag": "~1.8.1",
        "fresh": "~0.5.2",
        "http-errors": "~2.0.1",
        "mime": "1.6.0",
        "ms": "2.1.3",
        "on-finished": "~2.4.1",
        "range-parser": "~1.2.1",
        "statuses": "~2.0.2"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/send/node_modules/ms": {
      "version": "2.1.3",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/serve-static": {
      "version": "1.16.3",
      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "encodeurl": "~2.0.0",
        "escape-html": "~1.0.3",
        "parseurl": "~1.3.3",
        "send": "~0.19.1"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/setprototypeof": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC"
    },
    "node_modules/side-channel": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "es-errors": "^1.3.0",
        "object-inspect": "^1.13.3",
        "side-channel-list": "^1.0.0",
        "side-channel-map": "^1.0.1",
        "side-channel-weakmap": "^1.0.2"
      },
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/side-channel-list": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "es-errors": "^1.3.0",
        "object-inspect": "^1.13.3"
      },
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/side-channel-map": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "call-bound": "^1.0.2",
        "es-errors": "^1.3.0",
        "get-intrinsic": "^1.2.5",
        "object-inspect": "^1.13.3"
      },
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/side-channel-weakmap": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "call-bound": "^1.0.2",
        "es-errors": "^1.3.0",
        "get-intrinsic": "^1.2.5",
        "object-inspect": "^1.13.3",
        "side-channel-map": "^1.0.1"
      },
      "engines": {
        "node": ">= 0.4"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/slow-redact": {
      "version": "0.3.2",
      "resolved": "https://registry.npmjs.org/slow-redact/-/slow-redact-0.3.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/sonic-boom": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "atomic-sleep": "^1.0.0"
      }
    },
    "node_modules/split-on-first": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/split2": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC",
      "engines": {
        "node": ">= 10.x"
      }
    },
    "node_modules/statuses": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/stream-shift": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/strict-uri-encode": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=4"
      }
    },
    "node_modules/string_decoder": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "safe-buffer": "~5.2.0"
      }
    },
    "node_modules/thread-stream": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "real-require": "^0.2.0"
      }
    },
    "node_modules/toidentifier": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=0.6"
      }
    },
    "node_modules/tr46": {
      "version": "0.0.3",
      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/tslib": {
      "version": "1.14.1",
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "0BSD"
    },
    "node_modules/type-is": {
      "version": "1.6.18",
      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "media-typer": "0.3.0",
        "mime-types": "~2.1.24"
      },
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/ufo": {
      "version": "1.6.3",
      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/uint8arrays": {
      "version": "3.1.1",
      "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "multiformats": "^9.4.2"
      }
    },
    "node_modules/uncrypto": {
      "version": "0.1.3",
      "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/unfetch": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/unpipe": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/unstorage": {
      "version": "1.17.4",
      "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.4.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "anymatch": "^3.1.3",
        "chokidar": "^5.0.0",
        "destr": "^2.0.5",
        "h3": "^1.15.5",
        "lru-cache": "^11.2.0",
        "node-fetch-native": "^1.6.7",
        "ofetch": "^1.5.1",
        "ufo": "^1.6.3"
      },
      "peerDependencies": {
        "@azure/app-configuration": "^1.8.0",
        "@azure/cosmos": "^4.2.0",
        "@azure/data-tables": "^13.3.0",
        "@azure/identity": "^4.6.0",
        "@azure/keyvault-secrets": "^4.9.0",
        "@azure/storage-blob": "^12.26.0",
        "@capacitor/preferences": "^6 || ^7 || ^8",
        "@deno/kv": ">=0.9.0",
        "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0",
        "@planetscale/database": "^1.19.0",
        "@upstash/redis": "^1.34.3",
        "@vercel/blob": ">=0.27.1",
        "@vercel/functions": "^2.2.12 || ^3.0.0",
        "@vercel/kv": "^1 || ^2 || ^3",
        "aws4fetch": "^1.0.20",
        "db0": ">=0.2.1",
        "idb-keyval": "^6.2.1",
        "ioredis": "^5.4.2",
        "uploadthing": "^7.4.4"
      },
      "peerDependenciesMeta": {
        "@azure/app-configuration": {
          "optional": true
        },
        "@azure/cosmos": {
          "optional": true
        },
        "@azure/data-tables": {
          "optional": true
        },
        "@azure/identity": {
          "optional": true
        },
        "@azure/keyvault-secrets": {
          "optional": true
        },
        "@azure/storage-blob": {
          "optional": true
        },
        "@capacitor/preferences": {
          "optional": true
        },
        "@deno/kv": {
          "optional": true
        },
        "@netlify/blobs": {
          "optional": true
        },
        "@planetscale/database": {
          "optional": true
        },
        "@upstash/redis": {
          "optional": true
        },
        "@vercel/blob": {
          "optional": true
        },
        "@vercel/functions": {
          "optional": true
        },
        "@vercel/kv": {
          "optional": true
        },
        "aws4fetch": {
          "optional": true
        },
        "db0": {
          "optional": true
        },
        "idb-keyval": {
          "optional": true
        },
        "ioredis": {
          "optional": true
        },
        "uploadthing": {
          "optional": true
        }
      }
    },
    "node_modules/util-deprecate": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT"
    },
    "node_modules/utils-merge": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.4.0"
      }
    },
    "node_modules/vary": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">= 0.8"
      }
    },
    "node_modules/webidl-conversions": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "BSD-2-Clause"
    },
    "node_modules/whatwg-url": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "dependencies": {
        "tr46": "~0.0.3",
        "webidl-conversions": "^3.0.0"
      }
    },
    "node_modules/wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "ISC"
    },
    "node_modules/ws": {
      "version": "7.5.10",
      "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
      "integrity": [REDACTED_SECRET],
      "license": "MIT",
      "engines": {
        "node": ">=8.3.0"
      },
      "peerDependencies": {
        "bufferutil": "^4.0.1",
        "utf-8-validate": "^5.0.2"
      },
      "peerDependenciesMeta": {
        "bufferutil": {
          "optional": true
        },
        "utf-8-validate": {
          "optional": true
        }
      }
    }
  }
}


path: package.json
content: {
  "name": "chia-walletconnect",
  "version": "1.0.0",
  "description": "Telegram Web App for Chia wallet verification via WalletConnect and Sage",
  "main": "cli.js",
  "bin": {
    "chia-wallet": "./cli.js"
  },
  "scripts": {
    "start": "node server/index.js",
    "test": "node cli.js --help",
    "dev": "node server/index.js --dev"
  },
  "keywords": [
    "chia",
    "walletconnect",
    "sage",
    "telegram",
    "blockchain",
    "signature",
    "verification"
  ],
  "author": "Koba42 Corp",
  "license": "MIT",
  "dependencies": {
    "@walletconnect/sign-client": "^2.11.0",
    "@walletconnect/utils": "^2.11.0",
    "@walletconnect/types": "^2.11.0",
    "@walletconnect/web3wallet": "^1.9.0",
    "express": "^4.18.2",
    "node-fetch": "^2.6.7",
    "cors": "^2.8.5",
    "dotenv": "^16.3.1"
  },
  "devDependencies": {}
}


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)