﻿{"id":552817,"date":"2025-01-30T15:49:36","date_gmt":"2025-01-30T15:49:36","guid":{"rendered":"https:\/\/gridnet.org\/wpp\/?p=552817"},"modified":"2026-03-07T20:08:20","modified_gmt":"2026-03-07T20:08:20","slug":"gridnet-os-wallets-and-identity-management","status":"publish","type":"post","link":"https:\/\/mag.gridnet.org\/index.php\/2025\/01\/30\/gridnet-os-wallets-and-identity-management\/","title":{"rendered":"GRIDNET OS Wallets and Identity Management"},"content":{"rendered":"<h2>Introduction to Public Key Cryptography in GRIDNET<\/h2>\n<blockquote><p>Notice: Many GRIDNET OS GridScript commands come with built-in MAN pages. The MAN page of the main utility described herein is available through <code>keychain -help<\/code><\/p><\/blockquote>\n<p><code><\/code><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-552951\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-30-at-17.32.32.png\" alt=\"\" width=\"1502\" height=\"857\" \/><br \/>\nPublic key cryptography forms the foundation of security in GRIDNET&#8217;s decentralized operating system. To understand how GRIDNET manages identities and secures assets, let&#8217;s first explore the core concepts of public key cryptography.<\/p>\n<h2>Core Concepts<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552869 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2-3.png\" alt=\"\" width=\"687\" height=\"644\" \/><\/p>\n<p>At its heart, public key cryptography uses a pair of mathematically related keys: a private key and a public key. In GRIDNET, these keys are generated using Elliptic Curve cryptography, which provides strong security while keeping key sizes manageable. Here&#8217;s how the system works:<\/p>\n<h3>Private Keys<\/h3>\n<ul>\n<li>A private key is a secure, randomly generated number that must be kept strictly confidential<\/li>\n<li>Think of it as your digital master key or signature<\/li>\n<li>In GRIDNET, this is what you see as your &#8220;Secret&#8221; in the mobile app<\/li>\n<li>Anyone who has your private key can control your State Domains (accounts) and assets<\/li>\n<li>Private keys should never be shared or stored in unsecured locations<\/li>\n<\/ul>\n<h3>Public Keys<\/h3>\n<ul>\n<li>Each private key has a corresponding public key that&#8217;s mathematically derived from it<\/li>\n<li>The public key can be freely shared without compromising security<\/li>\n<li>It&#8217;s computationally infeasible to determine the private key from the public key<\/li>\n<li>In GRIDNET, your public key is used to derive your State Domain addresses<\/li>\n<\/ul>\n<h3>Addresses<\/h3>\n<p>In GRIDNET, your public-facing identity (address) is derived from your public key through a series of cryptographic operations. This creates a human-readable format that&#8217;s easier to work with than raw public keys. Think of your address as your account number that others can use to interact with your State Domain.<\/p>\n<h2>Digital Signatures and Authentication<\/h2>\n<p>GRIDNET OS State Domains and authentication are brought to next level due to innovative authentication model. Imagine you are using a decentralized graphical application hosted atop of GRIDNET OS. The application is a decentralized streaming service delivering movies frames to you while every now and then displaying a QR code indicating the service provider (the remote app) requires an off-the-chain payment. You pull out your mobile app scan the QR code and everything happens under the hood through an onion routed connection. The remote app is notified and so is the decentralized user interface visibile in your web browser.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552874 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2-4.png\" alt=\"\" width=\"846\" height=\"677\" \/><\/p>\n<p>When you perform operations in GRIDNET, such as sending tokens or interacting with smart contracts, here&#8217;s what happens behind the scenes:<\/p>\n<ol>\n<li>The operation details are combined into a message<\/li>\n<li>Your private key creates a unique digital signature for this message<\/li>\n<li>Anyone can verify this signature using your public key<\/li>\n<li>The signature proves you authorized the operation without revealing your private key<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552886 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2-6.png\" alt=\"\" width=\"974\" height=\"1082\" \/><\/p>\n<p>This system ensures that:<\/p>\n<ul>\n<li>Only you can create valid signatures for your State Domain<\/li>\n<li>Others can verify your signatures without knowing your private key<\/li>\n<li>Signatures cannot be forged without access to the private key<\/li>\n<li>Each signature is unique to the specific operation being performed<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552882 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2-5.png\" alt=\"\" width=\"679\" height=\"936\" \/><\/li>\n<\/ul>\n<h2>The GRIDNET Innovation: Multi-dimensional Keys<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552856 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2.png\" alt=\"\" width=\"758\" height=\"1086\" \/><\/h2>\n<p>GRIDNET introduces an innovative, in terms of interactive (also supporting autonomous identity switching during mining Operations!) command line management , approach to key management through its multi-dimensional key system:<\/p>\n<h3>Flat Keys<\/h3>\n<ul>\n<li>Traditional single-purpose private keys<\/li>\n<li>Each key controls exactly one State Domain<\/li>\n<li>Simpler to understand but less flexible for managing multiple accounts<\/li>\n<\/ul>\n<h3>Multi-dimensional Keys (Master Private Keys)<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552851 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture.png\" alt=\"\" width=\"1110\" height=\"403\" \/><\/p>\n<ul>\n<li>Can control multiple State Domains from a single master key<\/li>\n<li>Uses a clever &#8220;Vector IV&#8221; system to derive sub-identities<\/li>\n<li>More efficient for users managing multiple accounts<\/li>\n<li>Built-in support in both GRIDNET Core and Mobile app<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552863 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2-2.png\" alt=\"\" width=\"1107\" height=\"828\" \/><\/li>\n<\/ul>\n<p>This multi-dimensional approach offers several advantages:<\/p>\n<ul>\n<li>Simplified backup (just one master key to secure)<\/li>\n<li>Easy management of multiple identities<\/li>\n<li>Seamless switching between different State Domains<\/li>\n<li>Enhanced security through compartmentalization<\/li>\n<\/ul>\n<h2>Security Implications<\/h2>\n<p>Understanding public key cryptography helps you appreciate why:<\/p>\n<ul>\n<li>Private keys must be backed up securely<\/li>\n<li>Never share your private key or &#8220;Secret&#8221; with anyone<\/li>\n<li>Export operations should be performed in secure environments<\/li>\n<li>Different State Domains can be isolated while still being controlled by one master key<\/li>\n<li>The importance of the fingerprint verification in the mobile app<\/li>\n<\/ul>\n<p>In the following sections, we&#8217;ll explore how to practically manage these cryptographic elements using both GRIDNET Mobile and Core, but this fundamental understanding of public key cryptography will help you make informed decisions about key management and security.<\/p>\n<p>Next, we&#8217;ll dive into how GRIDNET implements these concepts in its identity system, building on this cryptographic foundation to create a flexible and secure decentralized operating system.<\/p>\n<h2>GRIDNET Identity System Overview<\/h2>\n<h2>State Domains: The Foundation of GRIDNET Identity<\/h2>\n<p>In GRIDNET&#8217;s decentralized operating system, a State Domain functions as what we traditionally think of as an account or wallet. However, it&#8217;s more sophisticated than traditional cryptocurrency wallets, as it represents a complete computational environment within the decentralized OS. User may use these State Domain to host decentralized applications, also graphical ones, apps that can be interacted with in real-time, decentralized websites, use these for real-time off the chain transactions and so much more!<\/p>\n<p>State Domains have several key characteristics:<\/p>\n<ul>\n<li>Each has a unique address derived from a public key<\/li>\n<li>Can hold tokens and other digital assets<\/li>\n<li>Functions as a complete operating environment<\/li>\n<li>Can interact with other State Domains<\/li>\n<li>Requires cryptographic authorization for operations<\/li>\n<\/ul>\n<h2>The Two-Tier Key Architecture<\/h2>\n<p>GRIDNET implements an innovative two-tier approach to key management:<\/p>\n<h3>Flat Keys (Single-Dimensional)<\/h3>\n<ul>\n<li>Traditional one-to-one relationship<\/li>\n<li>One private key \u2192 one State Domain<\/li>\n<li>Simpler to understand and manage<\/li>\n<li>Ideal for single-purpose accounts<\/li>\n<li>Limited flexibility for managing multiple domains<\/li>\n<\/ul>\n<h3>Master Private Keys (Multi-Dimensional)<\/h3>\n<ul>\n<li>One master key \u2192 many State Domains<\/li>\n<li>Uses Vector IV system for sub-identity derivation<\/li>\n<li>More efficient for managing multiple domains<\/li>\n<li>Built-in support in both Core and Mobile<\/li>\n<li>Enhanced backup efficiency<\/li>\n<\/ul>\n<h2>Understanding Vector IV and Sub-Identities<\/h2>\n<p>The Vector IV system is what makes GRIDNET&#8217;s multi-dimensional keys possible. Here&#8217;s how it works:<\/p>\n<ol>\n<li><strong>Master Key Generation<\/strong>\n<ul>\n<li>A secure random master private key is generated<\/li>\n<li>This becomes the root of all sub-identities<\/li>\n<\/ul>\n<\/li>\n<li><strong>Sub-Identity Derivation<\/strong>\n<ul>\n<li>Each sub-identity is derived using the Vector IV value<\/li>\n<li>Vector IV starts at 0 and can be incremented<\/li>\n<li>Mathematical formula: Sub-Identity Private Key = Master Private Key + Vector IV<\/li>\n<li>Each increment creates a new, unique sub-identity<\/li>\n<\/ul>\n<\/li>\n<li><strong>Key Properties<\/strong>\n<ul>\n<li>All sub-identities are deterministic<\/li>\n<li>Can be reconstructed from master key<\/li>\n<li>Each has its own unique address<\/li>\n<li>Completely isolated from other sub-identities<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Example using the <code>keychain<\/code> utility:<\/p>\n<pre># Generate a new master key chain\nkeychain -gen -name masterchain1\n\n# Create first sub-identity (Vector IV = 0)\nkeychain -activate -id 0\n\n# Create next sub-identity (Vector IV = 1)\nkeychain -genid<\/pre>\n<h2>Identity Management in Practice<\/h2>\n<h3>In GRIDNET Core<\/h3>\n<p>Core users (typically miners) can manage identities through the <code>keychain<\/code> utility:<\/p>\n<ul>\n<li>Generate new key chains<\/li>\n<li>Store keys in cold storage<\/li>\n<li>Export keys in various formats<\/li>\n<li>Manage multiple sub-identities<\/li>\n<li>Switch between active identities<\/li>\n<\/ul>\n<p>Example of managing identities in Core:<\/p>\n<pre># Show current identity information\nkeychain -show\n\n# Switch to a different sub-identity\nkeychain -activate -id 2\n\n# Export master key for backup\nkeychain -export -master\n\n# Generate QR code for mobile import\nkeychain -export -qr<\/pre>\n<h3>In GRIDNET Mobile<\/h3>\n<p>Mobile app users have a streamlined interface:<\/p>\n<ul>\n<li>Single master key storage<\/li>\n<li>Simple identity switching<\/li>\n<li>Fingerprint security<\/li>\n<li>QR code import support<\/li>\n<li>Automatic address generation<\/li>\n<\/ul>\n<p>Navigation:<\/p>\n<ol>\n<li>Tap settings wheel (bottom right)<\/li>\n<li>Access Secret field for key management<\/li>\n<li>Use fingerprint scanner for security<\/li>\n<li>Toggle between sub-identities as needed<\/li>\n<\/ol>\n<h2>Identity Isolation and Security<\/h2>\n<p>Each sub-identity, despite coming from the same master key, operates as a completely isolated environment:<\/p>\n<ul>\n<li>Separate address<\/li>\n<li>Independent balance<\/li>\n<li>Distinct transaction history<\/li>\n<li>Isolated computational state<\/li>\n<li>Individual access controls<\/li>\n<\/ul>\n<p>This provides several benefits:<\/p>\n<ul>\n<li>Compartmentalization of assets<\/li>\n<li>Risk management<\/li>\n<li>Privacy enhancement<\/li>\n<li>Organizational flexibility<\/li>\n<\/ul>\n<h2>Practical Applications<\/h2>\n<ol>\n<li><strong>Mining Operations<\/strong>\n<ul>\n<li>Separate mining identity<\/li>\n<li>Isolated mining rewards<\/li>\n<li>Independent operational control<\/li>\n<\/ul>\n<\/li>\n<li><strong>Personal Finance<\/strong>\n<ul>\n<li>Different identities for different purposes<\/li>\n<li>Easy switching between accounts<\/li>\n<li>Unified backup through master key<\/li>\n<\/ul>\n<\/li>\n<li><strong>Business Operations<\/strong>\n<ul>\n<li>Segregated business accounts<\/li>\n<li>Clear operational boundaries<\/li>\n<li>Simplified key management<\/li>\n<\/ul>\n<\/li>\n<li><strong>Development and Testing<\/strong>\n<ul>\n<li>Isolated test environments<\/li>\n<li>Easy creation of new identities<\/li>\n<li>No risk to main accounts<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Best Practices for Identity Management<\/h2>\n<ol>\n<li>Always backup master keys<\/li>\n<li>Use meaningful key chain names in Core<\/li>\n<li>Document sub-identity purposes<\/li>\n<li>Regularly verify active identities<\/li>\n<li>Use fingerprint security in mobile<\/li>\n<li>Export keys in secure environments<\/li>\n<li>Maintain clear identity organization<\/li>\n<\/ol>\n<h2>GRIDNET Mobile App Key Management<\/h2>\n<h2>Overview<\/h2>\n<p>GRIDNET&#8217;s mobile app provides a user-friendly interface for managing both flat and multi-dimensional keys while maintaining robust security. This section explores the complete key management functionality available in the mobile application.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552859 aligncenter\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Capture2-1.png\" alt=\"\" width=\"1105\" height=\"276\" \/><\/p>\n<h2>Default Key Generation<\/h2>\n<p>When you first launch the GRIDNET mobile app, it automatically generates a Master Private Key (multi-dimensional key). This approach provides several advantages:<\/p>\n<ul>\n<li>Single key backup requirement<\/li>\n<li>Built-in support for multiple identities<\/li>\n<li>Seamless identity switching<\/li>\n<li>Future-proof key management<\/li>\n<\/ul>\n<h2>Navigating the Settings View<\/h2>\n<p>To access key management features:<\/p>\n<ol>\n<li>Locate the settings wheel icon in the bottom right corner<\/li>\n<li>Tap to open the Settings view<\/li>\n<li>The &#8220;Secret&#8221; field appears at the top<\/li>\n<li>Additional controls become available after key activation<\/li>\n<\/ol>\n<h2>Understanding the Secret Field<\/h2>\n<p>The Secret field is your gateway to key management:<\/p>\n<ul>\n<li>Displays your active private key<\/li>\n<li>Accepts both flat and master private keys<\/li>\n<li>Automatically derives public keys<\/li>\n<li>Generates corresponding addresses<\/li>\n<li>Supports manual key entry and QR scanning<\/li>\n<\/ul>\n<h2>Identity Activation Process<\/h2>\n<ol>\n<li><strong>Key Entry<\/strong>\n<ul>\n<li>Enter private key in Secret field<\/li>\n<li>Or scan QR code from GRIDNET Core<\/li>\n<\/ul>\n<pre># Generate QR in Core for scanning\nkeychain -export -qr<\/pre>\n<\/li>\n<li><strong>Fingerprint Verification<\/strong>\n<ul>\n<li>Virtual Fingerprint Scanner appears<\/li>\n<li>Touch to confirm identity activation<\/li>\n<li>Provides additional security layer<\/li>\n<li>Prevents accidental identity changes<\/li>\n<\/ul>\n<\/li>\n<li><strong>Automatic Processing<\/strong>\n<ul>\n<li>Public key generation<\/li>\n<li>Address derivation<\/li>\n<li>Balance checking<\/li>\n<li>Sub-identity detection<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Managing Multiple Identities<\/h2>\n<p>Once a master key is activated, the app provides tools for managing sub-identities:<\/p>\n<h3>Identity Switching<\/h3>\n<ul>\n<li>Additional controls appear after activation<\/li>\n<li>Seamlessly toggle between sub-identities<\/li>\n<li>Real-time balance updates<\/li>\n<li>Automatic address switching<\/li>\n<\/ul>\n<h3>Sub-Identity Controls<\/h3>\n<ul>\n<li>Identity Index: [0] [1] [2] [3]<\/li>\n<li>Current Address<\/li>\n<li>Current Public Key<\/li>\n<\/ul>\n<h3>Identity Tracking<\/h3>\n<ul>\n<li>Each sub-identity maintains:\n<ul>\n<li>Unique address<\/li>\n<li>Independent balance<\/li>\n<li>Separate transaction history<\/li>\n<li>Individual settings<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Importing Keys<\/h2>\n<p>The mobile app supports two key import methods:<\/p>\n<h3>QR Code Import<\/h3>\n<ol>\n<li>From GRIDNET Core:\n<pre># Export master key as QR\nkeychain -export -master -qr\n\n# Export specific sub-identity\nkeychain -export -id 2 -qr<\/pre>\n<\/li>\n<li>In mobile app:\n<ul>\n<li>Tap QR scanner icon<\/li>\n<li>Center QR code in viewport<\/li>\n<li>Automatic key detection<\/li>\n<li>Fingerprint verification required<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Manual Text Import<\/h3>\n<ol>\n<li>From GRIDNET Core:\n<pre># Export master key as text\nkeychain -export -master\n\n# Export specific sub-identity\nkeychain -export -id 2<\/pre>\n<\/li>\n<li>In mobile app:\n<ul>\n<li>Copy key to Secret field<\/li>\n<li>Verify fingerprint<\/li>\n<li>Automatic activation<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Backup Recommendations<\/h2>\n<p>The mobile app supports robust key backup strategies:<\/p>\n<h3>Essential Backup Practices<\/h3>\n<ol>\n<li><strong>Master Key Backup<\/strong>\n<ul>\n<li>Export master key from Settings<\/li>\n<li>Store in secure location<\/li>\n<li>Consider multiple backup copies<\/li>\n<li>Use offline storage when possible<\/li>\n<\/ul>\n<\/li>\n<li><strong>Sub-Identity Documentation<\/strong>\n<ul>\n<li>Record active identity indices<\/li>\n<li>Document identity purposes<\/li>\n<li>Maintain usage records<\/li>\n<li>Keep backups updated<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Security Considerations<\/h3>\n<ul>\n<li>Never share your Secret<\/li>\n<li>Use secure channels for key transfer<\/li>\n<li>Enable device security features<\/li>\n<li>Regular backup verification<\/li>\n<li>Consider cold storage solutions<\/li>\n<\/ul>\n<h2>Common Operations<\/h2>\n<h3>Checking Active Identity<\/h3>\n<ol>\n<li>Open Settings<\/li>\n<li>View current Secret<\/li>\n<li>Note identity index<\/li>\n<li>Verify address<\/li>\n<\/ol>\n<h3>Switching Identities<\/h3>\n<ol>\n<li>Access Settings<\/li>\n<li>Use identity toggles<\/li>\n<li>Confirm with fingerprint<\/li>\n<li>Verify new address<\/li>\n<\/ol>\n<h3>Creating New Sub-Identity<\/h3>\n<ol>\n<li>Navigate to Settings<\/li>\n<li>Select next available index<\/li>\n<li>Verify with fingerprint<\/li>\n<li>Document new identity<\/li>\n<\/ol>\n<h2>Troubleshooting<\/h2>\n<p>Common issues and solutions:<\/p>\n<ol>\n<li><strong>Invalid Key Format<\/strong>\n<ul>\n<li>Verify key format<\/li>\n<li>Check for copy errors<\/li>\n<li>Try QR import instead<\/li>\n<\/ul>\n<\/li>\n<li><strong>Failed Activation<\/strong>\n<ul>\n<li>Retry fingerprint scan<\/li>\n<li>Check key validity<\/li>\n<li>Restart app if needed<\/li>\n<\/ul>\n<\/li>\n<li><strong>Balance Issues<\/strong>\n<ul>\n<li>Verify correct identity<\/li>\n<li>Check network connection<\/li>\n<li>Allow sync completion<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Best Practices<\/h2>\n<ol>\n<li><strong>Regular Backups<\/strong>\n<ul>\n<li>Export master key periodically<\/li>\n<li>Store backups securely<\/li>\n<li>Test backup restoration<\/li>\n<\/ul>\n<\/li>\n<li><strong>Identity Organization<\/strong>\n<ul>\n<li>Label sub-identities<\/li>\n<li>Document usage<\/li>\n<li>Regular verification<\/li>\n<\/ul>\n<\/li>\n<li><strong>Security Habits<\/strong>\n<ul>\n<li>Regular fingerprint checks<\/li>\n<li>Secure app access<\/li>\n<li>Private key confidentiality<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>GRIDNET Core Key Management<\/h2>\n<h2>Introduction to the KeyChain Utility<\/h2>\n<p>The <code>keychain<\/code> utility in GRIDNET Core is the primary tool for managing cryptographic identities. It provides comprehensive functionality for handling both flat and multi-dimensional keys, with powerful features for miners and advanced users.<\/p>\n<h2>Core Concepts and Operations<\/h2>\n<h3>Key Storage Architecture<\/h3>\n<p>GRIDNET Core implements a two-tier storage system:<\/p>\n<ol>\n<li><strong>Active Memory (Ephemeral State)<\/strong>\n<ul>\n<li>Currently loaded keys<\/li>\n<li>Active identities<\/li>\n<li>Runtime configurations<\/li>\n<\/ul>\n<\/li>\n<li><strong>Cold Storage (Persistent State)<\/strong>\n<ul>\n<li>Saved key chains<\/li>\n<li>Long-term storage<\/li>\n<li>Backup configurations<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Basic Key Management Commands<\/h3>\n<h4>Generating New Key Chains<\/h4>\n<pre># Generate with auto-assigned name\nkeychain -gen\n\n# Generate with custom name\nkeychain -gen -name mining_master\n\n# Generate and immediately store\nkeychain -gen -name mining_master -store<\/pre>\n<h4>Viewing Key Information<\/h4>\n<pre># Show current key chain\nkeychain -show\n\n# Show including private key\nkeychain -show -priv\n\n# Show specific key chain\nkeychain -show -name mining_master<\/pre>\n<h3>Managing Multiple Key Chains<\/h3>\n<h4>Storage Operations<\/h4>\n<pre># Store current key chain\nkeychain -store\n\n# Store with new name\nkeychain -store -name backup_chain\n\n# Store specific identity\nkeychain -store -id 2 -name mining_backup<\/pre>\n<h4>Activation Operations<\/h4>\n<pre># Activate stored key chain\nkeychain -activate -name mining_master\n\n# Activate specific sub-identity\nkeychain -activate -id 2\n\n# Generate and activate new sub-identity\nkeychain -genid -activate<\/pre>\n<h2>Advanced Features<\/h2>\n<h3>Sub-Identity Management<\/h3>\n<pre># List all sub-identities\nkeychain -show\n\n# Generate next available identity\nkeychain -genid\n\n# Switch to specific identity\nkeychain -id 3 -activate\n\n# Export specific sub-identity\nkeychain -export -id 2<\/pre>\n<h3>Export Operations<\/h3>\n<h4>Text-Based Export<\/h4>\n<pre># Export master key\nkeychain -export -master\n\n# Export current sub-identity\nkeychain -export\n\n# Export named key chain\nkeychain -export -name backup_chain<\/pre>\n<h4>QR Code Export<\/h4>\n<pre># Export master key as QR\nkeychain -export -master -qr\n\n# Export sub-identity as QR\nkeychain -export -id 2 -qr\n\n# Export with custom name included\nkeychain -export -qr -named<\/pre>\n<h2>Key Chain Naming Conventions<\/h2>\n<p>GRIDNET Core uses a structured naming system:<\/p>\n<ul>\n<li>Default format: <code>keyX<\/code> (where X is an incremental number)<\/li>\n<li>Custom names: up to 20 alphanumeric characters<\/li>\n<li>Case-sensitive<\/li>\n<li>No special characters allowed<\/li>\n<\/ul>\n<p>Examples:<\/p>\n<pre># Default names\nkey0, key1, key2\n\n# Custom names\nmining_master\nvalidator_backup\ntest_chain<\/pre>\n<h2>Practical Workflows<\/h2>\n<h3>Setting Up Mining Identity<\/h3>\n<pre># Generate new key chain\nkeychain -gen -name mining_master\n\n# Store it\nkeychain -store\n\n# Activate for mining\nkeychain -activate\n\n# Verify active identity\nkeychain -show<\/pre>\n<h3>Managing Multiple Mining Identities<\/h3>\n<pre># Generate new sub-identity\nkeychain -genid\n\n# Activate it\nkeychain -activate -id 1\n\n# Export for backup\nkeychain -export -master -name mining_backup<\/pre>\n<h3>Mobile Integration<\/h3>\n<pre># Export to mobile (QR)\nkeychain -export -master -qr\n\n# Export specific identity (QR)\nkeychain -export -id 2 -qr\n\n# Export text format\nkeychain -export -master<\/pre>\n<h2>Security Considerations<\/h2>\n<h3>Private Key Protection<\/h3>\n<ul>\n<li>Use <code>-priv<\/code> flag carefully<\/li>\n<li>Secure environment for exports<\/li>\n<li>Regular backup procedures<\/li>\n<li>Cold storage best practices<\/li>\n<\/ul>\n<h3>Identity Isolation<\/h3>\n<ul>\n<li>Separate mining identities<\/li>\n<li>Different chains for different purposes<\/li>\n<li>Regular verification of active identity<\/li>\n<li>Clear documentation<\/li>\n<\/ul>\n<h2>Troubleshooting Common Issues<\/h2>\n<p>First of all worry not. Assets or your account can never disappear just like that. That is impossible. As long as you keep your private keys secure.<br \/>\nBelow we outline a couple of methodologies for investigating things and moving around. In short, in GRIDNET OS your &#8216;wallet&#8217; is a true &#8216;account&#8217; on a decentralized operating system GRIDNET OS. Which mean you can <code>CD<\/code>\u00a0into your account just as you would on Linux , MacOS, DOS or Windows.<\/p>\n<p>First you may want to execute the <code>whoami<\/code>\u00a0GridScript command to see if it corresponds to the identity you&#8217;ve\u00a0activated with <code>keychain<\/code>:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-552963\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-30-at-17.40.45.png\" alt=\"\" width=\"1714\" height=\"500\" \/><\/p>\n<p><code>whoami<\/code>\u00a0would report all sub-identities associated with your active key-chain along with all corresponding assets, including locked ones. Notce that currently active sub-identity is clearly depicted. That&#8217;s the identity which is currently being used for mining\/Operating purposes.<\/p>\n<p>Next, you may try to <code>CD<\/code>\u00a0into your account, just like so:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-552965\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-30-at-17.42.35.png\" alt=\"\" width=\"1898\" height=\"136\" \/><\/p>\n<p>Notice that GRIDNET OS automatically attempts to associate current State Domain with one of private keys available in your currently active key-chain. Here it reports having successfully found a corresponding private key at position 0 in your active Key Chain.<\/p>\n<p>If on the other hand you attempt <code>CD<\/code>ing into someone else&#8217;s account:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-552968\" src=\"https:\/\/gridnet.org\/wpp\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-30-at-17.44.26.png\" alt=\"\" width=\"1898\" height=\"136\" \/><br \/>\nThat means Core was unable to find a private sub-key which would match the currently active domain. Probably you&#8217;ve imported an invalid Mater Private Key or haven&#8217;t activated the proper key-chain.<\/p>\n<ol>\n<li><strong>Key Chain Not Found<\/strong>\n<pre># Verify existence\nkeychain -show -name missing_chain\n\n# List available chains\nkeychain -show<\/pre>\n<\/li>\n<li><strong>Invalid Operations<\/strong>\n<pre># Check active chain\nkeychain -show\n\n# Verify permissions\nkeychain -store<\/pre>\n<\/li>\n<li><strong>Export Issues<\/strong>\n<pre># Verify key chain status\nkeychain -show\n\n# Try alternative export format\nkeychain -export -master<\/pre>\n<\/li>\n<\/ol>\n<h2>Best Practices<\/h2>\n<ol>\n<li><strong>Regular Maintenance<\/strong>\n<ul>\n<li>Document all key chains<\/li>\n<li>Regular backup exports<\/li>\n<li>Verify active identities<\/li>\n<li>Clean up unused chains<\/li>\n<\/ul>\n<\/li>\n<li><strong>Security Protocols<\/strong>\n<ul>\n<li>Secure export environment<\/li>\n<li>Regular permission checks<\/li>\n<li>Backup verification<\/li>\n<li>Access control<\/li>\n<\/ul>\n<\/li>\n<li><strong>Organization<\/strong>\n<ul>\n<li>Consistent naming<\/li>\n<li>Clear documentation<\/li>\n<li>Regular audits<\/li>\n<li>Version control<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Practical Scenarios with Examples<\/h2>\n<h2>A. Generating New Keys<\/h2>\n<h3>Creating New Key Chains<\/h3>\n<p>The process of generating new keys in GRIDNET can be done through both Core and Mobile app. Let&#8217;s explore each method:<\/p>\n<h4>In GRIDNET Core<\/h4>\n<pre># Basic key generation\nkeychain -gen\n# Named key generation\nkeychain -gen -name mining_main\n# Generate, store, and activate in one command\nkeychain -gen -name mining_main -store -activate<\/pre>\n<h4>In GRIDNET Mobile<\/h4>\n<ol>\n<li>Clear the Secret field in Settings<\/li>\n<li>Let the app auto-generate a new master key<\/li>\n<li>Confirm with fingerprint<\/li>\n<li>Back up the generated key immediately<\/li>\n<\/ol>\n<h3>Naming Conventions<\/h3>\n<p>GRIDNET follows specific naming rules for key chains:<\/p>\n<pre># Standard auto-generated format\nkey0, key1, key2...\n# Recommended naming patterns\nmining_[purpose]  # e.g., mining_main, mining_backup\nvalidator_[role]  # e.g., validator_primary\ntest_[purpose]   # e.g., test_development<\/pre>\n<p>Best Practices for Names:<\/p>\n<ul>\n<li>Maximum 20 characters<\/li>\n<li>Alphanumeric only<\/li>\n<li>Use underscores for readability<\/li>\n<li>Include purpose in name<\/li>\n<li>Be consistent across chains<\/li>\n<\/ul>\n<h3>Storage and Activation<\/h3>\n<pre># Store newly generated key\nkeychain -store -name mining_primary\n# Verify storage success\nkeychain -show -name mining_primary\n# Activate stored key\nkeychain -activate -name mining_primary\n# Verify active status\nkeychain -show<\/pre>\n<h2>B. Managing Multiple Identities<\/h2>\n<h3>Generating Sub-identities<\/h3>\n<pre># Generate next available sub-identity\nkeychain -genid\n# Generate and activate specific index\nkeychain -genid -id 3 -activate\n# Verify new identity\nkeychain -show<\/pre>\n<p>Example workflow for creating mining sub-identities:<\/p>\n<pre># Start with master chain\nkeychain -gen -name mining_master -store\n# Create mining identity\nkeychain -genid -activate\n# Create backup mining identity\nkeychain -genid -id 2 -store\n# Verify all identities\nkeychain -show<\/pre>\n<h3>Switching Between Identities<\/h3>\n<h4>In Core:<\/h4>\n<pre># Switch to specific identity\nkeychain -activate -id 2\n# Verify active identity\nkeychain -show\n# Switch back to primary\nkeychain -activate -id 0<\/pre>\n<h4>In Mobile:<\/h4>\n<ol>\n<li>Open Settings<\/li>\n<li>Use identity toggle controls<\/li>\n<li>Verify address change<\/li>\n<li>Confirm with fingerprint<\/li>\n<\/ol>\n<h3>Identity Tracking and Organization<\/h3>\n<p>Create an identity management system:<\/p>\n<ol>\n<li>Document Structure:\n<pre>Master Chain: mining_master\n\u251c\u2500\u2500 ID 0: Primary Mining (Active)\n\u251c\u2500\u2500 ID 1: Backup Mining\n\u251c\u2500\u2500 ID 2: Test Operations\n\u2514\u2500\u2500 ID 3: Development<\/pre>\n<\/li>\n<li>Tracking Commands:\n<pre># Log all identities\nkeychain -show &gt; identity_log.txt\n# Track specific identity\nkeychain -show -id 2 &gt;&gt; identity_log.txt<\/pre>\n<\/li>\n<li>Organization Tips:\n<ul>\n<li>Keep a secure document mapping IDs to purposes<\/li>\n<li>Regular verification of active identities<\/li>\n<li>Clear naming conventions for each purpose<\/li>\n<li>Document all identity changes<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Sample Identity Tracking Sheet:<\/p>\n<pre>Chain: mining_master\nLast Updated: [Date]\nID 0:\n- Purpose: Primary Mining\n- Address: GRD...\n- Last Active: [Date]\nID 1:\n- Purpose: Backup Mining\n- Address: GRD...\n- Last Active: [Date]<\/pre>\n<p>&nbsp;<\/p>\n<h2>Ethereum (EVM) Address Support in GRIDNET OS Keychains<\/h2>\n<p>Each sub-identity in a GRIDNET OS keychain now also reports its corresponding <strong>Ethereum (EVM) address<\/strong> (EIP-55 checksum format), derived from the same secp256k1 private key scalar via keccak256 hashing. This means every GRIDNET OS wallet identity has a paired EVM address that can be used on Ethereum, Arbitrum, HyperEVM, and other EVM-compatible chains.<\/p>\n<p>The EVM address is deterministically derived \u2014 given the same GRIDNET master key, the EVM address at each sub-identity index is always the same, recoverable without storing separately.<\/p>\n<h3>Updated <code>keychain<\/code> Command Behaviour<\/h3>\n<ul>\n<li><code>keychain -show<\/code> \u2014 displays all sub-identities with both GRIDNET OS address and EVM address (no private keys shown)<\/li>\n<li><code>keychain -show -priv<\/code> \u2014 additionally reveals the EVM private key (0x-prefixed hex, 32 bytes), EVM uncompressed public key (0x04-prefixed hex, 65 bytes), and GRIDNET private key (base58)<\/li>\n<li><code>keychain -export<\/code> (domain-specific) \u2014 now also outputs EVM address and optionally EVM keys<\/li>\n<\/ul>\n<h3>Example Output<\/h3>\n<pre># Show all sub-identities including EVM addresses\nkeychain -show\n\n# Example output:\n# Sub-identity 0:\n#   GRIDNET OS Address : 1BKGXMj441G5iWuQyxS7Bpr4bxr9vAvXWy\n#   EVM Address        : 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B\n\n# Reveal private key material (handle with care)\nkeychain -show -priv\n\n# Example output (in addition to the above):\n#   GRIDNET Private Key (base58) : DTKUfRptVa8HTX7pjXTNPmvyGbZ...\n#   EVM Private Key (hex)        : 0x18471e3543ebc44b7dc165ae66121e11306b5ad5...\n#   EVM Public Key (uncompressed): 0x04a1b2c3d4e5f6...<\/pre>\n<h3>Cross-Chain Identity Pairing<\/h3>\n<p>Because both addresses derive from the same secp256k1 scalar, a single GRIDNET OS keychain effectively controls identities on:<\/p>\n<ul>\n<li><strong>GRIDNET OS<\/strong> \u2014 native L1 address (base58Check format)<\/li>\n<li><strong>Ethereum mainnet<\/strong> \u2014 same secp256k1 key, EIP-55 checksummed address<\/li>\n<li><strong>Arbitrum<\/strong> \u2014 EVM-compatible, same address as Ethereum<\/li>\n<li><strong>HyperEVM (Hyperliquid)<\/strong> \u2014 EVM-compatible, same address as Ethereum<\/li>\n<li>Any other EVM-compatible chain<\/li>\n<\/ul>\n<p>This enables seamless cross-chain operations such as the GRIDNET Bridge (GRIDNET OS &harr; Arbitrum &harr; HyperEVM) without requiring separate key management for each chain.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Public Key Cryptography in GRIDNET Notice: Many GRIDNET OS GridScript commands come with built-in MAN pages. The MAN page of&#8230;<\/p>\n","protected":false},"author":1,"featured_media":552851,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[],"class_list":["post-552817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-documentation"],"_links":{"self":[{"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/posts\/552817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/comments?post=552817"}],"version-history":[{"count":18,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/posts\/552817\/revisions"}],"predecessor-version":[{"id":552897,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/posts\/552817\/revisions\/552897"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/media\/552851"}],"wp:attachment":[{"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/media?parent=552817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/categories?post=552817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mag.gridnet.org\/index.php\/wp-json\/wp\/v2\/tags?post=552817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}