Skip to content

CIPHER A Privacy first Ai- Agent That hooks unto you wallet to provide Simple summaries, smart alerts, and easy fixes — so crypto feels less confusing and more useful, See your spending, NFTs, and approvals in language you understand. Understand your chain activity — no tracking, no custody.

Notifications You must be signed in to change notification settings

jadonamite/Cipher

Repository files navigation

CIPHER - Privacy-First Crypto Wallet Analyzer

A Next.js application that provides privacy-first blockchain wallet analysis with human-readable insights, gas tracking, and security alerts.

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • npm, yarn, pnpm, or bun

Installation

  1. Clone the repository:
git clone <your-repo-url>
cd cipher
  1. Install dependencies:
npm install
  1. Set up environment variables: Create a .env.local file in the root directory:
NEXT_PUBLIC_PROJECT_ID=your_reown_project_id

Get your Project ID from Reown Cloud

Run Development Server

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 to view the application.

🔧 Tech Stack

  • Framework: Next.js 14+ (App Router)
  • Web3 Integration:
    • Reown AppKit (formerly WalletConnect)
    • Wagmi - React Hooks for Ethereum
    • Viem - TypeScript Interface for Ethereum
  • Styling: Tailwind CSS
  • Icons: Lucide React
  • State Management: React Hooks + TanStack Query

📦 Key Dependencies

{
  "@reown/appkit": "latest",
  "@reown/appkit-adapter-wagmi": "latest",
  "wagmi": "latest",
  "viem": "latest",
  "@tanstack/react-query": "latest",
  "next": "14+",
  "react": "18+",
  "lucide-react": "latest"
}

🔐 Wallet Integration Setup

This project uses Reown AppKit (formerly WalletConnect) for Web3 wallet connections.

Configuration Files

  1. Create app/context/Web3Modal.tsx:
'use client'

import { createAppKit } from '@reown/appkit/react'
import { WagmiProvider } from 'wagmi'
import { arbitrum, mainnet, polygon } from '@reown/appkit/networks'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'

const queryClient = new QueryClient()

const projectId = process.env.NEXT_PUBLIC_PROJECT_ID!

const metadata = {
  name: 'CIPHER',
  description: 'Privacy-First Crypto Wallet Analyzer',
  url: 'https://cipher.app',
  icons: ['https://avatars.githubusercontent.com/u/37784886']
}

const networks = [mainnet, arbitrum, polygon]

const wagmiAdapter = new WagmiAdapter({
  networks,
  projectId
})

createAppKit({
  adapters: [wagmiAdapter],
  networks,
  projectId,
  metadata,
  features: {
    analytics: true
  }
})

export function Web3Modal({ children }: { children: React.ReactNode }) {
  return (
    <WagmiProvider config={wagmiAdapter.wagmiConfig}>
      <QueryClientProvider client={queryClient}>
        {children}
      </QueryClientProvider>
    </WagmiProvider>
  )
}
  1. Wrap your app in app/layout.tsx:
import { Web3Modal } from './context/Web3Modal'

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <body>
        <Web3Modal>{children}</Web3Modal>
      </body>
    </html>
  )
}

🎯 Features

  • Privacy-First: All computations happen client-side, your data never leaves your device
  • Multi-Wallet Support: Connect with 20+ wallets via Reown AppKit
  • Gas Tracking: Monitor transaction fees and optimize spending
  • Risk Detection: Identify dangerous token approvals and security threats
  • Activity Insights: Human-readable transaction history and visualizations
  • AI Chat Support: Interactive AI assistant for wallet analysis

📁 Project Structure

cipher/
├── app/
│   ├── components/
│   │   └── landing-page.tsx      # Main landing page component
│   ├── context/
│   │   └── Web3Modal.tsx         # Web3 provider setup
│   ├── dashboard/
│   │   └── page.tsx              # Dashboard page
│   └── page.tsx                  # Home page
├── public/
│   ├── Cipher.png                # Logo
│   └── assets/                   # Feature images
└── README.md

🔄 Migration from RainbowKit to Reown

If you're migrating from RainbowKit:

  1. Uninstall RainbowKit:
npm uninstall @rainbow-me/rainbowkit wagmi viem
  1. Install Reown AppKit:
npm install @reown/appkit @reown/appkit-adapter-wagmi wagmi viem @tanstack/react-query
  1. Update imports:
// Before (RainbowKit)
import { ConnectButton } from '@rainbow-me/rainbowkit'

// After (Reown)
import { useAppKit } from '@reown/appkit/react'
import { useAccount } from 'wagmi'
  1. Update button usage:
// Before
<ConnectButton.Custom>
  {({ openConnectModal }) => (
    <button onClick={openConnectModal}>Connect</button>
  )}
</ConnectButton.Custom>

// After
const { open } = useAppKit()
const { isConnected, address } = useAccount()

<button onClick={() => open()}>
  {isConnected ? address : 'Connect Wallet'}
</button>

🌐 Environment Variables

Create a .env.local file:

# Reown Project ID (Required)
NEXT_PUBLIC_PROJECT_ID=your_project_id_here

# Optional: API Keys
NEXT_PUBLIC_ALCHEMY_API_KEY=your_alchemy_key
NEXT_PUBLIC_INFURA_API_KEY=your_infura_key

🚢 Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Add environment variables
  4. Deploy

Other Platforms

Build the application:

npm run build

Start production server:

npm start

📚 Learn More

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License.

🔗 Links


Built with ❤️ using Next.js and Reown AppKit

About

CIPHER A Privacy first Ai- Agent That hooks unto you wallet to provide Simple summaries, smart alerts, and easy fixes — so crypto feels less confusing and more useful, See your spending, NFTs, and approvals in language you understand. Understand your chain activity — no tracking, no custody.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages