Skip to content
On this page

Relayers ​


This function is used to return information about a specific relayer based on its address.

It can be used anywhere where details about a specific relayer is needed such as details about events and their confirmation, validating rounds, rewards, stake etc.

Request parameters ​

Required body parameters:

NameExample valueComment
relayAddress0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557Address of the desired relayer

Response fields explanation ​

NameExample valueComment
evmStats-List of data related to the evm actions
chainId1Id of the chain
potentialConfirmed2047Number of potential events confirmed
relayConfirmed1801Actual number of events confirmed
frozenStake258917.752572214000Frozen stake of the relayer
latestReward0Reward acquired from the last round
potentialTotalConfirmed20Total number of potential events confirmed
relayTotalConfirmed7291Actual total number of confirmed events
successfulRounds18Rounds that ended successfully for the certain relayer
totalCountRounds20Total number of rounds relayer participated in
totalReward8800.73179149Total amount of reward the relayer acquired
untilFrozen1661463628000Date time until the stake will be frozen

Example ​

javascript
app.post('/relays_pages/relay_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relay_info`,
        data: {
            relayAddress: req.body.relayAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})​

This function use to get validation round info.

It can be used for showing a relayer’s efforts in one specific round.
Following data about the relayer’s performance based on the round number can be displayed:
How much a relayer staked to become a relayer, number of events he confirmed, volume from all the transfers relayer validated happened from everscale to ethereum network and vice versa shown in USDTs, round address, start and end time of the round.

Request parameters: ​

Required body parameters:

NameExample valueComment
relayAddress0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557Address of the desired relayer

Response fields explanation ​

NameExample valueComment
endTime1654604726000Date time of the validation round’s end
ethToTonUsdt6119978.1405Total amount of ethereum tokens in USDT swapped to everscale tokens and transferred
eventsConfirmed661Total number of events the relayer confirmed in the current round
evmStats: [List of data related to the evm events
chainId1Id of the chain
potentialConfirmed144Number of potential events confirmed
relayConfirmed143Number of actual events confirmed
relayAddress0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557Address of the relayer
relayPlace1Place of the relayer
roundAddress0:20e866e80bb8ded0ad14f7317a58b05d378fd108306aafed64650465cd68b19eAddress of the round certain relayer is participating in
roundNum15Round number
stake258917.752572214000Amount relayer staked to become one of the participants
startTime1653999926000Date time of round start
tonToEthUsdt5567068.9741Total amount of everscale tokens in USDT swapped to ethereum tokens and transferred
totalRoundConfirms695Number of total confirms in the monitored round
eventsConfirmedShare0.9511Share of the relayer per event confirmed

Example ​

java
app.post('/relays_pages/relay_round_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relay_round_info`,
        data: {
            relayAddress: req.body.relayAddress,
            roundNum: req.body.roundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This function returns list of relayers and details about them based on the round number they are part of.

Can be used for listing all or certain number of relayers when it comes to one validation round.
Some of the details about the relayers are number of confirmed events and the share per event, relay’s address, list of events, place of a relayer and also info about the round such as start and end time, round number and address, etc.

Request parameters ​

Required body parameters:

NameExample valueComment
limit10Maximum number of relayers to be retrieved
offset0Offset
orderingstakeascendingValue based on which the retrieved relayer data will be ordered (stakeascending, stakedescending…)
roundNum15Round number

Response fields explanation ​

NameExample valueComment
relays: [List of relays participating in the given round, determined by the amount set in the limit body parameter
endTime1654604726000Date time of the validation round’s end
ethToTonUsdt5567068.9741Total amount of ethereum tokens in USDT swapped to everscale tokens and transferred
eventsConfirmed661Total number of events the relayer confirmed in the current round
eventsConfirmedShare0.9511Share of the relayer per event confirmed
evmStats: []List of data related to the evm events
chainId0Id of the chain
potentialConfirmed0Number of potential events confirmed
relayConfirmed0Number of actual events confirmed
relayAddress0:ef79b4aac06c33ab3435943d196de9ba9ee48a3e4572c86a8ad3a2bf84b4f767Address of the relayer
relayPlacenullPlace of the relayer
roundAddress0:20e866e80bb8ded0ad14f7317a58b05d378fd108306aafed64650465cd68b19eAddress of the round certain relayer is participating in
roundNum15Round number
stake100000Amount relayer staked to become one of the participants
startTime1653999926000Date time of round start
tonToEthUsdt5567068.9741Total amount of everscale tokens in USDT swapped to ethereum tokens and transferred
totalRoundConfirms695Number of total confirms in the monitored round
totalCount23Total number of relayers participating in the round with given round number

Example ​

java
app.post('/relays_pages/relays_round_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relays_round_info`,
        data: {
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            roundNum: req.body.roundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This function returns all validation relay rounds in which specified relayer took part in.

It can be used for monitoring a relayer's activity and history by retrieving data such as details about events and share per event, round details, relayer’s place and stake, etc. only by inputting relayer’s address.

Request parameters ​

Required body parameters:

NameExample valueComment
limit10Maximum number of relayers to be retrieved
offset0Offset
orderingroundnumascendingValue based on which the retrieved relayer data will be ordered (stakeascending, stakedescending…)
userAddress0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557Address of the relayer

Response fields explanation ​

NameExample valueComment
evmStats[]List of data related to the evm events
chainId0Id of the chain
potentialConfirmed0Number of potential events confirmed
relayConfirmed0Number of actual events confirmed
relayAddress0:aacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557Address of the relayer
relayPlacenullPlace of the relayer
roundAddress0:77f4e7eb93d7fb3432f297782f2cd2e5fb2a62bb05d8a9590ea54c6ab954254dAddress of the round certain relayer is participating in
roundNum1Round number
stake244636Amount relayer staked to become one of the participants
startTime1645303857000Date time of round start
tonToEthUsdt573326.1229Total amount of everscale tokens in USDT swapped to ethereum tokens and transferred
totalRoundConfirms108Number of total confirms in the monitored round
totalCount18Number of validation rounds in which the desired relayer takes part

Example ​

graphql
app.post('/relays_pages/all_relay_rounds_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/all_relay_rounds_info`,
        data: {
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            userAddress: req.body.userAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This function returns basic information about relayers based on their addresses, round number and stake.

It can be used for filtering rounds based on their number and showing information about them such as stake and stake changes, information about events, relayers and change in number of them, amount of USDTs transferred through the round duration.

Request parameters ​

Required body parameters:

NameExample valueComment
roundNum10Round number

Response fields explanation ​

NameExample valueComment
averageRelayStake106213.02883900Average relayers stake
averageRelayStakeChange-0.5300Change of the average relayers stake in percentage
ethToTonUsdt5204152.7479Total amount of ethereum tokens in USDT swapped to everscale tokens and transferred
eventsConfirmed603Total number of events the relayer confirmed in the current round
evmStats: [List of data related to the evm events
chainId1Id of the chain
potentialConfirmed142Number of potential events confirmed
relayConfirmed0Number of actual events confirmed
relaysCount24Total number of relayers in the desired round
relaysCountChange9.0900Change of number of relayers participating in the round in percentage
roundNum10Round number
tonToEthUsdt6007826.4910Total amount of everscale tokens in USDT swapped to ethereum tokens and transferred
totalStake2549112.692146446000Sum of all the stakes relayers invested in the round
totalStakeChange8.5100Change of total stake invested in percentage

Example ​

java
app.post('/relays_pages/round_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/round_info`,
        data: {
            roundNum: req.body.roundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })

})​

This function **** returns basic information about relayers based on their addresses, round number and stake.

Request parameters ​

Required body parameters:

NameExample valueComment
createdAtGe0Value representing bottom border of the date time relayer was created
createdAtLe0Value representing top border of the date time relayer was created
limit10Maximum number of relayers to be retrieved
offset0Offset
orderingstakeascendingValue based on which the retrieved relayer data will be ordered (stakeascending, stakedescending)
relayAddresses0:79fc8ce8d32211a4c49adf7de1c9c0fa682ff3a13124ff027f6b92faa308ffebList of relayers (addresses)
roundNum10Round number
stakeGe50Bottom border of the stake amount relayer invested for participating in the round
stakeLe1000000Top border of the stake amount relayer invested for participating in the round
transferContractAddress0:cbd090198d22e4b1a77227ba2bff58a05a32049ef2908aebfb461cacd6a474c8Address of the transfer contract

Parameters used for the test:

NameValue
limit10
offset0
orderingstakeascending

Response fields explanation ​

NameExample valueComment
relays: [List of relays participating in specified round and specified transfer
createdAt1651074897000Date time of becoming a relayer
currentRoundtrueTrue if search refers to a current round, false if not
potentialTotalConfirmed4749Number of potential events confirmed
relayAddress0:099341ccbe3f2db59432fc1cc794773b9da06048d14e43ae24ae224dd768145dAddress of the relayer
relayTotalConfirmed4056Actual number of events confirmed by a relayer
slashedfalseTrue if a relayer was slashed, false if not
stake100000Amount relayer staked for participating in the round
successfulRounds10Number of successful validation relay rounds of a relayer
totalRounds10Number of all rounds relayer participated in
totalCount27Total number of records retrieved based on the relayers’ addresses given and transaction contract’s address for the specified round

Example ​

java
app.post('/relays_pages/search/relays', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/search/relays`,
        data: {
            createdAtGe: req.body.createdAtGe,
            createdAtLe: req.body.createdAtLe,
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            relayAddresses: req.body.relayAddresses,
            roundNum: req.body.roundNum,
            stakeGe: req.body.stakeGe,
            stakeLe: req.body.stakeLe,
            transferContractAddress: req.body.transferContractAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This function returns details about relayer’s events based on the chain id of the event, kind of transfer, receiver’s address, sender’s address, token address, relayer’s address, contract’s address, round number.

It can be used for filtering all the events based on the required parameters and displaying them in the list form along with information such as amount transferred, chain id, sender’s address, receiver’s address, token address etc.

Request parameters ​

Required body parameters:

NameExample valueComment
amountGe0Bottom border of the transferred amount
amountLe10000000000000000Top border of the transferred amount
chainId1Id of the event’s chain
ethUserAddress0xcbefe3344284444ac8141c930207b8ff82a3177eUser address on the ethereum network
limit10Maximum number of relayers to be retrieved
offset0Offset
orderingamountascendingValue based on which the retrieved relayer data will be ordered
relayAddress-Address of the relayer
roundNum18Round number
timestampGe1642813200000Bottom border of the date time of the transfer
timestampLe1656032400000Top border of the date time of the transfer
tokenAddress0:a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2Address of the transferred token
tonUserAddress0:1fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3User address on the everscale network
transferContractAddress0:91b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9Address of the transfer contract
transferKindethtotonTransfer kind (tontoeth, ethtoton)

Response fields explanation ​

NameExample valueComment
relays:[List of relays participating in specified round and specified transfer
amount90000Amount of transfer
chainId1Id of the event’s chain
contractAddress0:91b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9Address of the transfer contract
from0xcbefe3344284444ac8141c930207b8ff82a3177eAddress of the sender
timestamp1655983612000Date time of the transfer
to0:1fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3Address of the receiver
tokenAddress0:a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2Address of the transferred token
transferKindethtotonTransfer kind (tontoeth, ethtoton)
totalCount18Total number of relays participating in the transfer

Example ​

java
app.post('/relays_pages/search/relays_events', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/search/relays_events`,
        data: {
            amountGe: req.body.amountGe,
            amountLe: req.body.amountLe,
            chainId: req.body.chainId,
            ethUserAddress: req.body.ethUserAddress,
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            relayAddress: req.body.relayAddress,
            roundNum: req.body.roundNum,
            timestampGe: req.body.timestampGe,
            timestampLe: req.body.timestampLe,
            tokenAddress: req.body.tokenAddress,
            tonUserAddress: req.body.tonUserAddress,
            transferContractAddress: req.body.transferContractAddress,
            transferKind: req.body.transferKind
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This function returns details about relayer’s events based on the chain id of the event, kind of transfer, receiver’s address, sender’s address, token address, relayer’s address, contract’s address, round number.

It can be used for filtering all the events based on the required parameters and displaying them in the list form along with information such as amount transferred, chain id, sender’s address, receiver’s address, token address etc.

Request parameters ​

Required body parameters:

NameExample valueComment
amountGe0Bottom border of the transferred amount
amountLe10000000000000000Top border of the transferred amount
chainId1Id of the event’s chain
ethUserAddress0xcbefe3344284444ac8141c930207b8ff82a3177eUser address on the ethereum network
limit10Maximum number of relayers to be retrieved
offset0Offset
orderingamountascendingValue based on which the retrieved relayer data will be ordered
relayAddress-Address of the relayer
roundNum18Round number
timestampGe1642813200000Bottom border of the date time of the transfer
timestampLe1656032400000Top border of the date time of the transfer
tokenAddress0:a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2Address of the transferred token
tonUserAddress0:1fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3User address on the everscale network
transferContractAddress0:91b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9Address of the transfer contract
transferKindethtotonTransfer kind (tontoeth, ethtoton)

Response fields explanation ​

NameExample valueComment
relaysList of relays participating in specified round and specified transfer
amount90000Transferred amount
chainId1Id of the event’s chain
contractAddress091b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9Address of the transfer contract
from0xcbefe3344284444ac8141c930207b8ff82a3177eAddress of the sender
timestamp1655983612000Date time of the transfer
to01fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3Address of the receiver
tokenAddress0a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2Address of the transferred token
transferKindethtotonTransfer kind (tontoeth, ethtoton)
totalCount1Total number of relays participating in the transfer

Example ​

java
app.post('/relays_pages/search/global_relays_events', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/search/global_relays_events`,
        data: {
            amountGe: req.body.amountGe,
            amountLe: req.body.amountLe,
            chainId: req.body.chainId,
            ethUserAddress: req.body.ethUserAddress,
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            roundNum: req.body.roundNum,
            timestampGe: req.body.timestampGe,
            timestampLe: req.body.timestampLe,
            tokenAddress: req.body.tokenAddress,
            tonUserAddress: req.body.tonUserAddress,
            transferContractAddress: req.body.transferContractAddress,
            transferKind: req.body.transferKind
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This fuction returns data about the rounds between from and to rounds numbers.

It can be used as round’s calendar where data about election start and end time, round’s start and end time, number and address for each round will be displayed

Request parameters ​

Required body parameters:

NameExample valueComment
fromRoundNum1First round number to retrieve
toRoundNum10Last round number to retrieve

Response fields explanation ​

NameExample valueComment
electionEndTime1645131078000Date time of the election’s end
electionStartTime1644958278000Date time of the election’s start
endTime1645908657000Date time of the round’s end
roundAddress0:77f4e7eb93d7fb3432f297782f2cd2e5fb2a62bb05d8a9590ea54c6ab954254dAddress of the validation relay round
roundNum1Round number
startTime1645303857000Date time of the round’s start

Example ​

java
app.post('/relays_pages/rounds_calendar', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/rounds_calendar`,
        data: {
            fromRoundNum: req.body.fromRoundNum,
            toRoundNum: req.body.toRoundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

This function returns information about the relayerabout relayer relay taking part in the specific round based on itsit’s address and round number.

It can be used for filtering where relayer’s and round’s information, for the chosen round, such as round end, round start, events information, amount of assets transferred through the round etc., will be displayed.

Request parameters ​

Required body parameters:

NameExample valueComment
limit10Maximum number of relayers to be retrieved
offset0Offset
orderingstakeascendingValue based on which the retrieved relayer data will be ordered (stakeascending, stakedescending…)
userAddress0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557Address of the relayer
roundNum10Round number

Response fields explonation ​

NameExample valueComment
relays: [Relay with specified address participating in specified round
endTime1651580726000Round end time
eventsConfirmed529Total number of confirmed events
eventsShare0.8773Amount of share relayer earns per event
fromTonUsdt5204152.7479Amount of USDTs transferred from everscale
fromTonUsdtShare0.5358Share of transferring evers to usdt
roundAddress0:cc312267aa40b7f9a56ce1aad46dbca5088c2d30ee1ba88555d2e97941ac9816Address of the specified round
roundNum10Round number
stake244636Invested stake of a relayer for participating in the round
startTime1650975926000Round start time
toTonUsdt4509235.2178Amount of USDTs transferred to everscale
toTonUsdtShare0.4642Share of transferring to everscale in USDTs
totalCount0Total number of relayers with specified address participating in the specified round

Example ​

java
app.post('/relays_pages/relay_rounds_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relay_rounds_info`,
        data: {
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            roundNum: req.body.roundNum,
            userAddress: req.body.userAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})