B70
Developer APIREST reference

Block70 API

Integrate signals, market data, opportunities, and portfolio insights. All routes below are under /api/v1/dev and require an API key per request.

Authentication

Every request

Send your secret key in the X-API-Key header. Keys are created in the developer dashboard; rate limits apply by plan.

Header
X-API-Key: bk70_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

401

Missing or invalid key

403

Wrong scopes or IP not allowed

429

Daily rate limit exceeded

Signals(3)

GET/signals

List signals

Paginated list of signals with optional filters by chain, signal type, or token symbol/address.

Query parameters

Example response
[
  {
    "id": 1,
    "token_symbol": "ETH",
    "token_address": "0x…",
    "chain": "ethereum",
    "signal_type": "wallet",
    "confidence_score": 0.82,
    "signal_strength": 0.71,
    "title": "Accumulation detected",
    "created_at": "2026-01-15T12:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/signals?chain=ethereum&signal_type=wallet&token=ETH&limit=100&offset=0"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/signals/latest

Latest signals

Most recent signals, sorted by created_at descending.

Query parameters

Example response
[
  {
    "id": 2,
    "token_symbol": "BTC",
    "signal_type": "radar",
    "confidence_score": 0.75,
    "created_at": "2026-01-15T11:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/signals/latest?limit=50"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/signals/{token}

Signals for token

All signals matching a token symbol or address.

Path parameters

Query parameters

Example response
[
  {
    "id": 3,
    "token_symbol": "ETH",
    "signal_type": "wallet",
    "confidence_score": 0.8,
    "created_at": "2026-01-15T10:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/signals/ETH?limit=100"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

Wallets(3)

GET/wallets

Wallet leaderboard

Smart wallets ordered by average ROI.

Query parameters

Example response
[
  {
    "wallet_address": "0xabc…",
    "win_rate": 0.62,
    "average_roi": 12.4,
    "total_profit_usd": 50000
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/wallets?limit=100"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/wallets/{address}

Wallet profile

Single wallet profile by address.

Path parameters

Example response
{
  "wallet_address": "0x1234…",
  "win_rate": 0.55,
  "average_roi": 8.2,
  "total_profit_usd": 12000
}
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/wallets/0x1234567890123456789012345678901234567890"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/wallets/{address}/transactions

Wallet activity

Recent wallet-type opportunities linked to the address.

Path parameters

Query parameters

Example response
[
  {
    "id": 10,
    "title": "Whale rotation",
    "type": "wallet",
    "asset_symbol": "0x1234…",
    "total_score": 88.5,
    "detected_at": "2026-01-14T09:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/wallets/0x1234567890123456789012345678901234567890/transactions?limit=50"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

Opportunities(2)

GET/opportunities

List opportunities

Active opportunities ranked by total score.

Query parameters

Example response
[
  {
    "id": 100,
    "title": "Cross-DEX arb",
    "type": "arbitrage",
    "chain": "ethereum",
    "total_score": 92,
    "status": "active"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/opportunities?type=arbitrage&chain=ethereum&limit=100"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/opportunities/{id}

Get opportunity

Single opportunity by numeric ID.

Path parameters

Example response
{
  "id": 100,
  "title": "Cross-DEX arb",
  "type": "arbitrage",
  "status": "active",
  "total_score": 92
}
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/opportunities/100"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

Market(4)

GET/market/prices

Market prices

Recent price snapshots joined with coin metadata (deduped by coin).

Query parameters

Example response
[
  {
    "symbol": "BTC",
    "price": 97500.12,
    "market_cap": 1900000000000,
    "volume_24h": 25000000000,
    "price_change_24h": 1.2,
    "timestamp": "2026-01-15T12:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/market/prices?limit=100"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/market/gainers

Top gainers

Largest positive 24h price changes.

Query parameters

Example response
[
  {
    "symbol": "XYZ",
    "price": 0.42,
    "price_change_24h": 18.5
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/market/gainers?limit=20"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/market/losers

Top losers

Largest negative 24h price changes.

Query parameters

Example response
[
  {
    "symbol": "ABC",
    "price": 1.05,
    "price_change_24h": -9.2
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/market/losers?limit=20"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

Airdrops(3)

GET/airdrops

List airdrops

Active airdrop opportunities.

Example response
[
  {
    "id": 200,
    "title": "LayerZero drop",
    "type": "airdrop",
    "total_score": 80
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/airdrops"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/airdrops/upcoming

Upcoming airdrops

Recently created airdrop opportunities.

Query parameters

Example response
[
  {
    "id": 201,
    "title": "Protocol X",
    "type": "airdrop"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/airdrops/upcoming?limit=20"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/airdrops/active

Active airdrops

Active airdrops sorted by score.

Example response
[
  {
    "id": 200,
    "title": "LayerZero drop",
    "type": "airdrop"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/airdrops/active"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

Strategies(3)

GET/strategiesTrading scope

Your strategies

Trading strategies owned by the API key’s user.

Example response
[
  {
    "id": 1,
    "strategy_name": "Momentum",
    "description": "High-confidence signals",
    "is_public": false,
    "created_at": "2026-01-01T00:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/strategies"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/strategies/backtestsTrading scope

Strategy backtests

Recent backtest rows for your strategies.

Example response
[
  {
    "strategy_id": 1,
    "strategy_name": "Momentum",
    "total_trades": 12,
    "win_rate": 0.58,
    "average_profit": 2.1,
    "max_drawdown": 4.2,
    "created_at": "2026-01-10T00:00:00+00:00"
  }
]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/strategies/backtests"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/strategies/{id}Trading scope

Get strategy

Full strategy detail for an ID you own.

Path parameters

Example response
{
  "id": 1,
  "strategy_name": "Momentum",
  "description": "…",
  "entry_rules": null,
  "exit_rules": null,
  "is_public": false,
  "created_at": "2026-01-01T00:00:00+00:00"
}
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/strategies/1"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

Portfolio(3)

GET/portfolioTrading scope

Portfolio summary

Primary portfolio for the authenticated user.

Example response
{
  "portfolio": {
    "id": 1,
    "user_id": 42,
    "total_value_usd": 10000
  }
}
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/portfolio"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/portfolio/tokensTrading scope

Portfolio holdings

Token balances in the user portfolio.

Example response
[]
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/portfolio/tokens"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.

GET/portfolio/performanceTrading scope

Portfolio performance

Aggregated performance and value metrics.

Example response
{
  "total_value_usd": 10000,
  "total_profit_loss": 450.25
}
Terminal
curl -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://api.example.com/api/v1/dev/portfolio/performance"

Replace YOUR_API_KEY with a key from API keys. Base URL in snippets uses NEXT_PUBLIC_API_BASE_URL when set.