Sentio Forks API
The Forks API from Sentio — 8 operation(s) for forks.
The Forks API from Sentio — 8 operation(s) for forks.
openapi: 3.0.0
info:
title: Sentio AI Forks API
description: 'Sentio Open API — REST access to Sentio''s Web3 observability platform: analytics (SQL/metrics/event logs), price data, processors, dashboards, alerts, debugging/simulation (forks), and AI chat. Harvested from Sentio''s published API reference at docs.sentio.xyz/reference.'
version: '1.0'
contact:
name: Sentio
url: https://www.sentio.xyz
servers:
- url: https://api.sentio.xyz
tags:
- name: Forks
paths:
/v1/solidity/{owner}/{slug}/fork:
post:
operationId: CreateFork
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.ForkService.CreateForkBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.CreateForkResponse'
summary: Create a fork
tags:
- Forks
get:
operationId: ListForks
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.ListForksResponse'
summary: List all forks
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{id}:
delete:
operationId: DeleteFork
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
properties: {}
type: object
summary: Delete fork by id
tags:
- Forks
get:
operationId: GetFork
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.GetForkResponse'
summary: Get fork by id
tags:
- Forks
put:
operationId: UpdateFork
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.ForkService.UpdateForkBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.UpdateForkResponse'
summary: Update fork by id
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{forkId}/bundle/{bundleId}/call_trace:
get:
operationId: GetCallTraceOnForkBundle
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: forkId
required: true
schema:
type: string
- in: path
name: bundleId
required: true
schema:
type: string
- description: Fetch the decoded trace, which will give you the function info, decoded parameters of both external and internal call trace.
in: query
name: withInternalCalls
required: false
schema:
type: boolean
- description: Disable optimizations to make internal calls more accurate, but gas costs will differ from the actual execution.
in: query
name: disableOptimizer
required: false
schema:
type: boolean
- description: Only effective when disableOptimizer=true.
in: query
name: ignoreGasCost
required: false
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/google.api.HttpBody'
summary: Get trace by bundle simulation
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{forkId}/simulation/{simulationId}/call_trace:
get:
operationId: GetCallTraceOnForkSimulation
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: forkId
required: true
schema:
type: string
- in: path
name: simulationId
required: true
schema:
type: string
- description: Fetch the decoded trace, which will give you the function info, decoded parameters of both external and internal call trace.
in: query
name: withInternalCalls
required: false
schema:
type: boolean
- description: Disable optimizations to make internal calls more accurate, but gas costs will differ from the actual execution.
in: query
name: disableOptimizer
required: false
schema:
type: boolean
- description: Only effective when disableOptimizer=true.
in: query
name: ignoreGasCost
required: false
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/google.api.HttpBody'
summary: Get trace by simulation
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{forkId}/transaction/{txHash}/call_trace:
get:
operationId: GetCallTraceOnForkTransaction
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: forkId
required: true
schema:
type: string
- in: path
name: txHash
required: true
schema:
type: string
- description: Fetch the decoded trace, which will give you the function info, decoded parameters of both external and internal call trace.
in: query
name: withInternalCalls
required: false
schema:
type: boolean
- description: Disable optimizations to make internal calls more accurate, but gas costs will differ from the actual execution.
in: query
name: disableOptimizer
required: false
schema:
type: boolean
- description: Only effective when disableOptimizer=true.
in: query
name: ignoreGasCost
required: false
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/google.api.HttpBody'
summary: Get trace by transaction
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{id}/info:
get:
operationId: GetForkInfo
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.GetForkInfoResponse'
summary: Get fork info by id
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{forkId}/simulation_bundle:
post:
operationId: SimulateTransactionBundleOnFork
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: forkId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.SolidityAPIService.SimulateTransactionBundleOnForkBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.SimulateTransactionBundleResponse'
summary: Run bundle simulation
tags:
- Forks
/v1/solidity/{owner}/{slug}/fork/{forkId}/simulation:
post:
operationId: SimulateTransactionOnFork
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: forkId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.SolidityAPIService.SimulateTransactionOnForkBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/solidity_service.SimulateTransactionResponse'
summary: Run Simulation
tags:
- Forks
components:
schemas:
solidity_service.ChainIdentifier:
properties:
chainId:
type: string
forkId:
type: string
type: object
solidity_service.BlockOverrides:
properties:
baseFee:
type: string
blockHash:
additionalProperties:
type: string
type: object
blockNumber:
type: string
difficulty:
type: string
gasLimit:
type: string
timestamp:
type: string
type: object
solidity_service.GetForkInfoResponse:
properties:
currentBlockHash:
type: string
currentBlockNumber:
type: string
currentBlockTimestamp:
format: uint64
type: string
environment:
$ref: '#/components/schemas/solidity_service.NodeEnvironment'
forkConfig:
$ref: '#/components/schemas/solidity_service.NodeForkConfig'
hardFork:
type: string
transactionOrder:
type: string
type: object
google.api.HttpBody:
properties:
contentType:
type: string
data:
format: byte
type: string
extensions:
items:
$ref: '#/components/schemas/google.protobuf.Any'
type: array
type: object
solidity_service.StateOverride:
properties:
balance:
description: uint256
title: map<string, string> stateDiff = 4;
type: string
code:
type: string
state:
additionalProperties:
type: string
type: object
type: object
evm.TransactionReceipt:
properties:
cumulativeGasUsed:
type: string
effectiveGasPrice:
type: string
error:
type: string
gasUsed:
type: string
logs:
items:
type: object
type: array
revertReason:
type: string
status:
title: '0x0: failed, 0x1: succeed'
type: string
type: object
solidity_service.ForkService.CreateForkBody:
properties:
fork:
$ref: '#/components/schemas/solidity_service.Fork'
required:
- fork
type: object
solidity_service.ListForksResponse:
properties:
forks:
items:
$ref: '#/components/schemas/solidity_service.Fork'
type: array
type: object
solidity_service.Simulation:
properties:
accessList:
items:
$ref: '#/components/schemas/evm.AccessListItem'
type: array
blockNumber:
description: Can be "latest".
title: blockNumber
type: string
blockOverride:
$ref: '#/components/schemas/solidity_service.BlockOverrides'
bundleId:
type: string
chainId:
title: we should use chain_id in favor of network_id
type: string
chainSpec:
$ref: '#/components/schemas/solidity_service.ChainIdentifier'
createAt:
type: string
debugDeployment:
title: for debugging user compilation deployment
type: boolean
from:
type: string
gas:
type: string
gasPrice:
type: string
id:
type: string
input:
type: string
label:
type: string
maxFeePerGas:
type: string
maxPriorityFeePerGas:
type: string
networkId:
type: string
originTxHash:
type: string
result:
$ref: '#/components/schemas/solidity_service.Simulation.Result'
sharing:
$ref: '#/components/schemas/solidity_service.SimulationSharing'
sourceOverrides:
additionalProperties:
type: string
title: map from address to compilationID
type: object
stateOverrides:
additionalProperties:
$ref: '#/components/schemas/solidity_service.StateOverride'
type: object
to:
type: string
transactionIndex:
type: string
value:
type: string
required:
- networkId
- chainSpec
- to
- input
- blockNumber
- transactionIndex
- from
- gas
- gasPrice
- value
type: object
solidity_service.UpdateForkResponse:
properties:
fork:
$ref: '#/components/schemas/solidity_service.Fork'
type: object
evm.AccessListItem:
properties:
address:
type: string
storageKeys:
items:
type: string
type: array
type: object
solidity_service.Simulation.Result:
properties:
transaction:
$ref: '#/components/schemas/evm.Transaction'
transactionReceipt:
$ref: '#/components/schemas/evm.TransactionReceipt'
type: object
evm.Transaction:
properties:
accessList:
items:
$ref: '#/components/schemas/evm.AccessListItem'
type: array
blockHash:
type: string
blockNumber:
type: string
chainId:
type: string
from:
type: string
gas:
type: string
gasPrice:
type: string
hash:
type: string
input:
type: string
maxFeePerGas:
type: string
maxPriorityFeePerGas:
type: string
nonce:
type: string
to:
type: string
transactionIndex:
type: string
type:
type: string
value:
type: string
type: object
solidity_service.SolidityAPIService.SimulateTransactionOnForkBody:
example:
simulation:
blockNumber: '17415072'
blockOverride:
baseFee: '0x0'
from: '0x5e8bb488e85ea732e17150862b1acfc213a7c13d'
gas: '0x31ae2'
gasPrice: '0xe59a1adbe'
input: '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000647dffef0000000000000000000000000000000000000000000000000000000000000002080c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000003077b58d5d378391980000000000000000000000000000000000000000000000000000000032b2ced3e40e9d100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000082646b22a3960da69ef7a778c16dd6fb85dd999000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000032b2ced3e40e9d1'
networkId: '1'
stateOverrides:
'0x0811fd1808e14f0b93f0514313965a5f142c5539':
balance: '0x1111111111111111'
to: '0xef1c6e67703c7bd7107eed8303fbe6ec2554bf6b'
transactionIndex: '97'
value: '0x0'
properties:
simulation:
$ref: '#/components/schemas/solidity_service.Simulation'
required:
- simulation
type: object
solidity_service.ForkType:
default: MANAGED
enum:
- MANAGED
- EXTERNAL
type: string
solidity_service.SimulateTransactionBundleResponse:
properties:
bundleId:
type: string
error:
type: string
simulations:
items:
$ref: '#/components/schemas/solidity_service.Simulation'
type: array
type: object
solidity_service.ForkService.UpdateForkBody:
properties:
fork:
$ref: '#/components/schemas/solidity_service.Fork'
required:
- fork
type: object
solidity_service.GetForkResponse:
properties:
fork:
$ref: '#/components/schemas/solidity_service.Fork'
type: object
solidity_service.ManagedFork:
properties:
chainId:
type: string
parentBlockNumber:
format: int64
type: string
parentChainSpec:
$ref: '#/components/schemas/solidity_service.ChainIdentifier'
parentRpcEndpoint:
type: string
rpcEndpoint:
type: string
version:
format: int64
type: string
type: object
solidity_service.BaseChainConfig:
properties:
debugEndpoint:
type: string
endpoint:
type: string
oklinkChainShortName:
title: Required if source_fetcher_type is OKLINK
type: string
sourceFetcherApiKeys:
items:
type: string
type: array
sourceFetcherEndpoint:
type: string
sourceFetcherTimeout:
format: int64
type: string
sourceFetcherType:
$ref: '#/components/schemas/solidity_service.SourceFetcherType'
type: object
solidity_service.ExternalFork:
properties:
chainConfig:
$ref: '#/components/schemas/solidity_service.BaseChainConfig'
nodeAdditionalHeaders:
title: Additional headers for node requests
type: string
type: object
solidity_service.Fork:
properties:
createTime:
format: date-time
type: string
externalFork:
$ref: '#/components/schemas/solidity_service.ExternalFork'
extra:
type: string
id:
type: string
managedFork:
$ref: '#/components/schemas/solidity_service.ManagedFork'
name:
type: string
type:
$ref: '#/components/schemas/solidity_service.ForkType'
updateTime:
format: date-time
type: string
type: object
solidity_service.NodeEnvironment:
properties:
baseFee:
type: string
chainId:
format: uint64
type: string
gasLimit:
type: string
gasPrice:
type: string
type: object
solidity_service.SourceFetcherType:
default: ETHERSCAN
enum:
- ETHERSCAN
- BLOCKSCOUT
- OKLINK
- ETHERSCAN_V2
type: string
solidity_service.SimulationSharing:
properties:
id:
type: string
isPublic:
type: boolean
simulationId:
type: string
type: object
solidity_service.SolidityAPIService.SimulateTransactionBundleOnForkBody:
example:
simulations:
- blockNumber: '17415072'
from: '0x5e8bb488e85ea732e17150862b1acfc213a7c13d'
gas: '0x31ae2'
gasPrice: '0xe59a1adbe'
input: '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000647dffef0000000000000000000000000000000000000000000000000000000000000002080c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000003077b58d5d378391980000000000000000000000000000000000000000000000000000000032b2ced3e40e9d100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000082646b22a3960da69ef7a778c16dd6fb85dd999000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000032b2ced3e40e9d1'
network_id: '1'
to: '0xef1c6e67703c7bd7107eed8303fbe6ec2554bf6b'
transactionIndex: '97'
value: '0x0'
- from: '0x99922ca65188cc218a5d316969dc66d8672994f2'
gas: '0x52'
gasPrice: '0xe5909173e'
input: 0x
maxFeePerGas: '0x147d03'
maxPriorityFeePerGas: '0x3b023380'
to: '0xae96a46b64e08861cf2af8c7d954b722e0725a0c'
value: '0xbe32c0faed7400'
properties:
simulations:
description: For blockNumber, transactionIndex, networkId, stateOverrides and blockOverrides fields, only the first simulation takes effect.
items:
$ref: '#/components/schemas/solidity_service.Simulation'
type: array
required:
- simulations
type: object
google.protobuf.Any:
additionalProperties: {}
description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nIn its binary encoding, an `Any` is an ordinary message; but in other wire\nforms like JSON, it has a special encoding. The format of the type URL is\ndescribed on the `type_url` field.\n\nProtobuf APIs provide utilities to interact with `Any` values:\n\n- A 'pack' operation accepts a message and constructs a generic `Any` wrapper\n around it.\n- An 'unpack' operation reads the content of an `Any` message, either into an\n existing message or a new one. Unpack operations must check the type of the\n value they unpack against the declared `type_url`.\n- An 'is' operation decides whether an `Any` contains a message of the given\n type, i.e. whether it can 'unpack' that type.\n\nThe JSON format representation of an `Any` follows one of these cases:\n\n- For types without special-cased JSON encodings, the JSON format\n representation of the `Any` is the same as that of the message, with an\n additional `@type` field which contains the type URL.\n- For types with special-cased JSON encodings (typically called 'well-known'\n types, listed in https://protobuf.dev/programming-guides/json/#any), the\n JSON format representation has a key `@type` which contains the type URL\n and a key `value` which contains the JSON-serialized value.\n\nThe text format representation of an `Any` is like a message with one field\nwhose name is the type URL in brackets. For example, an `Any` containing a\n`foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`."
properties:
'@type':
description: 'Identifies the type of the serialized Protobuf message with a URI reference
consisting of a prefix ending in a slash and the fully-qualified type name.
Example: type.googleapis.com/google.protobuf.StringValue
This string must contain at least one `/` character, and the content after
the last `/` must be the fully-qualified name of the type in canonical
form, without a leading dot. Do not write a scheme on these URI references
so that clients do not attempt to contact them.
The prefix is arbitrary and Protobuf implementations are expected to
simply strip off everything up to and including the last `/` to identify
the type. `type.googleapis.com/` is a common default prefix that some
legacy implementations require. This prefix does not indicate the origin of
the type, and URIs containing it are not expected to respond to any
requests.
All type URL strings must be legal URI references with the additional
restriction (for the text format) that the content of the reference
must consist only of alphanumeric characters, percent-encoded escapes, and
characters in the following set (not including the outer backticks):
`/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations
should not unescape them to prevent confusion with existing parsers. For
example, `type.googleapis.com%2FFoo` should be rejected.
In the original design of `Any`, the possibility of launching a type
resolution service at these type URLs was considered but Protobuf never
implemented one and considers contacting these URLs to be problematic and
a potential security issue. Do not attempt to contact type URLs.'
type: string
type: object
solidity_service.SimulateTransactionResponse:
properties:
simulation:
$ref: '#/components/schemas/solidity_service.Simulation'
type: object
solidity_service.NodeForkConfig:
properties:
forkBlockNumber:
format: uint64
type: string
forkRetryBackoff:
format: uint64
type: string
forkUrl:
type: string
type: object
solidity_service.CreateForkResponse:
properties:
fork:
$ref: '#/components/schemas/solidity_service.Fork'
type: object
securitySchemes:
ApiKeyHeaderAuth:
in: header
name: api-key
type: apiKey
ApiKeyQueryAuth:
in: query
name: api-key
type: apiKey
externalDocs:
description: Sentio API Reference
url: https://docs.sentio.xyz/reference