Documentation

    Documentation

    Documentation

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. /
    2. /Ethereum wallets (Wagmi v3)

    Updated May 10, 20262 min listen

    1. /
    2. /Ethereum wallets (Wagmi v3)

    Updated May 10, 20262 min listen

    1. /
    2. /Ethereum wallets (Wagmi v3)

    Updated May 10, 20262 min listen

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Architecture
    Data Model
    Real Time
    Discovery Mutation Sync
    Security
    Backend Services
    k8s-postgres-fcm Mode
    Firebase Integration
    Features
    Authentication
    Email AI-CRM
    Entities
    Opportunities
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Tunnel Protocol
    Wallet & Credit System
    Multi-Vendor Store
    Referral Codes (Refcodes)
    Affiliate & Referral Enablement
    Payments Overview
    PaymentConductor
    SubscriptionConductor
    VideoConductor
    News Module - Digital Newspaper Experience
    Member Blogs
    Public Profile Pages
    Username Reservation System
    Scientific Editor
    Locale System
    Security & Compliance
    NFT Marketplace
    Token Staking System
    Performance Optimization Patterns
    Mobile Experience
    Wallet
    Wallet Security Tips
    API
    Authentication
    Email AI-CRM API
    Entities
    Opportunities
    Messaging API
    Notifications API
    Wallet API
    Store API
    Admin API
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Branding
    Themes
    Web3
    Token launch jurisdictions
    Deployment
    Self-hosted deployment
    Vercel
    Docker
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Development
    Local Setup
    Code Structure
    Documentation components
    Community tooling
    Ring MCP Server
    Generative Images (ImageConductor)
    Autonomous Newsroom (Grok)
    OSS vs enterprise
    Whitelabel Navigation
    Best Practices
    Workflow
    Code Style
    Performance
    Testing
    Deployment
    Debugging
    Contributing
    MCP
    ring-image-create
    ring-video-create
    Examples
    Quick Start
    White Label
    Real World
    Integrations
    Ethereum wallets (Wagmi v3)

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Architecture
    Data Model
    Real Time
    Discovery Mutation Sync
    Security
    Backend Services
    k8s-postgres-fcm Mode
    Firebase Integration
    Features
    Authentication
    Email AI-CRM
    Entities
    Opportunities
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Tunnel Protocol
    Wallet & Credit System
    Multi-Vendor Store
    Referral Codes (Refcodes)
    Affiliate & Referral Enablement
    Payments Overview
    PaymentConductor
    SubscriptionConductor
    VideoConductor
    News Module - Digital Newspaper Experience
    Member Blogs
    Public Profile Pages
    Username Reservation System
    Scientific Editor
    Locale System
    Security & Compliance
    NFT Marketplace
    Token Staking System
    Performance Optimization Patterns
    Mobile Experience
    Wallet
    Wallet Security Tips
    API
    Authentication
    Email AI-CRM API
    Entities
    Opportunities
    Messaging API
    Notifications API
    Wallet API
    Store API
    Admin API
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Branding
    Themes
    Web3
    Token launch jurisdictions
    Deployment
    Self-hosted deployment
    Vercel
    Docker
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Development
    Local Setup
    Code Structure
    Documentation components
    Community tooling
    Ring MCP Server
    Generative Images (ImageConductor)
    Autonomous Newsroom (Grok)
    OSS vs enterprise
    Whitelabel Navigation
    Best Practices
    Workflow
    Code Style
    Performance
    Testing
    Deployment
    Debugging
    Contributing
    MCP
    ring-image-create
    ring-video-create
    Examples
    Quick Start
    White Label
    Real World
    Integrations
    Ethereum wallets (Wagmi v3)

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Architecture
    Data Model
    Real Time
    Discovery Mutation Sync
    Security
    Backend Services
    k8s-postgres-fcm Mode
    Firebase Integration
    Features
    Authentication
    Email AI-CRM
    Entities
    Opportunities
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Tunnel Protocol
    Wallet & Credit System
    Multi-Vendor Store
    Referral Codes (Refcodes)
    Affiliate & Referral Enablement
    Payments Overview
    PaymentConductor
    SubscriptionConductor
    VideoConductor
    News Module - Digital Newspaper Experience
    Member Blogs
    Public Profile Pages
    Username Reservation System
    Scientific Editor
    Locale System
    Security & Compliance
    NFT Marketplace
    Token Staking System
    Performance Optimization Patterns
    Mobile Experience
    Wallet
    Wallet Security Tips
    API
    Authentication
    Email AI-CRM API
    Entities
    Opportunities
    Messaging API
    Notifications API
    Wallet API
    Store API
    Admin API
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Branding
    Themes
    Web3
    Token launch jurisdictions
    Deployment
    Self-hosted deployment
    Vercel
    Docker
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Development
    Local Setup
    Code Structure
    Documentation components
    Community tooling
    Ring MCP Server
    Generative Images (ImageConductor)
    Autonomous Newsroom (Grok)
    OSS vs enterprise
    Whitelabel Navigation
    Best Practices
    Workflow
    Code Style
    Performance
    Testing
    Deployment
    Debugging
    Contributing
    MCP
    ring-image-create
    ring-video-create
    Examples
    Quick Start
    White Label
    Real World
    Integrations
    Ethereum wallets (Wagmi v3)

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    Docs
    Integrations
    Docs
    Integrations
    Docs
    Integrations

    Ethereum wallets (Wagmi v3)

    Ring ships Wagmi v3 and viem 2.x with a custom connector picker and account menu (no @rainbow-me/rainbowkit). Multi-wallet support comes from Wagmi connectors configured in lib/wagmi-config.ts.

    Default connectors

    Typical production lineup (exact list is in your clone’s getConnectors()):

    1. injected() — browser extensions and EIP-6963 discovery where available.
    2. metaMask() — explicit MetaMask connector (install peer @metamask/connect-evm).
    3. coinbaseWallet({ appName, appLogoUrl }) — install peer @coinbase/wallet-sdk.
    4. walletConnect({ projectId, metadata, showQrModal }) — mobile and broad wallet support (install peer @walletconnect/ethereum-provider), only if NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID is set and not a placeholder.

    WalletConnect is omitted when the project ID is missing to avoid 403 responses from WalletConnect Cloud.

    Environment variables

    VariablePurpose
    NEXT_PUBLIC_WALLETCONNECT_PROJECT_IDWalletConnect Cloud projectId (WalletConnect Cloud). Required for QR / deep-link flows.

    RPC URLs for viem http() transports use public defaults unless you customize transports in wagmi-config.

    Wagmi v3 usage patterns

    • Prefer useConnection() for address, chain, isConnected, and related state.
    • List connectors with useConnectors() (not useConnect().connectors).
    • Connect with const c = useConnect(); c.mutate({ connector }) or mutateAsync when you need the hash in scope.
    • Switch chains with useSwitchChain().mutate({ chainId }).
    • Configured chains for UI: useChains() (avoids duplicating chain metadata).

    Official migration reference: Migrate from v2 to v3.

    SSR and persistence

    createConfig uses ssr: true where noted in the codebase. Ring Platform’s canonical app also uses cookie storage so server-rendered pages can hydrate wallet state consistently (cookieStorage + createStorage in wagmi-config.ts). Clones without that wrapper may still run client-only Web3 providers; align with your layout’s dynamic import strategy.

    White-label: changing connectors

    1. Edit lib/wagmi-config.ts — add or remove connectors from @wagmi/connectors / wagmi/connectors.
    2. Install each connector’s documented peer dependencies only for connectors you enable.
    3. Adjust branding (appName, appLogoUrl, WalletConnect metadata) for your domain.
    4. The connector picker lists useConnectors() output; if you see duplicate EIP-6963 entries, dedupe by connector.id in the picker component (Ring’s default picker already dedupes by id).

    Security notes

    • Do not expose server secrets to the client bundle.
    • Treat NEXT_PUBLIC_* RPC keys as public: anyone can read them from the browser.

    Related

    • Legacy examples page (ethers-era) was retired — see Web3 integration (redirect) for the pointer only.

    Ethereum wallets (Wagmi v3)

    Ring ships Wagmi v3 and viem 2.x with a custom connector picker and account menu (no @rainbow-me/rainbowkit). Multi-wallet support comes from Wagmi connectors configured in lib/wagmi-config.ts.

    Default connectors

    Typical production lineup (exact list is in your clone’s getConnectors()):

    1. injected() — browser extensions and EIP-6963 discovery where available.
    2. metaMask() — explicit MetaMask connector (install peer @metamask/connect-evm).
    3. coinbaseWallet({ appName, appLogoUrl }) — install peer @coinbase/wallet-sdk.
    4. walletConnect({ projectId, metadata, showQrModal }) — mobile and broad wallet support (install peer @walletconnect/ethereum-provider), only if NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID is set and not a placeholder.

    WalletConnect is omitted when the project ID is missing to avoid 403 responses from WalletConnect Cloud.

    Environment variables

    VariablePurpose
    NEXT_PUBLIC_WALLETCONNECT_PROJECT_IDWalletConnect Cloud projectId (WalletConnect Cloud). Required for QR / deep-link flows.

    RPC URLs for viem http() transports use public defaults unless you customize transports in wagmi-config.

    Wagmi v3 usage patterns

    • Prefer useConnection() for address, chain, isConnected, and related state.
    • List connectors with useConnectors() (not useConnect().connectors).
    • Connect with const c = useConnect(); c.mutate({ connector }) or mutateAsync when you need the hash in scope.
    • Switch chains with useSwitchChain().mutate({ chainId }).
    • Configured chains for UI: useChains() (avoids duplicating chain metadata).

    Official migration reference: Migrate from v2 to v3.

    SSR and persistence

    createConfig uses ssr: true where noted in the codebase. Ring Platform’s canonical app also uses cookie storage so server-rendered pages can hydrate wallet state consistently (cookieStorage + createStorage in wagmi-config.ts). Clones without that wrapper may still run client-only Web3 providers; align with your layout’s dynamic import strategy.

    White-label: changing connectors

    1. Edit lib/wagmi-config.ts — add or remove connectors from @wagmi/connectors / wagmi/connectors.
    2. Install each connector’s documented peer dependencies only for connectors you enable.
    3. Adjust branding (appName, appLogoUrl, WalletConnect metadata) for your domain.
    4. The connector picker lists useConnectors() output; if you see duplicate EIP-6963 entries, dedupe by connector.id in the picker component (Ring’s default picker already dedupes by id).

    Security notes

    • Do not expose server secrets to the client bundle.
    • Treat NEXT_PUBLIC_* RPC keys as public: anyone can read them from the browser.

    Related

    • Legacy examples page (ethers-era) was retired — see Web3 integration (redirect) for the pointer only.

    Ethereum wallets (Wagmi v3)

    Ring ships Wagmi v3 and viem 2.x with a custom connector picker and account menu (no @rainbow-me/rainbowkit). Multi-wallet support comes from Wagmi connectors configured in lib/wagmi-config.ts.

    Default connectors

    Typical production lineup (exact list is in your clone’s getConnectors()):

    1. injected() — browser extensions and EIP-6963 discovery where available.
    2. metaMask() — explicit MetaMask connector (install peer @metamask/connect-evm).
    3. coinbaseWallet({ appName, appLogoUrl }) — install peer @coinbase/wallet-sdk.
    4. walletConnect({ projectId, metadata, showQrModal }) — mobile and broad wallet support (install peer @walletconnect/ethereum-provider), only if NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID is set and not a placeholder.

    WalletConnect is omitted when the project ID is missing to avoid 403 responses from WalletConnect Cloud.

    Environment variables

    VariablePurpose
    NEXT_PUBLIC_WALLETCONNECT_PROJECT_IDWalletConnect Cloud projectId (WalletConnect Cloud). Required for QR / deep-link flows.

    RPC URLs for viem http() transports use public defaults unless you customize transports in wagmi-config.

    Wagmi v3 usage patterns

    • Prefer useConnection() for address, chain, isConnected, and related state.
    • List connectors with useConnectors() (not useConnect().connectors).
    • Connect with const c = useConnect(); c.mutate({ connector }) or mutateAsync when you need the hash in scope.
    • Switch chains with useSwitchChain().mutate({ chainId }).
    • Configured chains for UI: useChains() (avoids duplicating chain metadata).

    Official migration reference: Migrate from v2 to v3.

    SSR and persistence

    createConfig uses ssr: true where noted in the codebase. Ring Platform’s canonical app also uses cookie storage so server-rendered pages can hydrate wallet state consistently (cookieStorage + createStorage in wagmi-config.ts). Clones without that wrapper may still run client-only Web3 providers; align with your layout’s dynamic import strategy.

    White-label: changing connectors

    1. Edit lib/wagmi-config.ts — add or remove connectors from @wagmi/connectors / wagmi/connectors.
    2. Install each connector’s documented peer dependencies only for connectors you enable.
    3. Adjust branding (appName, appLogoUrl, WalletConnect metadata) for your domain.
    4. The connector picker lists useConnectors() output; if you see duplicate EIP-6963 entries, dedupe by connector.id in the picker component (Ring’s default picker already dedupes by id).

    Security notes

    • Do not expose server secrets to the client bundle.
    • Treat NEXT_PUBLIC_* RPC keys as public: anyone can read them from the browser.

    Related

    • Legacy examples page (ethers-era) was retired — see Web3 integration (redirect) for the pointer only.