# Week 11 This week I submitted a [pull request](https://github.com/ReamLabs/ream/pull/751) for my work on [Implement /eth/v1/beacon/pool/sync_committees](https://github.com/ReamLabs/ream/issues/215). While it’s under review, I decided to pick up another issue: [Implement /eth/v1/validator/sync_committee_contribution](https://github.com/ReamLabs/ream/issues/238). According to the [Beacon API Spec for this endpoint](https://github.com/ethereum/beacon-APIs/blob/master/apis/validator/sync_committee_contribution.yaml), the endpoint allows clients to request that the beacon node produce a sync committee contribution. To understand how a sync committee contribution is created, I revisited [Consensus Specs Altair -- The Beacon Chain](https://ethereum.github.io/consensus-specs/specs/altair/beacon-chain/), [Consensus Specs Altair -- The Beacon Chain Honest Validator](https://ethereum.github.io/consensus-specs/specs/altair/validator/), and [Consensus Specs Altair -- Networking](https://ethereum.github.io/consensus-specs/specs/altair/p2p-interface/). I noted the key steps below. ## Sync Committee Contribution Creation - **Assignment** Validators learn their sync committee role and subcommittee indices. - **Message production** Every assigned member signs the head block root each slot and publishes `SyncCommitteeMessage` on the appropriate sync committee subnet topic. - **Aggregator selection** Per subcommittee, roughly 16 aggregators per subnet are chosen each slot. - **Contribution assembly** Selected aggregators gather subnet messages whose beacon block root matches their head, map each signer to a bit position, set `aggregation_bits`, and BLS-aggregate the signatures to form `SyncCommitteeContribution`. - **Proof packaging & gossip** Aggregators wrap the contribution in `ContributionAndProof` and `SignedContributionAndProof`, then broadcast on the global `sync_committee_contribution_and_proof` topic two-thirds into the slot. Gossip layer enforcement covers slot bounds, selection proof validity, subcommittee membership, and aggregate signature correctness. - **Block inclusion** Proposers select the highest-participation contribution per subcommittee and combine them into `block.body.sync_aggregate`, re-aggregating signatures for final inclusion. For the endpoint `/eth/v1/validator/sync_committee_contribution` to work, I need to implement the flow from **Assignment** to **Contribution assembly**. ## Resources [Consensus Specs Altair -- The Beacon Chain](https://ethereum.github.io/consensus-specs/specs/altair/beacon-chain/) [Consensus Specs Altair -- The Beacon Chain Honest Validator](https://ethereum.github.io/consensus-specs/specs/altair/validator/) [Consensus Specs Altair -- Networking](https://ethereum.github.io/consensus-specs/specs/altair/p2p-interface/)