home / skills / plurigrid / asi / solver-fee

solver-fee skill

/skills/solver-fee

This skill manages solver fee distribution in intent coordination, optimizing payments to solvers, validators, and generators across GF(3) roles.

npx playbooks add skill plurigrid/asi --skill solver-fee

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
7.0 KB
---
name: solver-fee
description: Solver Fee Skill
trit: 0
color: "#26D826"
catsharp:
  home: Prof
  poly_op: ⊗ (parallel)
  kan_role: Adj
  bicomodule: true
---

# solver-fee Skill


> *"Fair compensation for coordination. The solver's incentive to find optimal solutions."*

## Overview

**Solver Fee** implements fee mechanisms for intent solvers in Anoma-style architectures. Solvers coordinate between intent generators and validators, earning fees for finding optimal matches.

## GF(3) Role

| Aspect | Value |
|--------|-------|
| Trit | 0 (ERGODIC) |
| Role | COORDINATOR |
| Function | Coordinates fee distribution between parties |

## Architecture

```
┌─────────────────────────────────────────────────────────────────┐
│                     SOLVER FEE FLOW                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Intent Creator     Solver          Validator       Executor   │
│  (+1 GEN)          (0 COORD)        (-1 VAL)        (output)   │
│      │                 │                │               │      │
│      ▼                 ▼                ▼               ▼      │
│  ┌───────┐        ┌────────┐       ┌──────────┐   ┌─────────┐  │
│  │ Offer │───────►│ Match  │──────►│ Validate │──►│ Execute │  │
│  │+ fee  │        │+ solve │       │+ verify  │   │         │  │
│  └───────┘        └────────┘       └──────────┘   └─────────┘  │
│      │                 │                                       │
│      │                 ▼                                       │
│      │          ┌──────────┐                                   │
│      └─────────►│ Fee Pool │                                   │
│                 └──────────┘                                   │
│                      │                                         │
│                      ▼                                         │
│                Solver Reward                                   │
│                                                                │
└─────────────────────────────────────────────────────────────────┘
```

## Fee Models

```python
class FeeModel:
    """Base class for solver fee computation."""

    TRIT = 0  # COORDINATOR role

    def compute_fee(self, intent, solution) -> int:
        raise NotImplementedError


class PercentageFee(FeeModel):
    """Fee as percentage of transaction value."""

    def __init__(self, basis_points: int = 30):
        self.basis_points = basis_points  # 30 = 0.30%

    def compute_fee(self, intent, solution) -> int:
        value = solution.output_value
        return value * self.basis_points // 10000


class GasPlusPremium(FeeModel):
    """Gas cost plus fixed premium."""

    def __init__(self, premium_bps: int = 10):
        self.premium_bps = premium_bps

    def compute_fee(self, intent, solution) -> int:
        gas_cost = estimate_gas(solution) * gas_price()
        premium = gas_cost * self.premium_bps // 10000
        return gas_cost + premium


class AuctionFee(FeeModel):
    """Competitive auction for solver fees."""

    def compute_fee(self, intent, bids: list) -> int:
        # Second-price auction: winner pays second-highest bid
        sorted_bids = sorted(bids, key=lambda b: b.fee, reverse=True)
        if len(sorted_bids) >= 2:
            return sorted_bids[1].fee  # Second price
        return sorted_bids[0].fee if sorted_bids else 0
```

## GF(3) Fee Conservation

```python
class GF3FeeDistribution:
    """Distribute fees while maintaining GF(3) conservation."""

    def distribute(self, total_fee: int) -> dict:
        """
        Split fee across GF(3) roles.

        GENERATOR (+1): Intent creator rebate (optional)
        COORDINATOR (0): Solver fee
        VALIDATOR (-1): Validator reward

        Sum must balance.
        """
        solver_share = total_fee * 60 // 100    # 60% to solver
        validator_share = total_fee * 30 // 100  # 30% to validator
        rebate = total_fee - solver_share - validator_share  # 10% rebate

        return {
            'generator': rebate,      # +1 role
            'coordinator': solver_share,  # 0 role
            'validator': validator_share,  # -1 role
            'sum': rebate + solver_share + validator_share,
            'conserved': True  # Fees sum to original total
        }
```

## Juvix Implementation

```juvix
-- Solver fee in Juvix
module SolverFee;

type Fee := mkFee : Nat -> Fee;

computeFee : Intent -> Solution -> Fee;
computeFee intent solution :=
  let value := solution-output-value solution in
  let bps := 30 in  -- 0.30%
  mkFee (value * bps / 10000);

type FeeDistribution :=
  mkDistribution : Fee -> Fee -> Fee -> FeeDistribution;

-- Fields: solver, validator, rebate

distribute : Fee -> FeeDistribution;
distribute (mkFee total) :=
  let solver := total * 60 / 100 in
  let validator := total * 30 / 100 in
  let rebate := total - solver - validator in
  mkDistribution (mkFee solver) (mkFee validator) (mkFee rebate);
```

## Integration with Anoma Intents

```python
def solve_with_fee(intent, solver):
    """
    Complete solving workflow with fee handling.

    GF(3) triad:
    - intent (+1): User creates
    - solver (0): Finds match
    - validator (-1): Verifies
    """
    # Solver finds optimal solution
    solution = solver.solve(intent)

    # Compute fee
    fee = compute_fee(intent, solution)

    # Attach fee to solution
    solution.solver_fee = fee
    solution.solver = solver.address

    return solution
```

## GF(3) Triads

```
solver-fee (0) ⊗ anoma-intents (+1) ⊗ intent-sink (-1) = 0 ✓
solver-fee (0) ⊗ polyglot-spi (+1) ⊗ dynamic-sufficiency (-1) = 0 ✓
solver-fee (0) ⊗ aptos-gf3-society (+1) ⊗ merkle-proof-validation (-1) = 0 ✓
```

---

**Skill Name**: solver-fee
**Type**: Fee Mechanism / Economic Coordination
**Trit**: 0 (ERGODIC - COORDINATOR)
**GF(3)**: Coordinates fee distribution between intent roles

## Cat# Integration

This skill maps to Cat# = Comod(P) as a bicomodule in the Prof home:

```
Trit: 0 (ERGODIC)
Home: Prof (profunctors/bimodules)
Poly Op: ⊗ (parallel composition)
Kan Role: Adj (adjunction bridge)
```

### GF(3) Naturality

The skill participates in triads where:
```
(-1) + (0) + (+1) ≡ 0 (mod 3)
```

This ensures compositional coherence in the Cat# equipment structure.

Overview

This skill implements solver fee mechanisms for intent-based coordination systems. It defines fee models, conservation rules, and distribution logic so solvers, validators, and intent creators are compensated consistently. The design enforces GF(3) fee conservation and supports percentage, gas-plus-premium, and auction-based fees.

How this skill works

The skill computes a solver fee for a proposed solution, attaches the fee and solver identity to the solution, and routes fee shares into a fee pool. Fee models include percentage-of-value, gas-plus-premium, and second-price auction variants. A GF(3)-aware distributor splits the collected fee among generator (rebate), coordinator (solver), and validator while preserving the total. Integration points expose compute_fee and distribute primitives for workflow composition.

When to use it

  • When solvers coordinate matches between intent creators and validators
  • When you need predictable, compositional fee splitting across roles
  • When incentivizing correct validation and efficient solving is required
  • When combining economic rules with intent-driven workflows
  • When supporting multiple fee strategies (percentage, gas-based, auction)

Best practices

  • Choose a fee model aligned with transaction characteristics: percentage for value-proportional, gas-plus-premium for compute-heavy operations, auction for competitive markets
  • Tune basis points and premiums based on observed solver behavior and network gas volatility
  • Enforce fee conservation checks to prevent leakage and ensure accounting balances
  • Record solver identity and fee attachments on solutions for auditability and dispute resolution
  • Simulate fee outcomes under typical workloads before deploying to production

Example use cases

  • Market matching where solvers propose order matches and earn a share of trade value
  • Cross-chain or routing solvers that must be paid for gas and coordination overhead
  • Open auction for solver selection where the winner pays the second-highest bid
  • Intent platforms that rebate a portion of fees back to intent creators to improve UX
  • Validator-rewarded workflows where a portion of fees funds verification operations

FAQ

How are fees split between roles?

Fees are split by a GF(3) distribution example: 60% solver, 30% validator, 10% rebate to generator, with sums conserved.

Which fee model should I pick?

Use PercentageFee for value-aligned payments, GasPlusPremium when gas dominates cost, and AuctionFee when you want competitive pricing and market-driven fees.

Does the skill prevent fee loss?

Yes. The distribution routine enforces that the shares sum to the original total and returns a conserved flag for accounting checks.