Pi Squared
HomeAbout UsCareersDeveloperResourcesBlog
  • Pi Squared
  • VSL Devnet
  • Overview
  • FAQ
  • Getting Started
    • Run a Local Devnet
    • Core Concepts
      • The Devnet Architecture
      • The Account Model
      • Transactions and Claims
  • Interact with the Devnet
    • Send Raw Curl Requests
    • Run Commands with the CLI
    • Use MetaMask Integration
    • Browse Claims with the Explorer
  • 1+3 Architecture
    • Multichain Interoperability
    • Blockchain Mirroring
      • Block Header Settlement
    • AI + Trusted Execution Environment
  • Metamask Integration
    • Run the MetaMask Snap
    • Sample dApp using MetaMask
  • Tutorials
    • Creating Accounts
Powered by GitBook
On this page
  • What is a Claim?
  • Claim lifecycle
  • 1. Submission
  • 2. Verification
  • 3. Settlement
  • Simple Transactions
  • FastSet: A Parallel Settlement Engine
  • Key roles
  • Claim Rejection and Settlement
  • Types of Claims
  • Summary

Was this helpful?

  1. Getting Started
  2. Core Concepts

Transactions and Claims

At the heart of the Verifiable Settlement Layer (VSL) lies the concept of claims—self-contained, verifiable units of information or computation. A transaction in the VSL context is the process through which these claims are submitted, verified, and eventually settled across a decentralized set of validators.

VSL acts as a neutral, infrastructure-level layer that provides fast, permissionless, and secure verifiable settlement, which is the process of accepting claims, verifying them against their proofs, and finalizing them publicly and immutably.

What is a Claim?

A claim is a statement made by a client, intended to be verified by one or more verifiers. Claims may carry data, represent computation results, attest to facts, or encode payments.

Examples include:

  • “I, Alice, pay Bob 10 tokens.”

  • “This AI model’s output for input X is Y.”

  • “The result of code execution is Z.”

  • “This user passed KYC verification.”

Each claim must be independently verifiable either by direct computation, signature checks, or more complex proof systems like ZKPs or TEE attestations.

Claim lifecycle

A general claim goes through the following stages:

1. Submission

A client creates and signs a claim, specifying the verifiers it wants to validate the claim, a verification fee, and the claim data itself. The client submits this claim using the vsl_submitClaim endpoint.

Upon receipt:

  • The validator deducts a small processing fee.

  • The claim is stored and indexed by sender and verifier addresses.

2. Verification

Verifiers monitor submitted claims using vsl_subscribeToSubmittedClaimsForReceiver for real-time updates. If selected as a verifier, a client can validate the claim against its chosen proof system and submit a signed VerifiedClaim using the vsl_settleClaim endpoint.

At this point:

  • Another processing fee is charged

  • The validator checks:

    • Whether the submitted claim exists and is not expired

    • Whether the sender is an authorized verifier

  • If valid, a SettledVerifiedClaim is created, signed by the validator, and stored

Not all submitted claims are accepted by the VSL. A transaction may be rejected by a validator if:

  • It does not match any submitted claim currently tracked by the system

  • The sender is not one of the requested verifiers

  • The claim has expired or was submitted with a conflicting nonce

A claim is only considered settled when a quorum of verifiers have approved it and the VSL validator has signed and recorded the settlement.

Settlement is the strongest form of acceptance. It makes the claim part of the VSL’s verifiable history and allows clients to trust its result.

3. Settlement

Once enough verifiers have signed off (based on the required quorum), the claim is considered settled. In production, an aggregate signature is used to optimize storage and verification.

Clients can check for settled claims using vsl_listSettledClaimsForRecevier. There is also a subscription-based version, vsl_subscribeToSettledClaimsForRecevier, is also available, though polling is often sufficient here since clients typically know how many claims to expect and their expiration timelines.

Clients may validate the validator’s signature and ensure the signed claim matches the expected original.

Simple Transactions

For simple transactions like making a payment, the client's signature is enough and there is no need to involve verifiers. In these cases the validators will immediately settle a claim recording the transaction (and also update the account state, if only to increment the expected nonce).

FastSet: A Parallel Settlement Engine

VSL is designed with the FastSet protocol in mind—a model for scalable, concurrent settlement of verifiable claims. While the devnet currently supports only a subset of this design (e.g. payments and account state updates), future versions aim to expand toward the full FastSet architecture.

FastSet requires that weak independence holds between claims issued by different accounts. This means that if two such claims are individually valid, then:

  • It must be valid to apply both claims together

  • The final state must be the same regardless of the order in which they are applied

A classic example is: Account A sends tokens to B, and B sends tokens to C. These two operations affect B’s balance, but they’re still weakly independent which means they can be processed in any order and result in the same final balances.

Given this property, FastSet guarantees strong eventual consistency: validators who settle the same set of claims, regardless of order, reach the same final state.

The protocol also ensures determinism, monotonicity (claims stay valid once accepted), and liveness (validators eventually make progress).

Key roles

  • Clients: Users, apps, L1/L2 chains, or services that issue claims.

  • Verifiers: Any client designated to validate claims. They can check execution, signatures, or any form of proof.

  • Validators: Infrastructure nodes that maintain the global settlement state and enforce consistency.

  • Proxies (Optional): Entities that relay messages and aggregate signatures, aiding liveness but not safety.

Claim Rejection and Settlement

Before any signed request, ,whether it's a claim submission, payment, or verification, is processed by the VSL, it must meet two basic conditions:

  • The sender must have enough tokens to pay the validator’s processing fee.

  • The request must include the correct nonce: it must match the next expected nonce for that account.

If either of these checks fails, the request is immediately rejected.

Types of Claims

VSL supports many claim types. Common examples include:

  • Payments: transfer(receiver, amount)

  • Facts: “User X has at least 20 tokens”

  • Proofs: Results of computations, signatures, attestations

  • Computation: compute(code, input, pre_state, post_state)

Each type can be verified in different ways, depending on application needs.

Summary

VSL is designed to enable trustless, cross-platform proof of actions, states, and intents. It decouples the act of proving from the act of accepting, allowing applications to choose their own proof methods and verifiers.

While the devnet currently operates with a single trusted validator, the architecture aims for a decentralized, low-latency, and high-throughput settlement layer inspired by the FastSet protocol.

PreviousThe Account ModelNextInteract with the Devnet

Last updated 2 days ago

Was this helpful?