311 lines
6.7 KiB
YAML
311 lines
6.7 KiB
YAML
|
|
openapi: 3.0.0
|
||
|
|
info:
|
||
|
|
title: SolaceScanScout API
|
||
|
|
version: 1.0.0
|
||
|
|
description: |
|
||
|
|
SolaceScanScout - The Defi Oracle Meta Explorer API
|
||
|
|
|
||
|
|
Comprehensive blockchain explorer API for ChainID 138 with cross-chain bridge monitoring,
|
||
|
|
WETH utilities, and real-time transaction tracking.
|
||
|
|
contact:
|
||
|
|
name: SolaceScanScout Support
|
||
|
|
url: https://explorer.d-bis.org
|
||
|
|
license:
|
||
|
|
name: MIT
|
||
|
|
url: https://opensource.org/licenses/MIT
|
||
|
|
|
||
|
|
servers:
|
||
|
|
- url: https://explorer.d-bis.org/api
|
||
|
|
description: Production server
|
||
|
|
- url: http://localhost:8080/api
|
||
|
|
description: Local development server
|
||
|
|
|
||
|
|
tags:
|
||
|
|
- name: Blocks
|
||
|
|
description: Block information and queries
|
||
|
|
- name: Transactions
|
||
|
|
description: Transaction information and queries
|
||
|
|
- name: Addresses
|
||
|
|
description: Address information and balances
|
||
|
|
- name: Search
|
||
|
|
description: Unified search across blocks, transactions, and addresses
|
||
|
|
- name: Health
|
||
|
|
description: Health check and status endpoints
|
||
|
|
|
||
|
|
paths:
|
||
|
|
/v1/blocks:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Blocks
|
||
|
|
summary: List blocks
|
||
|
|
description: Get a paginated list of blocks
|
||
|
|
parameters:
|
||
|
|
- name: page
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
default: 1
|
||
|
|
minimum: 1
|
||
|
|
- name: page_size
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
default: 20
|
||
|
|
minimum: 1
|
||
|
|
maximum: 100
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: List of blocks
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
data:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: '#/components/schemas/Block'
|
||
|
|
meta:
|
||
|
|
$ref: '#/components/schemas/PaginationMeta'
|
||
|
|
|
||
|
|
/v1/blocks/{chain_id}/{number}:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Blocks
|
||
|
|
summary: Get block by number
|
||
|
|
parameters:
|
||
|
|
- name: chain_id
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
example: 138
|
||
|
|
- name: number
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Block details
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
data:
|
||
|
|
$ref: '#/components/schemas/Block'
|
||
|
|
'404':
|
||
|
|
description: Block not found
|
||
|
|
'400':
|
||
|
|
description: Invalid request
|
||
|
|
|
||
|
|
/v1/transactions:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Transactions
|
||
|
|
summary: List transactions
|
||
|
|
parameters:
|
||
|
|
- name: page
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
default: 1
|
||
|
|
- name: page_size
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
default: 20
|
||
|
|
- name: block_number
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
- name: from_address
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
- name: to_address
|
||
|
|
in: query
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: List of transactions
|
||
|
|
|
||
|
|
/v1/transactions/{chain_id}/{hash}:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Transactions
|
||
|
|
summary: Get transaction by hash
|
||
|
|
parameters:
|
||
|
|
- name: chain_id
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
- name: hash
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
pattern: '^0x[a-fA-F0-9]{64}$'
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Transaction details
|
||
|
|
'404':
|
||
|
|
description: Transaction not found
|
||
|
|
|
||
|
|
/v1/addresses/{chain_id}/{address}:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Addresses
|
||
|
|
summary: Get address information
|
||
|
|
parameters:
|
||
|
|
- name: chain_id
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: integer
|
||
|
|
- name: address
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
pattern: '^0x[a-fA-F0-9]{40}$'
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Address information
|
||
|
|
|
||
|
|
/v1/search:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Search
|
||
|
|
summary: Unified search
|
||
|
|
parameters:
|
||
|
|
- name: q
|
||
|
|
in: query
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Search results
|
||
|
|
|
||
|
|
/health:
|
||
|
|
get:
|
||
|
|
tags:
|
||
|
|
- Health
|
||
|
|
summary: Health check
|
||
|
|
responses:
|
||
|
|
'200':
|
||
|
|
description: Service is healthy
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
$ref: '#/components/schemas/HealthStatus'
|
||
|
|
|
||
|
|
components:
|
||
|
|
schemas:
|
||
|
|
Block:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
chain_id:
|
||
|
|
type: integer
|
||
|
|
number:
|
||
|
|
type: integer
|
||
|
|
hash:
|
||
|
|
type: string
|
||
|
|
parent_hash:
|
||
|
|
type: string
|
||
|
|
timestamp:
|
||
|
|
type: string
|
||
|
|
format: date-time
|
||
|
|
miner:
|
||
|
|
type: string
|
||
|
|
transaction_count:
|
||
|
|
type: integer
|
||
|
|
gas_used:
|
||
|
|
type: integer
|
||
|
|
gas_limit:
|
||
|
|
type: integer
|
||
|
|
size:
|
||
|
|
type: integer
|
||
|
|
|
||
|
|
Transaction:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
chain_id:
|
||
|
|
type: integer
|
||
|
|
hash:
|
||
|
|
type: string
|
||
|
|
block_number:
|
||
|
|
type: integer
|
||
|
|
from_address:
|
||
|
|
type: string
|
||
|
|
to_address:
|
||
|
|
type: string
|
||
|
|
value:
|
||
|
|
type: string
|
||
|
|
gas_price:
|
||
|
|
type: integer
|
||
|
|
gas_used:
|
||
|
|
type: integer
|
||
|
|
status:
|
||
|
|
type: integer
|
||
|
|
|
||
|
|
Address:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
address:
|
||
|
|
type: string
|
||
|
|
chain_id:
|
||
|
|
type: integer
|
||
|
|
balance:
|
||
|
|
type: string
|
||
|
|
transaction_count:
|
||
|
|
type: integer
|
||
|
|
token_count:
|
||
|
|
type: integer
|
||
|
|
is_contract:
|
||
|
|
type: boolean
|
||
|
|
|
||
|
|
PaginationMeta:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
pagination:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
page:
|
||
|
|
type: integer
|
||
|
|
page_size:
|
||
|
|
type: integer
|
||
|
|
|
||
|
|
HealthStatus:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
status:
|
||
|
|
type: string
|
||
|
|
timestamp:
|
||
|
|
type: string
|
||
|
|
services:
|
||
|
|
type: object
|
||
|
|
chain_id:
|
||
|
|
type: integer
|
||
|
|
explorer:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
version:
|
||
|
|
type: string
|
||
|
|
|
||
|
|
securitySchemes:
|
||
|
|
ApiKeyAuth:
|
||
|
|
type: apiKey
|
||
|
|
in: header
|
||
|
|
name: X-API-Key
|
||
|
|
|
||
|
|
security:
|
||
|
|
- ApiKeyAuth: []
|
||
|
|
|