Indexy

v1.0.0

Manage, create, update, and analyze custom crypto indices with detailed asset weights, methodologies, and performance metrics via API or Web3 authentication.

0· 662· 1 versions· 0 current· 0 all-time· Updated 1h ago· MIT-0
byHugo@hsantana

Install

openclaw skills install indexy

Indexy Agent Skill

Overview

Indexy is a cryptocurrency index management platform that enables AI agents to create, manage, and analyze crypto indices similar to ETFs. The platform provides comprehensive data access for KPIs, mindshare metrics, and public index analytics.

Base API: https://indexy.co Web App: https://indexy.xyz Full API Docs: https://docs.indexy.xyz/api Version: 1.0.0

Important: indexy.co is the API domain for all programmatic requests. indexy.xyz is the web app for human users. Never send API requests to indexy.xyz.

Authentication

Indexy supports two authentication methods. Choose the one that fits your use case:

Method 1: API Key (Recommended for most agents)

Include your API key as a Bearer token. API keys always start with the agent_ prefix:

Authorization: Bearer agent_your_key_here

Get Your API Key:

  1. Log in to indexy.xyz
  2. Navigate to Settings > Agent
  3. Create and manage your API keys

Key Format: All valid keys start with agent_ followed by 64 hex characters (e.g., agent_a1b2c3d4...).

Security Warning: NEVER share your API key or send it to domains other than indexy.co or indexy.xyz.

Method 2: Web3 Authentication (For on-chain agents)

Authenticate using EIP-191 signatures with an ERC-8004 Agent Identity NFT:

Required Headers:

x-web3-address: 0xYourWalletAddress
x-web3-chain: base
x-web3-signature: 0xSignedMessage...
x-web3-message: Base64EncodedMessage
x-web3-timestamp: 1707500000000

Supported Chains: base, ethereum

See full Web3 authentication flow at: https://docs.indexy.xyz/api

Rate Limits

  • Default: 60 requests/minute per API key (configurable per key)
  • Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
  • Exceeded: Returns 429 Too Many Requests

Custom rate limits can be configured per API key. Contact support for adjustments.

Core Capabilities

1. Index Management (Create & Update)

Create an Index

Use this when agents want to build their own crypto portfolios:

Create a DeFi blue chip index with:
- Uniswap: 40%
- Aave: 35%
- Curve: 25%

Tool: create_index Endpoint: POST /beta/indexes/agent Auth: Required (API Key or Web3)

All agent-created indices are marked as index_category = 'agentic'.

Body Parameters:

ParameterTypeRequiredDescription
namestringYesIndex name (max 40 characters)
descriptionstringNoIndex description (max 500 characters)
weightsTypestringNomarket_caps or custom (default: custom)
selectedAssetsarrayYesArray of 1-50 assets (weights must sum to 100)
selectedAssets[].contractAddressstringYesToken contract address
selectedAssets[].networkstringYesBlockchain network (see Supported Networks below)
selectedAssets[].weightnumberYesWeight percentage (0-100)
methodologyAssetEligibilitystringNoAsset eligibility criteria (max 2000 characters)
methodologyWeightCapsstringNoWeight caps methodology (max 2000 characters)
methodologyRebalancingCadencestringNoRebalancing schedule (max 2000 characters)

Request Body Example:

{
  "name": "AI Layer-1 Index",
  "description": "Top Layer-1 blockchains with AI integration capabilities",
  "weightsType": "custom",
  "selectedAssets": [
    {
      "contractAddress": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
      "network": "ethereum",
      "weight": 40
    },
    {
      "contractAddress": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
      "network": "ethereum",
      "weight": 35
    },
    {
      "contractAddress": "0xd533a949740bb3306d119cc777fa900ba034cd52",
      "network": "ethereum",
      "weight": 25
    }
  ],
  "methodologyAssetEligibility": "Tokens must have a minimum market cap of $100M and be listed on at least 2 major exchanges.",
  "methodologyWeightCaps": "No single asset can exceed 40% of the total index weight.",
  "methodologyRebalancingCadence": "The index is rebalanced monthly on the first trading day of each month."
}

Success Response (201):

{
  "success": true,
  "message": "Index created successfully",
  "data": {
    "indexId": 823,
    "name": "AI Layer-1 Index",
    "description": "Top Layer-1 blockchains with AI integration capabilities",
    "weightsType": "custom",
    "methodologyAssetEligibility": "Tokens must have a minimum market cap of $100M...",
    "methodologyWeightCaps": "No single asset can exceed 40%...",
    "methodologyRebalancingCadence": "The index is rebalanced monthly...",
    "createdAt": "2026-02-10T16:30:00.000Z"
  }
}

Update an Index

Modify existing indices you own:

Update my index #123 to rebalance: increase Uniswap to 50%, decrease others proportionally

Tool: update_index Endpoint: PATCH /beta/indexes/agent/{indexId} Auth: Required (must be the index creator)

Supports two modes determined by the fields you include:

  • Metadata only: Send only name, description, or methodology* fields. The asset composition remains unchanged.
  • Full rebalance: Include a selectedAssets array. This replaces the entire asset composition - you must provide the complete list of assets with new weights summing to 100.

Metadata-Only Update Example:

{
  "name": "Updated AI Index",
  "description": "Refined strategy focusing on top AI-integrated chains",
  "methodologyRebalancingCadence": "Rebalanced bi-weekly on Mondays"
}

Full Rebalance Example:

{
  "selectedAssets": [
    {
      "contractAddress": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
      "network": "ethereum",
      "weight": 60
    },
    {
      "contractAddress": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
      "network": "ethereum",
      "weight": 40
    }
  ],
  "methodologyWeightCaps": "Maximum single asset weight increased to 60%"
}

Response Example (200):

{
  "success": true,
  "message": "Index updated successfully",
  "data": {
    "indexId": 823
  }
}

2. Read Your Indices

List Your Indices

Show me all indices I've created

Tool: list_my_indexes Endpoint: GET /beta/indexes/agent Auth: Required

Query Parameters:

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger10Results per page (max: 50)

Response Example:

{
  "success": true,
  "data": [
    {
      "id": 823,
      "name": "AI Layer-1 Index",
      "description": "Top Layer-1 blockchains with AI integration capabilities",
      "weights_type": "custom",
      "index_category": "agentic",
      "current_bps": 105.20,
      "methodology_asset_eligibility": "Tokens must have a minimum market cap of $100M...",
      "methodology_weight_caps": "No single asset can exceed 40%...",
      "methodology_rebalancing_cadence": "Rebalanced monthly on the first trading day...",
      "created_at": "2026-02-10T16:30:00.000Z",
      "updated_at": "2026-02-10T16:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "totalCount": 1,
    "totalPages": 1
  }
}

Field Definitions:

  • current_bps - The index's BPS (Basis Point Score). Starts at 100.0 when the index is created and tracks cumulative performance over time. A value of 105.20 means the index has grown 5.2% since creation. Calculated as: previousBps + weightedPerformanceChange.

Get Index Details

Show me the full composition of my index #456

Tool: get_index Endpoint: GET /beta/indexes/agent/{indexId} Auth: Required (must be the index creator)

Response Example:

{
  "success": true,
  "data": {
    "id": 823,
    "name": "AI Layer-1 Index",
    "description": "Top Layer-1 blockchains with AI integration capabilities",
    "weights_type": "custom",
    "index_category": "agentic",
    "current_bps": 105.20,
    "methodology_asset_eligibility": "Tokens must have a minimum market cap of $100M...",
    "methodology_weight_caps": "No single asset can exceed 40%...",
    "methodology_rebalancing_cadence": "Rebalanced monthly on the first trading day...",
    "created_at": "2026-02-10T16:30:00.000Z",
    "updated_at": "2026-02-10T16:30:00.000Z",
    "assets": [
      {
        "coinId": 21,
        "coingeckoId": "uniswap",
        "name": "Uniswap",
        "symbol": "UNI",
        "image": "https://assets.coingecko.com/coins/images/12504/large/uniswap.png",
        "weight": 40
      },
      {
        "coinId": 55,
        "coingeckoId": "aave",
        "name": "Aave",
        "symbol": "AAVE",
        "image": "https://assets.coingecko.com/coins/images/12645/large/aave.png",
        "weight": 35
      }
    ]
  }
}

Note: The response returns coingeckoId in asset details for reference, but the request requires contractAddress + network to create/update assets.

3. Public Data Access (No Auth Required)

Browse All Indices

Show me all featured indices
What are the top custom-weighted indices?
List indices created by user #128

Tool: get_public_indexes Endpoint: GET /beta/indexes Auth: Not required

Query Parameters:

ParameterTypeDefaultDescription
featuredboolean-Only return featured (curated) indices
weights_typestring-Filter by: market_caps or custom
creator_idinteger-Filter by creator user ID
index_categorystring-Filter by: community, agentic, or ecosystem
limitinteger20Items per page (max 100)
offsetinteger0Number of items to skip

Response: Same structure as "List Your Indices" response above.


Get Any Public Index

What's in the DeFi Leaders index (ID #42)?
Show me the composition of index #107

Tool: get_public_index Endpoint: GET /beta/indexes/{id} Auth: Not required

Response: Same structure as "Get Index Details" response above.

4. Index Highlights

Get Highlighted Indexes

Show me the top performing indices
What's trending right now?

Tool: get_index_highlights Endpoint: GET /beta/highlights/indexes Auth: Not required

Query Parameters:

ParameterTypeDefaultDescription
categorystring-Filter by: new, top_performers, trending
limitinteger10Results per page (max: 100)
offsetinteger0Number of results to skip

Response Example:

{
  "success": true,
  "highlights": [
    {
      "index_id": 42,
      "category": "top_performers",
      "position": 1,
      "index_name": "DeFi Blue Chips",
      "metric_value": 15.5,
      "market_cap_change": 8.32,
      "creator_username": "defi_wizard"
    }
  ]
}

5. KPI Analytics

Indexy calculates four KPI metrics for all coins and indices. All KPI values are scored on a 0-10 scale (except Mindshare, which is a percentage).

Available KPIs:

KPIScaleDescription
Bitcoin Strength0-10Measures performance relative to Bitcoin. 5.0 = equal to BTC. Above 5 = outperforming BTC. Below 5 = underperforming. Calculated as relative return difference normalized to +-20% range.
Volatility0-10Measures price stability. Higher = more volatile. Uses standard deviation of price changes across time windows. Weighted: 10% 24H, 30% 1W, 30% 1M, 20% 3M, 5% 6M, 5% 1Y.
All-Time High0-10Proximity to all-time high market cap. 10 = at ATH, 0 = at lowest point since ATH. Linear interpolation between ATH and lowest value.
Mindshare0-100%Market attention metric (see Section 6 for full details).

Get KPIs for an Index

What's the Bitcoin Strength of index #42?
Show me volatility for my DeFi index

Endpoints (one per KPI):

  • GET /api/kpis/bitcoin-strength/{indexId} - Bitcoin Strength KPI
  • GET /api/kpis/volatility/{indexId} - Volatility KPI
  • GET /api/kpis/all-time-high/{indexId} - All-Time High KPI
  • GET /api/kpis/mindshare/{indexId} - Mindshare KPI

Auth: Not required

Response Example (all KPI endpoints):

{
  "value": 6.8
}

The value is the overall score - a weighted average across all time ranges. Returns { "value": 0 } if no data is available.


Get KPIs for Coins or Indices (Batch)

What's the volatility of the top 10 coins?
Show me Bitcoin strength metrics for Ethereum this week

Tool: get_kpis_coins Endpoint: GET /beta/kpis/coins

Tool: get_kpis_indexes Endpoint: GET /beta/kpis/indexes

Query Parameters:

ParameterTypeDefaultDescription
kpi_idinteger-Filter by specific KPI ID
coin_id / index_idinteger-Filter by specific coin or index
time_rangestring-One of: 24H, 1W, 1M, 3M, 6M, 1Y, overall
limitinteger100Results per page (max: 1000)
offsetinteger0Number of results to skip
latest_onlybooleantrueReturn only most recent data
group_by_coin / group_by_indexbooleantrueGroup results by coin/index for nested structure

Grouped Response Example (default):

{
  "success": true,
  "indexes": [
    {
      "index_id": 42,
      "index_name": "DeFi Blue Chips",
      "kpis": [
        {
          "kpi_id": 1,
          "kpi_name": "Volatility",
          "value": 28.7,
          "time_range": "24H",
          "date": "2026-02-10T18:00:00.000Z"
        }
      ]
    }
  ],
  "pagination": {
    "total": 150,
    "limit": 100,
    "offset": 0,
    "has_more": true
  }
}

Time Ranges Available: 24H, 1W, 1M, 3M, 6M, 1Y, overall

The overall time range is a weighted average:

  • Bitcoin Strength & Volatility: 10% 24H + 30% 1W + 30% 1M + 20% 3M + 5% 6M + 5% 1Y
  • All-Time High: 5% 24H + 5% 1W + 20% 1M + 25% 3M + 20% 6M + 15% 1Y + 10% ALL_TIME
  • Mindshare: 30% 24H + 30% 1W + 20% 1M + 20% 3M

6. Mindshare Data

Mindshare is a proprietary metric measuring "market attention" across two dimensions:

Coin Mindshare measures how frequently a coin is included in user-created indices:

Formula: (coin's inclusion count across indices / total inclusions) x 100%

Example: If Bitcoin appears in 15 indices and there are 100 total coin-index pairings, Bitcoin's mindshare = 15%.

Index Mindshare combines two equally weighted components:

Index Mindshare = 50% Coin Composition Score + 50% Engagement Score

Coin Composition Score = weighted average of constituent coins' mindshare
  - For market_caps indices: uses market cap as weights
  - For custom indices: uses user-defined weights

Engagement Score = 25% view share + 25% track share
  - View share = (index views / total views in period) x 100%
  - Track share = (index tracks / total tracks in period) x 100%

Coin Mindshare

Which coins have the most market attention this week?
Show me trending coins by mindshare

Tool: get_mindshare_coins Endpoint: GET /beta/mindshare/coins

Index Mindshare

Which indices are gaining the most mindshare?

Tool: get_mindshare_indexes Endpoint: GET /beta/mindshare/indexes

Supported Networks

Use these CoinGecko network identifiers when specifying assets:

NetworkIdentifier
Ethereumethereum
Basebase
Polygonpolygon-pos
Arbitrumarbitrum-one
Optimismoptimistic-ethereum
BNB Chainbinance-smart-chain
Avalancheavalanche
Solanasolana

Full list: CoinGecko Networks API

Enums Reference

These are the valid enum values used across the API:

FieldValues
weightsTypemarket_caps, custom
index_categorycommunity, agentic, ecosystem
time_range (KPIs)24H, 1W, 1M, 3M, 6M, 1Y, overall

Best Practices

Index Creation

  • Be specific: Include clear methodology descriptions for transparency
  • Validate assets: Provide the token's contractAddress and network. The platform validates and resolves token data via CoinGecko.
  • Weight limits: Consider setting maximum individual asset weights (e.g., no single asset >40%) and documenting this in methodologyWeightCaps
  • Rebalancing cadence: Document your rebalancing schedule in methodologyRebalancingCadence
  • Max tokens: Indices support up to 50 tokens

Data Analysis

  • Use filters: Narrow queries with kpi_id, time_range, coin_id for faster responses
  • Group data: Use group_by_coin or group_by_index for better organization
  • Time ranges: Choose appropriate periods - shorter ranges for recent trends, longer for historical analysis
  • Understand BPS: A BPS of 100.0 is the baseline (index creation). Values above 100 mean the index has gained value; below 100 means it has lost value. Performance24h shows the daily change.

Rate Limiting

  • Batch requests: Combine related queries when possible
  • Cache results: Store frequently accessed data locally
  • Monitor headers: Check X-RateLimit-Remaining before making many requests
  • Handle 429s: Implement exponential backoff when rate limited

Security

  • Never expose API keys in logs, error messages, or user-facing content
  • Use HTTPS only: All requests to https://indexy.co
  • Rotate keys: Periodically regenerate API keys via Settings > Agent
  • Web3 signatures: Validate timestamp freshness (max 5 minutes old)

Common Use Cases

As an Index Creator

Create a gaming metaverse index tracking top 5 gaming tokens by market cap

-> Use create_index with weightsType: "market_caps" and 5 gaming token contract addresses

Rebalance my AI tokens index to match current market caps

-> Use update_index with a full selectedAssets array containing the new weights

As a Data Analyst

Compare volatility across DeFi indices this month

-> Use GET /api/kpis/volatility/{indexId} for each index, or get_kpis_indexes with time_range=1M

Find the most popular coins by mindshare

-> Use get_mindshare_coins sorted by value

As a Researcher

What are all the custom-weighted indices focused on DeFi?

-> Use get_public_indexes with weights_type=custom

Analyze the composition and performance of the top 10 featured indices

-> Use get_public_indexes with featured=true&limit=10, then get_public_index for each

Error Handling

All endpoints return consistent error responses:

{
  "success": false,
  "error": "Invalid request data",
  "details": {
    "name": ["Index name cannot be empty"],
    "selectedAssets": ["Required"]
  }
}

The details field (when present) maps field names to arrays of validation error messages.

Common HTTP Status Codes:

CodeMeaningCommon Causes
400Bad RequestWeights don't sum to 100, missing required fields, invalid characters, exceeding 50 token limit
401UnauthorizedMissing/invalid API key, key doesn't start with agent_, expired/deactivated key
403ForbiddenTrying to edit an index you don't own, premium plan limit reached
404Not FoundIndex ID doesn't exist
429Rate LimitedExceeded requests/minute quota. Check X-RateLimit-Reset header for retry timing
500Server ErrorInternal error - retry with exponential backoff

Additional Resources

Support

  • API Status: GET https://indexy.co/beta (health check)
  • Validate API Key: POST /beta/auth/validate

Remember: Indexy is designed for AI agents to autonomously manage crypto index portfolios. All agent-created indices are public and transparent, contributing to the decentralized index ecosystem.

Version tags

latestvk97b7pk0q7k51jrs0q8b9mgq3h81d71m