Agent Guide

Long-form guidance for agents, integrations, and API consumers.

ParaFi Tech

Blockchain infrastructure operator running validators on Solana, Ethereum, Avalanche, and Aptos. Free public API for staking data, network stats, and market prices. No API key required.

Base URL: https://parafi.tech/api

Start Here for Agents

Use the resource that matches your task:

NeedStart here
Short discovery indexhttps://parafi.tech/llms.txt
Rich retrieval-oriented contexthttps://parafi.tech/llms-full.txt
Machine-readable contracthttps://parafi.tech/openapi.json
Human API explorerhttps://parafi.tech/api-docs
Solana implementation exampleshttps://parafi.tech/solana/integration-guide

Best Starting Points

TaskBest first endpoints
Compare ParaFi validator vs networkGET /api/solana/validator-apy, GET /api/solana/network-apy, GET /api/solana/validator-active-stake
Track staking rewardsGET /api/solana/rewards/staker/{address}, GET /api/solana/rewards/epoch/current
Inspect current stake stateGET /api/solana/validator-stake, GET /api/solana/validator-delegators
Monitor live Solana conditionsGET /api/solana/sidecar-stats, GET /api/solana/compute-units
Query other supported networksGET /api/ethereum/network-stats, GET /api/avalanche/validators, GET /api/market/prices

Supported Workflows by Network

Solana

  • Evaluate validator APY, commission, active stake, and stake-account counts
  • Track rewards by staker, validator, or epoch
  • Query MEV rewards and network-health metrics
  • Follow staking and integration examples through web3.js, CLI, RPC, and gRPC docs

Ethereum

  • Query current network stats and real-time sidecar metrics
  • Use for market context and validator/network summaries, not wallet actions

Avalanche

  • Query ParaFi validator data and aggregate validator stats

Market

  • Query simple USD prices for BTC, ETH, SOL, and APT

Response Conventions

  • Public endpoints are read-only and do not require authentication
  • Most responses are JSON objects; some history endpoints return arrays
  • Large integer values may be returned as strings, especially on rewards routes
  • Freshness metadata may appear as cacheSource, fromCache, isStale, or lastUpdated
  • Epoch-based routes support current for the latest epoch when documented
  • The REST API is informational; staking transactions are performed on-chain, not through a ParaFi transaction API

Validator Identity

FieldValue
Validator IdentityparafiUS6h6oLhCFwhjvEmQJKw8pF1iXsxMJdTq46dS
Vote Accountpt1LsjkNwqCKdYYfc35ToDkqtEG9pswLTJNaMo8inft
Commission0%
RPC Endpointhttps://solana-rpc.parafi.tech
gRPC Endpointhttps://solana-rpc.parafi.tech:10443
Websiteparafi.tech/solana/staking

Stake SOL with ParaFi

Why Stake Here

  • 0% commission — you keep all rewards
  • APY includes both inflation rewards (~35% of total) and MEV rewards (~65% of total via Jito)
  • Check current APY: GET https://parafi.tech/api/solana/validator-apy
  • Check network average: GET https://parafi.tech/api/solana/network-apy

Stake via @solana/web3.js

npm install @solana/web3.js
import {
  Connection,
  Keypair,
  LAMPORTS_PER_SOL,
  StakeProgram,
  PublicKey,
  Transaction,
} from "@solana/web3.js";

const connection = new Connection("https://solana-rpc.parafi.tech");
const voteAccount = new PublicKey(
  "pt1LsjkNwqCKdYYfc35ToDkqtEG9pswLTJNaMo8inft"
);
const stakeAccount = Keypair.generate();

async function createAndDelegateStake(wallet: Keypair, amountInSOL: number) {
  const transaction = new Transaction();

  // 1. Create stake account
  transaction.add(
    StakeProgram.createAccount({
      fromPubkey: wallet.publicKey,
      stakePubkey: stakeAccount.publicKey,
      authorized: {
        staker: wallet.publicKey,
        withdrawer: wallet.publicKey,
      },
      lamports: amountInSOL * LAMPORTS_PER_SOL,
    })
  );

  // 2. Delegate to ParaFi validator
  transaction.add(
    StakeProgram.delegate({
      stakePubkey: stakeAccount.publicKey,
      authorizedPubkey: wallet.publicKey,
      votePubkey: voteAccount,
    })
  );

  const { blockhash } = await connection.getLatestBlockhash();
  transaction.recentBlockhash = blockhash;
  transaction.feePayer = wallet.publicKey;
  transaction.sign(wallet, stakeAccount);

  const signature = await connection.sendRawTransaction(
    transaction.serialize()
  );
  await connection.confirmTransaction(signature);
  return signature;
}

Stake via Solana CLI

# Configure RPC
solana config set --url https://solana-rpc.parafi.tech

# Check validator status
solana validators | grep pt1LsjkNwqCKdYYfc35ToDkqtEG9pswLTJNaMo8inft

# Create stake account and delegate (replace 100 with your amount in SOL)
solana create-stake-account stake-account.json 100
solana delegate-stake stake-account.json pt1LsjkNwqCKdYYfc35ToDkqtEG9pswLTJNaMo8inft

Unstake (Deactivate + Withdraw)

Unstaking takes one full epoch (~2-3 days). The stake must be deactivated first, then withdrawn after the cooldown.

# Deactivate stake
solana deactivate-stake <STAKE_ACCOUNT_ADDRESS>

# After cooldown completes (check with solana stake-account <ADDRESS>)
solana withdraw-stake <STAKE_ACCOUNT_ADDRESS> <RECIPIENT_ADDRESS> ALL
// Web3.js: Deactivate
const deactivateTx = StakeProgram.deactivate({
  stakePubkey: stakeAccountPubkey,
  authorizedPubkey: wallet.publicKey,
});

// Web3.js: Withdraw (after cooldown)
const withdrawTx = StakeProgram.withdraw({
  stakePubkey: stakeAccountPubkey,
  authorizedPubkey: wallet.publicKey,
  toPubkey: wallet.publicKey,
  lamports: stakeBalance,
});

Monitor Your Stake

# Check your delegator entry
curl "https://parafi.tech/api/solana/validator-delegators"

# Check rewards for your stake account
curl "https://parafi.tech/api/solana/rewards/staker/YOUR_STAKER_ADDRESS"

# Check rewards for a specific epoch
curl "https://parafi.tech/api/solana/rewards/epoch/current"

Staking Timing

  • Stake activates at the start of the next epoch after delegation
  • Each epoch is ~2-3 days (432,000 slots at ~400ms each)
  • Rewards accrue per epoch and are auto-compounded into the stake account balance
  • Unstaking (deactivation) also takes one epoch cooldown

Data API Reference

All endpoints return JSON. No authentication required. Most responses include cacheSource ("redis" or "fresh") and lastUpdated timestamp.

Solana

Validator APY

GET /api/solana/validator-apy

Returns ParaFi validator APY including inflation and MEV components.

ParamTypeDescription
epochintegerOverride epoch (default: current)
forcebooleanBypass cache

Response:

{
  "apy": 8.12,
  "apr": 7.81,
  "epoch": 750,
  "hasMevData": true,
  "inflationRewards": 2.84,
  "mevRewards": 5.28,
  "totalRewards": 8.12,
  "dataSource": "calculated",
  "lastUpdated": "2025-01-28T12:00:00.000Z"
}

Network APY

GET /api/solana/network-apy

Returns network-wide average APY across all validators.

Response:

{
  "apy": 7.45,
  "inflationAPY": 6.8,
  "mevAPY": 0.65,
  "averageCommission": 7.2,
  "stakingRatio": 65.4,
  "lastUpdated": "2025-01-28T12:00:00.000Z"
}

Active Stake

GET /api/solana/validator-active-stake

Returns validator's current active stake, commission, and vote status.

Response:

{
  "activeStake": 5200000000000,
  "activeStakeInSol": 5200.0,
  "commission": 0,
  "lastVote": 312000000,
  "epochVoteAccount": true,
  "delinquent": false,
  "lastUpdated": "2025-01-28T12:00:00.000Z"
}

Total Stake

GET /api/solana/validator-stake

Returns total stake breakdown including active, inactive, and delegator counts.

Response:

{
  "totalStake": 5500000000000,
  "totalStakeInSol": 5500.0,
  "totalStakeAccounts": 150,
  "activeStakeAccounts": 145,
  "delegatorCount": 120,
  "activeStake": 5200000000000,
  "inactiveStake": 300000000000,
  "lastUpdated": "2025-01-28T12:00:00.000Z"
}

Delegators

GET /api/solana/validator-delegators

Returns list of all delegators with their stake amounts.

Response keys: delegators, totalStake, totalStakeInSol, totalStakeAccounts, activeStakeAccounts, delegatorCount

Staker Rewards

GET /api/solana/rewards/staker/{address}

Returns reward history for a specific staker across epochs.

ParamTypeDescription
pageintegerPage number (default: 1)
limitintegerResults per page (default: 100, max: 500)
startEpochintegerFilter from epoch
endEpochintegerFilter to epoch
stakeAccountstringFilter by stake account

Response keys: stakerProfile, rewards, summary

Validator Rewards Distribution

GET /api/solana/rewards/validator/{voteAccount}

Returns reward distribution for all delegators of a validator.

ParamTypeDescription
pageintegerPage number
limitintegerResults per page
startEpochintegerFilter from epoch
endEpochintegerFilter to epoch

Response keys: validatorInfo, rewardsDistribution, performanceMetrics, summary

Epoch Rewards

GET /api/solana/rewards/epoch/{epochNumber}

Returns all delegator rewards for a specific epoch. Use current for the latest.

ParamTypeDescription
epochNumberstringEpoch number or "current"
pageintegerPage number
limitintegerResults per page (max: 500)
sortBystring"rewards", "staker", "validator", "stake"
sortOrderstring"asc" or "desc"
validatorVoteAccountstringFilter by validator

Response keys: epochInfo, rewardsData, statistics, dataQuality, summary

MEV Rewards

GET /api/solana/mev-rewards

Returns MEV rewards from Jito for a range of epochs.

ParamTypeRequiredDescription
startEpochintegerYesStart epoch
endEpochintegerYesEnd epoch

Response keys: epochs, rewards, metadata

Supply

GET /api/solana/supply

Returns SOL supply breakdown (circulating, non-circulating, total). Values in both lamports and SOL.

Network Validators

GET /api/solana/network-validators

Returns active/delinquent validator counts, RPC node count.

Compute Units

GET /api/solana/compute-units

Returns current block compute units utilization.

ParamTypeDescription
slotintegerSpecific slot (default: latest)

Response:

{
  "slot": 312000000,
  "computeUnitsConsumed": 35000000,
  "computeUnitsTotal": 48000000,
  "utilizationPercentage": 72.9,
  "timestamp": "2025-01-28T12:00:00.000Z"
}

Compute Units History

GET /api/solana/compute-units/history

Returns time-series compute utilization data.

ParamTypeDescription
intervalintegerRollup interval: 1, 5, 15, or 60 minutes
windowintegerNumber of data points (max: 1440)

Response: Array of [timestamp, utilizationPercentage] tuples.

Network Stats History

GET /api/solana/network-stats/history

Historical network performance (TPS, block time, compute utilization).

ParamTypeDescription
granularitystring"hourly" or "daily"
daysintegerNumber of days (max: 365)
hoursintegerNumber of hours (max: 168)

Leader Slots

GET /api/solana/leader-slots

Returns leader slot stats (blocks produced, missed, skip rate).

ParamTypeDescription
epochintegerSpecific epoch

Sidecar Stats

GET /api/solana/sidecar-stats

Real-time network performance (TPS, block time, compute units).

ParamTypeDescription
countintegerData points (1-200)
smoothintegerSmoothing window (1-25)

Ethereum

Network Stats

GET /api/ethereum/network-stats

Returns Ethereum network statistics: gas prices, validators, staked ETH, supply.

Response:

{
  "data": {
    "latestBlock": 19500000,
    "gasPrice": { "low": 15, "medium": 20, "high": 30 },
    "baseFee": 12.5,
    "blockTime": 12.1,
    "activeValidators": 950000,
    "totalStakedETH": 32000000,
    "averageStakedPerValidator": 33.7,
    "currentEpoch": 290000,
    "totalETHSupply": 120000000
  },
  "lastUpdated": 1710000000000,
  "fromCache": true
}

Sidecar Stats

GET /api/ethereum/sidecar-stats

Real-time Ethereum network performance metrics. Same params as Solana sidecar-stats.

Avalanche

Validators

GET /api/avalanche/validators

Returns Avalanche validator data. Supports filtering by node ID.

ParamTypeDescription
nodeIDstringSingle node ID
nodeIDsstringComma-separated node IDs
allbooleanReturn all ParaFi validators

Response keys: validators, totalValidators, aggregatedStats, metadata

Market

Prices

GET /api/market/prices

Returns latest token prices from CoinGecko (cached 2 minutes).

Response:

{
  "data": {
    "bitcoin": { "usd": 65000 },
    "ethereum": { "usd": 3200 },
    "solana": { "usd": 150 },
    "aptos": { "usd": 9 }
  },
  "lastUpdated": 1710000000000,
  "fromCache": true
}

Interpretation Guide

  • APY = annualized yield combining inflation rewards + MEV (Jito) rewards. ParaFi charges 0% commission on both.
  • Inflation rewards (~35% of total yield) come from Solana's inflation schedule.
  • MEV rewards (~65% of total yield) come from Jito block engine tips shared with stakers.
  • Epoch = ~2-3 days. Rewards are calculated per epoch. Stake activates/deactivates at epoch boundaries.
  • Lamports = smallest SOL unit. 1 SOL = 1,000,000,000 lamports.
  • Rewards auto-compound — they're added directly to the stake account balance each epoch.
  • Balance-difference method — rewards are calculated as current_balance - previous_balance per epoch, the most accurate on-chain method.

Sample Agent Workflows

Check if ParaFi is a good validator to stake with

# Get ParaFi APY
curl https://parafi.tech/api/solana/validator-apy

# Get network average
curl https://parafi.tech/api/solana/network-apy

# Compare: if validator APY > network APY, above average
# Check commission: should be 0
# Check delinquent: should be false
curl https://parafi.tech/api/solana/validator-active-stake

Track rewards for a staker

# Get all rewards for a wallet address
curl "https://parafi.tech/api/solana/rewards/staker/YOUR_ADDRESS?limit=10"

# Get rewards for a specific epoch
curl "https://parafi.tech/api/solana/rewards/epoch/750"

Monitor network health

# Real-time TPS and block time
curl "https://parafi.tech/api/solana/sidecar-stats?count=10"

# Compute utilization
curl https://parafi.tech/api/solana/compute-units

# Historical trends
curl "https://parafi.tech/api/solana/network-stats/history?granularity=hourly&hours=24"

Get a price quote

curl https://parafi.tech/api/market/prices
# Returns SOL, ETH, BTC, APT prices in USD