> ## Documentation Index
> Fetch the complete documentation index at: https://docs.credprotocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mock Aggregated Score

> Get a mock aggregated credit score for multiple addresses

## Overview

Returns a mock aggregated credit score combining multiple addresses into a single score. Use this to test multi-wallet scoring scenarios like multi-signature wallets or joint accounts.

<Warning>
  **SANDBOX**: This endpoint returns mock data for testing only. Do not use for production decisions.
</Warning>

## Query Parameters

<ParamField query="address" type="string" required>
  Comma-separated list of Ethereum addresses (e.g., `address=0x123...,0x456...,0x789...`)
</ParamField>

## Response

<ResponseField name="address" type="array">
  Array of validated Ethereum addresses
</ResponseField>

<ResponseField name="score" type="integer">
  Mock aggregated credit score (mean of individual mock scores)
</ResponseField>

<ResponseField name="decile" type="integer">
  Aggregated score decile from 1 to 10
</ResponseField>

<ResponseField name="range" type="string">
  Score range: `low`, `fair`, `good`, `very_good`, or `excellent`
</ResponseField>

<ResponseField name="model_version" type="string">
  Always returns `andromeda_1.0`
</ResponseField>

## Mock Aggregation

The sandbox calculates the aggregated score as:

1. Generate deterministic mock score for each address
2. Calculate the mean of all individual scores
3. Derive decile and range from the aggregated score

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.credprotocol.com/api/v2/sandbox/score/?address=0x1111111111111111111111111111111111111111,0x2222222222222222222222222222222222222222" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const addresses = [
    '0x1111111111111111111111111111111111111111',
    '0x2222222222222222222222222222222222222222'
  ];

  const response = await fetch(
    `https://api.credprotocol.com/api/v2/sandbox/score/?address=${addresses.join(',')}`,
    {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY'
      }
    }
  );

  const data = await response.json();
  console.log(`Aggregated score: ${data.score}`);
  ```

  ```python Python theme={null}
  import requests

  addresses = [
      '0x1111111111111111111111111111111111111111',
      '0x2222222222222222222222222222222222222222'
  ]

  response = requests.get(
      'https://api.credprotocol.com/api/v2/sandbox/score/',
      params={'address': ','.join(addresses)},
      headers={'Authorization': 'Bearer YOUR_API_KEY'}
  )

  data = response.json()
  print(f"Aggregated score: {data['score']}")
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "address": [
      "0x1111111111111111111111111111111111111111",
      "0x2222222222222222222222222222222222222222"
    ],
    "score": 745,
    "decile": 8,
    "range": "good",
    "model_version": "andromeda_1.0",
    "timestamp": "2024-01-15T10:30:00Z"
  }
  ```

  ```json 400 theme={null}
  {
    "error": "No valid addresses provided",
    "status_code": 400
  }
  ```
</ResponseExample>

## Performance

* **Response Time**: Instant (no blockchain queries)
* **Quota**: Does not count against your API quota
