> For the complete documentation index, see [llms.txt](https://flexecosystem.gitbook.io/flex-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flexecosystem.gitbook.io/flex-docs/protocol/flex-validator-nodes/getting-started/transaction-weight-assignment.md).

# 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:

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:

<figure><img src="https://4013728547-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6ek4F5oxKMNiYqi42cgD%2Fuploads%2FgKCAVwSxYnSHKqcMywx8%2Fflexwhitepaper-Weight%20Assignment.drawio.png?alt=media&amp;token=f0678f24-eaa8-4957-82d2-c0d2ef727617" alt=""><figcaption><p>Weighted List generation</p></figcaption></figure>

## 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
                    }
                ]
            }
        }
    ]
}

```
