Skip to main content

Score Protocol Overview

Score Protocol is a fully decentralized onchain scoring system that enables applications to track and query scores across multiple dimensions. It provides a strategy-based architecture where apps execute scoring through customizable strategies.

Built on Net: Score Protocol is built on top of Net Protocol. It uses Net Storage for storing detailed score data and Net messages for tracking and indexing state changes.

What is Score Protocol?

Score Protocol enables:

  • Fully Decentralized: All scores stored onchain, no central authority
  • Strategy-Based: Apps execute scoring through customizable strategy contracts
  • Multi-Dimensional: Tracks scores by strategy, app, user, and scoreKey combinations
  • Onchain Storage: All scores stored permanently on blockchain
  • Transparent: All scores publicly verifiable

How Score Protocol Works

Score Protocol uses a three-layer architecture:

  1. Score Contract: Core contract that manages all scoring state and coordinates execution
  2. Apps: Contracts that call Score to update scores (e.g., UpvoteApp, UpvoteStorageApp)
  3. Strategies: Contracts that execute custom logic when scores change (e.g., token swaps, economic mechanisms)

Key Concept: A scoreKey is a bytes32 identifier for what's being scored. For example, a token address (padded to bytes32) or a hash of storage content. Scores are tracked per scoreKey, allowing you to query scores for specific items.

Execution Flow:

  1. App calls Score.execute() with a strategy and score parameters (including scoreKey and scoreDelta)
  2. Score validates and updates all state mappings (strategy, app, user, scoreKey dimensions)
  3. Score calls the strategy contract to execute custom logic (strategies can swap tokens, perform calculations, etc.)
  4. Score stores detailed data in NetStorage for historical access
  5. Score sends Net messages for indexing and querying

Key Features

  • Multi-Dimensional Scoring: Query scores by strategy, app, user, scoreKey in any combination
  • Strategy-Based Execution: Custom logic per strategy (token swaps, economic mechanisms)
  • Complete History: All score changes stored in NetStorage
  • Net Integration: Uses Net Protocol for message indexing
  • Cross-Application: Works across all Net applications

What it's used for today

Score Protocol is currently used for:

  • Token Upvoting: Users upvote tokens (via UpvoteApp)
  • Storage Content Upvoting: Users upvote storage content (via UpvoteStorageApp)

Both use Score Protocol as the underlying scoring mechanism.

Contract Addresses

All contracts deployed on Base:

ContractAddress
Score0x0000000FA09B022E5616E5a173b4b67FA2FBcF28
UpvoteApp0x00000001f0b8173316a016a5067ad74e8cea47bf
UpvoteStorageApp0x000000060CEB69D023227DF64CfB75eC37c75B62
UpvotePureAlphaStrategy0x00000001b1bcdeddeafd5296aaf4f3f3e21ae876
UpvoteUniv234PoolsStrategy0x000000063f84e07a3e7a7ee578b42704ee6d22c9

Supported Chains: Base (currently the only deployment)