Flex Docs (Work-In-Progress | Last Updated: 12/07)
  • Current Landscape
  • Welcome to Flex
  • Overview
    • Infrastructure for the New Web
    • The Values of the Flex Ecosystem
  • Protocol
    • Flex Validator Nodes
      • Data and Validation Layer
      • Rewards Layer
      • Audit Layer
      • Sentinel Layer
      • Prediction Layer
      • Getting Started
        • Propagation into the Validation Layer
        • Transaction Pool Generation
        • Transaction Weight Assignment
        • Epoch Score Calculation
        • Reward Distribution
        • Reward Claiming
        • Epoch Reward Pool Mechanics
    • Proof-of-Collaboration (PoCol)
      • PoCol Governance using FLEXE
      • Actors in the Flex Ecosystem
    • Flex Commons
      • Code Tokenization
      • Code Registry and Indexing
      • Code Versioning and Forking
      • Code Licensing and Royalties
      • Code Marketplaces and Auctions
      • Code Search and Discovery
      • Flex Commons Governance using FLEXE
    • Ecosystem Tokens' Multi-Staking
    • Technical Roadmap for the Flex Ecosystem
      • Flex Virtual Machine (FVM)
      • Flex SDCK
      • re:Flex Smart Contract Language
    • Flex Improvement Proposal (FIP)
    • Flex Portal: Your Gateway to Web3
  • Contribute to the Ecosystem
    • Strategists: Roles and Contributions
    • Developers and Projects
  • Governance and Utility
    • Introducing the FLEXE Token (coming soon)
    • Flexonomics (coming soon)
    • How to get FLEXE tokens (coming soon)
      • Use the faucet (coming soon)
      • Run a node (coming soon)
  • Quicklinks
    • Supported Social Media
    • Official Website
  • Legal
    • Terms of Service
    • Privacy Policy
    • Digital Asset Disclosure (coming soon)
Powered by GitBook
On this page
  • Weight assignment
  • Weighted transaction pool structure
  1. Protocol
  2. Flex Validator Nodes
  3. Getting Started

Transaction Weight Assignment

Flex is a community-owned platform that rapidly boosts dApp user growth through a multi-chain, proof-of-collaboration protocol. How weights are assigned to each transaction action:

PreviousTransaction Pool GenerationNextEpoch Score Calculation

Last updated 10 months ago

Transaction action weights are assigned through decentralized on-chain voting. An action is represented as a floating-point number between 1 and 10. The weight assigned to an action is constant for all users, regardless of their past actions. Transaction weight assignment to actions is performed by the Validation Layer of the Flex Node.

Weight assignment

Transaction weights are assigned as follows:

Weighted transaction pool structure

Illustration:

// Weighted Transaction Pool

{
    "wallets": [
        {
            "address": "0x1234567890abcdef1234567890abcdef12345678",
            "total_historical_weight": 10.3,
            "per_epoch_weight": [0.5, 0.8, 1.2, 1.0, 0.9, 1.5, 0.6],
            "actions": {
                "onchain": [
                    {
                        "action_id": "onchain_001",
                        "action_weight": 1.5
                    },
                    {
                        "action_id": "onchain_002",
                        "action_weight": 2.1
                    }
                ],
                "offchain": [
                    {
                        "action_id": "offchain_001",
                        "action_weight": 0.9
                    },
                    {
                        "action_id": "offchain_002",
                        "action_weight": 1.2
                    }
                ]
            }
        },
        {
            "address": "0xabcdef1234567890abcdef1234567890abcdef12",
            "total_historical_weight": 9.6,
            "per_epoch_weight": [0.4, 0.7, 1.1, 1.0, 0.8, 1.2, 0.4],
            "actions": {
                "onchain": [
                    {
                        "action_id": "onchain_003",
                        "action_weight": 2.5
                    },
                    {
                        "action_id": "onchain_004",
                        "action_weight": 1.8
                    }
                ],
                "offchain": [
                    {
                        "action_id": "offchain_003",
                        "action_weight": 1.4
                    },
                    {
                        "action_id": "offchain_004",
                        "action_weight": 0.8
                    }
                ]
            }
        }
    ]
}

Weighted List generation