Skip to content

Instantly share code, notes, and snippets.

@RafaelAPB
Created March 22, 2024 14:41
Show Gist options
  • Save RafaelAPB/b49284c9428311df9c65f16ba291dd29 to your computer and use it in GitHub Desktop.
Save RafaelAPB/b49284c9428311df9c65f16ba291dd29 to your computer and use it in GitHub Desktop.
blo spec version 7611657dc
openapi: 3.0.3
info:
title: SATP Gateway Client (Business Logic Orchestrator)
version: v0.0.1
description: |-
SATP is a protocol operating between two gateways that conducts the transfer of a digital asset from one gateway to another. The protocol establishes a secure channel between the endpoints and implements a 2-phase commit to ensure the properties of transfer atomicity, consistency, isolation and durability.
This API defines the gateway client facing API (business logic orchestrator, or BLO), which is named API-Type 1 in the SATP-Core specification.
**Additional Resources**:
- [Proposed SATP Charter](https://datatracker.ietf.org/doc/charter-ietf-satp/)
- [SATP Core draft](https://datatracker.ietf.org/doc/draft-ietf-satp-core)
- [SATP Crash Recovery draft](https://datatracker.ietf.org/doc/draft-belchior-satp-gateway-recovery/)
- [SATP Architecture draft](https://datatracker.ietf.org/doc/draft-ietf-satp-architecture/)
- [SATP Use-Cases draft](https://datatracker.ietf.org/doc/draft-ramakrishna-sat-use-cases/)
- [SATP Data sharing draft](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-data-sharing)
- [SATP View Addresses draft](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-views-addresses)
contact:
name: Hyperledger Cacti
x-logo:
altText: Cacti logo
backgroundColor: '#fafafa'
url: https://github.com/hyperledger/cacti/blob/main/images/HL_Cacti_Logo_Color.png
externalDocs:
description: For more information about the SATP Gateway Client, refer to the official documentation.
url: https://github.com/hyperledger/cacti/tree/main/packages/cactus-plugin-satp-hermes/README.md
servers:
- url: http://{host}:{port}/api/v1/@hyperledger/cactus-plugin-satp-hermes
description: Development server
variables:
host:
default: localhost
port:
default: '3011'
tags:
- name: transaction
description: API endpoints for interacting with blockchains via gateways
- name: admin
description: API endpoints for fetching information on SATP sessions
paths:
/api/v1/@hyperledger/cactus-plugin-satp-hermes/transact:
post:
tags:
- transaction
summary: Submit a transaction intent
description: Allows users to queue intents for transactions based on specified parameters.
operationId: Transact
x-hyperledger-cacti:
http:
verbLowerCase: post
path: /api/v1/@hyperledger/cactus-plugin-satp-hermes/transact
requestBody:
content:
application/json:
schema:
type: object
properties:
contextID:
type: string
format: uuid
description: A unique identifier for the transaction context.
fromDLTNetworkID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
toDLTNetworkID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
required:
- contextID
- fromDLTNetworkID
- fromAmount
- fromToken
- toDLTNetworkID
- toAmount
- toToken
required: true
responses:
'200':
description: Transaction successfully queued
content:
application/json:
schema:
type: object
properties:
sessionID:
x-category: satp-core
type: string
description: Unique identifier (UUID) for the session.
example: 000003e8-e0b8-21ee-ba00-325096b39f47
statusResponse:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
required:
- sessionID
- statusResponse
default:
description: An error occurred
content:
application/json:
schema:
x-category: response
type: object
x-go-type: ApiError
x-go-name: ApiError
description: An Error
required:
- message
- type
- code
- status
- timestamp
properties:
type:
type: string
description: HTTP error type
example: bad-request
code:
type: integer
description: Numeric error code
example: 16384
status:
type: integer
description: HTTP status of the error
example: 500
message:
type: string
description: Long error description
example: Oops there's been an internal error handling
timestamp:
type: string
description: Timestamp of the error
example: '2021-07-21T17:32:28Z'
/api/v1/@hyperledger/cactus-plugin-satp-hermes/cancel:
post:
tags:
- transaction
summary: Cancel a transaction session
description: Attempts to cancel a previously submitted transaction intent using its session ID.
operationId: Cancel
x-hyperledger-cacti:
http:
verbLowerCase: post
path: /api/v1/@hyperledger/cactus-plugin-satp-hermes/cancel
requestBody:
content:
application/json:
schema:
type: object
properties:
sessionID:
x-category: satp-core
type: string
description: Unique identifier (UUID) for the session.
example: 000003e8-e0b8-21ee-ba00-325096b39f47
required:
- sessionID
required: true
responses:
'200':
description: Transaction cancellation attempted
content:
application/json:
schema:
type: object
properties:
statusResponse:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
cancelSuccessful:
type: boolean
description: Indicates whether the cancel operation was successful.
required:
- statusResponse
- cancelSuccessful
default:
description: An error occurred or transaction cannot be cancelled
content:
application/json:
schema:
x-category: response
type: object
x-go-type: ApiError
x-go-name: ApiError
description: An Error
required:
- message
- type
- code
- status
- timestamp
properties:
type:
type: string
description: HTTP error type
example: bad-request
code:
type: integer
description: Numeric error code
example: 16384
status:
type: integer
description: HTTP status of the error
example: 500
message:
type: string
description: Long error description
example: Oops there's been an internal error handling
timestamp:
type: string
description: Timestamp of the error
example: '2021-07-21T17:32:28Z'
/api/v1/@hyperledger/cactus-plugin-satp-hermes/continue:
post:
tags:
- transaction
summary: Continue a transaction session
description: Attempts to continue a previously paused transaction session using its session ID and context ID.
operationId: Continue
x-hyperledger-cacti:
http:
verbLowerCase: post
path: /api/v1/@hyperledger/cactus-plugin-satp-hermes/continue
requestBody:
content:
application/json:
schema:
type: object
properties:
sessionId:
type: string
description: The session ID of the transaction to be continued.
contextId:
type: string
description: The context ID related to the transaction session.
required:
- sessionId
- contextId
required: true
responses:
'200':
description: Transaction session continuation attempted
content:
application/json:
schema:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
default:
description: An error occurred or transaction session cannot be continued
content:
application/json:
schema:
x-category: response
type: object
x-go-type: ApiError
x-go-name: ApiError
description: An Error
required:
- message
- type
- code
- status
- timestamp
properties:
type:
type: string
description: HTTP error type
example: bad-request
code:
type: integer
description: Numeric error code
example: 16384
status:
type: integer
description: HTTP status of the error
example: 500
message:
type: string
description: Long error description
example: Oops there's been an internal error handling
timestamp:
type: string
description: Timestamp of the error
example: '2021-07-21T17:32:28Z'
/api/v1/@hyperledger/cactus-plugin-satp-hermes/status:
get:
summary: Get SATP current session data
description: Retrieve the status of a SATP session
operationId: GetStatus
tags:
- admin
x-hyperledger-cacti:
http:
verbLowerCase: get
path: /api/v1/@hyperledger/cactus-plugin-satp-hermes/status
parameters:
- name: SessionID
in: query
schema:
x-category: satp-core
type: string
description: Unique identifier (UUID) for the session.
example: 000003e8-e0b8-21ee-ba00-325096b39f47
required: true
description: Unique identifier for the session.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
'400':
description: Bad request
'404':
description: Transaction not found
'500':
description: Internal server error
/api/v1/@hyperledger/cactus-plugin-satp-hermes/routes:
get:
description: Get a list of possible routes for swapping one asset for another across multiple exchanges
summary: Get a list of routes for a gateway-to-gateway asset transfer
tags:
- transaction
operationId: GetRoutes
x-hyperledger-cacti:
http:
verbLowerCase: get
path: /api/v1/@hyperledger/cactus-plugin-satp-hermes/routes
parameters:
- name: fromNetworkID
in: query
schema:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
required: true
description: The sending DLT Network.
- name: fromAmount
in: query
schema:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
required: true
description: The amount that should be sent including all decimals.
- name: fromToken
in: query
schema:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
required: true
description: The token that should be transferred. Can be the address or the symbol.
- name: toDLTNetwork
in: query
schema:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
required: true
description: The receiving DLT Network.
- name: toToken
in: query
schema:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
required: true
description: The token that should be transferred to. Can be the address or the symbol.
- name: fromAddress
in: query
schema:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
required: true
description: The sending wallet address.
- name: toAddress
in: query
schema:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
required: true
description: The receiving wallet address. If none is provided, the fromAddress will be used.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
description: A collection of available and unavailable routes
required:
- routes
properties:
routes:
type: array
description: A collection of route objects
items:
type: object
required:
- id
- gatewayID
properties:
id:
type: string
description: A unique identifier of the route.
gatewayID:
type: string
format: uuid
description: A unique identifier for the gateway.
fromDLTNetworkID:
type: string
description: The ID of the DLT Network where the transfer will originate.
fromAmountUSD:
type: string
format: double
description: The amount of 'fromToken' to be transferred in USD, specified as a string to maintain precision.
fromAmount:
type: string
description: The amount that should be sent including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
pattern: ^[1-9][0-9]*$
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
toDLTNetworkID:
type: string
description: The ID of the DLT Network where the transfer will end.
toAmountUSD:
type: string
description: The expected amount to be received in USD.
toAmount:
type: string
description: The expected amount to be received including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
toAmountMin:
type: string
description: The minimum expected amount to be received including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
gasCostUSD:
type: string
description: The expected gas cost in USD.
containsSwitchChain:
type: boolean
description: Whether chain switching is enabled or not.
steps:
type: array
description: List of steps involved in this route.
items:
type: object
description: Details a single step within a route including actions and estimates.
properties:
id:
type: string
description: Id of the step
type:
type: string
description: Type of the step, typically describing the action, e.g., 'swap'.
tool:
type: string
description: Tool used in the step, e.g., 'stargate'.
action:
type: object
properties:
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
fromAmount:
type: string
description: The amount of 'fromToken' to be transferred, specified as a string to maintain precision.
example: '1000000000000000000'
pattern: ^[1-9][0-9]*$
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
slippage:
type: number
format: float
description: The maximum acceptable difference between the expected price of the 'toToken' and the price at the time of the transfer.
example: 0.005
fromAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
estimate:
type: object
description: Provides an estimation for a transaction, including costs, amounts, and execution duration.
properties:
approvalAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAmountMin:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
feeCosts:
type: array
description: A collection of fee costs associated with the transaction.
items:
type: object
description: Details about a specific fee cost associated with the transaction.
properties:
name:
type: string
description: Name of the fee cost.
example: Network Fee
amount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
amountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
token:
type: string
description: The symbol of a token
example: ETH
included:
type: boolean
description: Indicates if the fee is included in the transaction amount.
gasCosts:
type: array
description: A collection of estimated gas costs for executing the transaction.
items:
type: object
properties:
type:
type: string
description: The type of the gas cost.
example: SEND
price:
type: string
description: The gas price, specified as a string to maintain precision.
example: '19236858243'
estimate:
type: string
description: The estimated gas required, specified as a string to maintain precision.
example: '445393'
limit:
type: string
description: The gas limit for the transaction, specified as a string to maintain precision.
example: '579011'
pattern: ^[1-9][0-9]*$
amount:
type: string
description: The amount of gas required in the gas currency.
example: '8567962003424499'
pattern: ^[1-9][0-9]*$
amountUSD:
type: string
description: The amount of gas required in USD.
example: '16.05'
pattern: ^(0(\.[0-9]+)?|[1-9][0-9]*(\.[0-9]+)?)$
token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
executionDuration:
type: integer
description: The estimated duration for the transaction execution in seconds.
example: 30
fromAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
tool:
type: string
description: The tool or service used to generate this estimate.
example: satp
toolDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
integrationDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
includedStepIds:
type: array
description: IDs of further steps included within this step, allowing for nested actions without direct recursion.
items:
type: string
insurance:
type: object
properties:
state:
type: string
description: The state of insurance applicability for the transaction.
example: NOT_INSURABLE
enum:
- NOT_INSURABLE
- INSURABLE
- INSURED
feeAmountUsd:
type: string
description: The fee amount for insurance, represented in USD.
example: '10.00'
pattern: ^(0|[1-9]\d*)(\.\d+)?$
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
default:
description: An error occurred
content:
application/json:
schema:
x-category: response
type: object
x-go-type: ApiError
x-go-name: ApiError
description: An Error
required:
- message
- type
- code
- status
- timestamp
properties:
type:
type: string
description: HTTP error type
example: bad-request
code:
type: integer
description: Numeric error code
example: 16384
status:
type: integer
description: HTTP status of the error
example: 500
message:
type: string
description: Long error description
example: Oops there's been an internal error handling
timestamp:
type: string
description: Timestamp of the error
example: '2021-07-21T17:32:28Z'
/api/v1/@hyperledger/cactus-plugin-satp-hermes/audit:
get:
tags:
- admin
summary: Audit transactions
description: Audits transactions based on provided filters such as start and end dates. Optionally includes proofs generated from each gateway transaction.
operationId: GetAudit
x-hyperledger-cacti:
http:
verbLowerCase: get
path: /api/v1/@hyperledger/cactus-plugin-satp-hermes/audit
parameters:
- name: auditStartDate
in: query
description: The start date for the audit period.
required: false
schema:
type: string
format: date-time
- name: auditEndDate
in: query
description: The end date for the audit period.
required: false
schema:
type: string
format: date-time
- name: includeProofs
in: query
description: Include proofs generated from each gateway transaction.
required: false
schema:
type: boolean
responses:
'200':
description: Audit results
content:
application/json:
schema:
type: object
x-category: response
properties:
proofs:
type: array
items:
type: string
description: An array of strings representing proofs.
auditStartTime:
type: string
format: date-time
description: The start datetime of the audit period.
auditEndTime:
type: string
format: date-time
description: The end datetime of the audit period.
components:
schemas:
AuthzScope:
type: string
enum:
- group:admin
- group:user
x-enum-descriptions:
- Identities with the group:admin scope are administrators of the system.
- Identities with the group:user scope are end users of the system who only have authorization to perform a limited set of actions.
x-enum-varnames:
- GroupAdmin
- GroupUser
AuthzJwtClaim:
description: 'Stores global constants related to the authorization of the application. Specifically enumerates the claims to validate for as per RFC 7519, section 4.1. See: https://tools.ietf.org/html/rfc7519#section-4.1'
type: string
enum:
- Hyperledger Labs - Carbon Accounting Tool
x-enum-descriptions:
- The "iss" (issuer) claim identifies the principal that issued the JWT. The processing of this claim is generally application specific. The "iss" value is a case-sensitive string containing a StringOrURI value. Use of this claim is OPTIONAL.
x-enum-varnames:
- iss
CredentialProfile:
type: string
enum:
- SAML
- OAUTH
- X509
getAuditRequest:
type: object
x-category: request
properties:
auditStartDate:
type: string
format: date-time
description: The start datetime for the audit.
auditEndDate:
type: string
format: date-time
description: The end datetime for the audit.
includeProofs:
type: boolean
description: Include proofs generated from each gateway transaction.
ContinueRequest:
type: object
properties:
sessionId:
type: string
description: The session ID of the transaction to be continued.
contextId:
type: string
description: The context ID related to the transaction session.
required:
- sessionId
- contextId
getAuditResponse:
type: object
x-category: response
properties:
proofs:
type: array
items:
type: string
description: An array of strings representing proofs.
auditStartTime:
type: string
format: date-time
description: The start datetime of the audit period.
auditEndTime:
type: string
format: date-time
description: The end datetime of the audit period.
StatusResponse:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
StatusRequest:
type: object
x-category: request
required:
- sessionID
properties:
sessionID:
type: string
description: The ID of the session for which the status is being requested.
TransactRequest:
type: object
properties:
contextID:
type: string
format: uuid
description: A unique identifier for the transaction context.
fromDLTNetworkID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
toDLTNetworkID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
required:
- contextID
- fromDLTNetworkID
- fromAmount
- fromToken
- toDLTNetworkID
- toAmount
- toToken
TransactResponse:
type: object
properties:
sessionID:
x-category: satp-core
type: string
description: Unique identifier (UUID) for the session.
example: 000003e8-e0b8-21ee-ba00-325096b39f47
statusResponse:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
required:
- sessionID
- statusResponse
CancelRequest:
type: object
properties:
sessionID:
x-category: satp-core
type: string
description: Unique identifier (UUID) for the session.
example: 000003e8-e0b8-21ee-ba00-325096b39f47
required:
- sessionID
CancelResponse:
type: object
properties:
statusResponse:
type: object
x-category: response
required:
- status
- substatus
- stage
- step
- startTime
properties:
status:
type: string
enum:
- NOT_FOUND
- INVALID
- PENDING
- DONE
- FAILED
description: Current status of the SATP session.
substatus:
type: string
enum:
- WAIT_SOURCE_CONFIRMATIONS
- WAIT_DESTINATION_TRANSACTION
- BRIDGE_NOT_AVAILABLE
- CHAIN_NOT_AVAILABLE
- REFUND_IN_PROGRESS
- UNKNOWN_ERROR
- COMPLETED
- PARTIAL
- REFUNDED
- NOT_PROCESSABLE_REFUND_NEEDED
description: More detailed status of the SATP session.
stage:
type: string
enum:
- STAGE0
- STAGE1
- STAGE2
- STAGE3
description: Current stage of the SATP session.
step:
type: string
enum:
- transfer-initialization-claims
- conveyance-of-network-capabilities-and-parameters
- transfer-proposal-message
- transfer-proposal-receipt-message
- transfer-proposal-reject-and-conditional-reject-message
- transfer-commence-message
- commence-response-message
- lock-assertion-message
- lock-assertion-receipt-message
- commit-preparation-message
- commit-ready-message
- commit-final-assertion-message
- commit-final-acknowledgement-receipt-message
- transfer-complete-message
- rollback-transfer-initialization-claims
- rollback-conveyance-of-network-capabilities-and-parameters
- rollback-transfer-proposal-message
- rollback-transfer-proposal-receipt-message
- rollback-transfer-proposal-reject-and-conditional-reject-message
- rollback-transfer-commence-message
- rollback-commence-response-message
- rollback-lock-assertion-message
- rollback-lock-assertion-receipt-message
- rollback-commit-preparation-message
- rollback-commit-ready-message
- rollback-commit-final-assertion-message
- rollback-commit-final-acknowledgement-receipt-message
- rollback-transfer-complete-message
description: Current step within the stage of the SATP session.
startTime:
type: string
format: date-time
description: The start time of the SATP session.
cancelSuccessful:
type: boolean
description: Indicates whether the cancel operation was successful.
required:
- statusResponse
- cancelSuccessful
APIError:
x-category: response
type: object
x-go-type: ApiError
x-go-name: ApiError
description: An Error
required:
- message
- type
- code
- status
- timestamp
properties:
type:
type: string
description: HTTP error type
example: bad-request
code:
type: integer
description: Numeric error code
example: 16384
status:
type: integer
description: HTTP status of the error
example: 500
message:
type: string
description: Long error description
example: Oops there's been an internal error handling
timestamp:
type: string
description: Timestamp of the error
example: '2021-07-21T17:32:28Z'
DLTProtocol:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
DLTNetworkID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
DLTSubnetworkID:
x-category: satp-core
type: string
description: 'The subnetwork of the DLT being interacted with. TODO: implement network identification draft'
SessionID:
x-category: satp-core
type: string
description: Unique identifier (UUID) for the session.
example: 000003e8-e0b8-21ee-ba00-325096b39f47
Address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
AmountString:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
AmountDecimal:
type: number
format: float
description: Amount value with decimal places
example: 100.33
TokenSymbol:
type: string
description: The symbol of a token
example: ETH
LogoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
RoutesResponse:
type: object
description: A collection of available and unavailable routes
required:
- routes
properties:
routes:
type: array
description: A collection of route objects
items:
type: object
required:
- id
- gatewayID
properties:
id:
type: string
description: A unique identifier of the route.
gatewayID:
type: string
format: uuid
description: A unique identifier for the gateway.
fromDLTNetworkID:
type: string
description: The ID of the DLT Network where the transfer will originate.
fromAmountUSD:
type: string
format: double
description: The amount of 'fromToken' to be transferred in USD, specified as a string to maintain precision.
fromAmount:
type: string
description: The amount that should be sent including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
pattern: ^[1-9][0-9]*$
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
toDLTNetworkID:
type: string
description: The ID of the DLT Network where the transfer will end.
toAmountUSD:
type: string
description: The expected amount to be received in USD.
toAmount:
type: string
description: The expected amount to be received including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
toAmountMin:
type: string
description: The minimum expected amount to be received including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
gasCostUSD:
type: string
description: The expected gas cost in USD.
containsSwitchChain:
type: boolean
description: Whether chain switching is enabled or not.
steps:
type: array
description: List of steps involved in this route.
items:
type: object
description: Details a single step within a route including actions and estimates.
properties:
id:
type: string
description: Id of the step
type:
type: string
description: Type of the step, typically describing the action, e.g., 'swap'.
tool:
type: string
description: Tool used in the step, e.g., 'stargate'.
action:
type: object
properties:
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
fromAmount:
type: string
description: The amount of 'fromToken' to be transferred, specified as a string to maintain precision.
example: '1000000000000000000'
pattern: ^[1-9][0-9]*$
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
slippage:
type: number
format: float
description: The maximum acceptable difference between the expected price of the 'toToken' and the price at the time of the transfer.
example: 0.005
fromAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
estimate:
type: object
description: Provides an estimation for a transaction, including costs, amounts, and execution duration.
properties:
approvalAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAmountMin:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
feeCosts:
type: array
description: A collection of fee costs associated with the transaction.
items:
type: object
description: Details about a specific fee cost associated with the transaction.
properties:
name:
type: string
description: Name of the fee cost.
example: Network Fee
amount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
amountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
token:
type: string
description: The symbol of a token
example: ETH
included:
type: boolean
description: Indicates if the fee is included in the transaction amount.
gasCosts:
type: array
description: A collection of estimated gas costs for executing the transaction.
items:
type: object
properties:
type:
type: string
description: The type of the gas cost.
example: SEND
price:
type: string
description: The gas price, specified as a string to maintain precision.
example: '19236858243'
estimate:
type: string
description: The estimated gas required, specified as a string to maintain precision.
example: '445393'
limit:
type: string
description: The gas limit for the transaction, specified as a string to maintain precision.
example: '579011'
pattern: ^[1-9][0-9]*$
amount:
type: string
description: The amount of gas required in the gas currency.
example: '8567962003424499'
pattern: ^[1-9][0-9]*$
amountUSD:
type: string
description: The amount of gas required in USD.
example: '16.05'
pattern: ^(0(\.[0-9]+)?|[1-9][0-9]*(\.[0-9]+)?)$
token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
executionDuration:
type: integer
description: The estimated duration for the transaction execution in seconds.
example: 30
fromAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
tool:
type: string
description: The tool or service used to generate this estimate.
example: satp
toolDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
integrationDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
includedStepIds:
type: array
description: IDs of further steps included within this step, allowing for nested actions without direct recursion.
items:
type: string
insurance:
type: object
properties:
state:
type: string
description: The state of insurance applicability for the transaction.
example: NOT_INSURABLE
enum:
- NOT_INSURABLE
- INSURABLE
- INSURED
feeAmountUsd:
type: string
description: The fee amount for insurance, represented in USD.
example: '10.00'
pattern: ^(0|[1-9]\d*)(\.\d+)?$
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
Route:
type: object
required:
- id
- gatewayID
properties:
id:
type: string
description: A unique identifier of the route.
gatewayID:
type: string
format: uuid
description: A unique identifier for the gateway.
fromDLTNetworkID:
type: string
description: The ID of the DLT Network where the transfer will originate.
fromAmountUSD:
type: string
format: double
description: The amount of 'fromToken' to be transferred in USD, specified as a string to maintain precision.
fromAmount:
type: string
description: The amount that should be sent including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
pattern: ^[1-9][0-9]*$
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
toDLTNetworkID:
type: string
description: The ID of the DLT Network where the transfer will end.
toAmountUSD:
type: string
description: The expected amount to be received in USD.
toAmount:
type: string
description: The expected amount to be received including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
toAmountMin:
type: string
description: The minimum expected amount to be received including all decimals (e.g., 1000000 for 1 USDC (6 decimals)).
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
gasCostUSD:
type: string
description: The expected gas cost in USD.
containsSwitchChain:
type: boolean
description: Whether chain switching is enabled or not.
steps:
type: array
description: List of steps involved in this route.
items:
type: object
description: Details a single step within a route including actions and estimates.
properties:
id:
type: string
description: Id of the step
type:
type: string
description: Type of the step, typically describing the action, e.g., 'swap'.
tool:
type: string
description: Tool used in the step, e.g., 'stargate'.
action:
type: object
properties:
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
fromAmount:
type: string
description: The amount of 'fromToken' to be transferred, specified as a string to maintain precision.
example: '1000000000000000000'
pattern: ^[1-9][0-9]*$
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
slippage:
type: number
format: float
description: The maximum acceptable difference between the expected price of the 'toToken' and the price at the time of the transfer.
example: 0.005
fromAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
estimate:
type: object
description: Provides an estimation for a transaction, including costs, amounts, and execution duration.
properties:
approvalAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAmountMin:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
feeCosts:
type: array
description: A collection of fee costs associated with the transaction.
items:
type: object
description: Details about a specific fee cost associated with the transaction.
properties:
name:
type: string
description: Name of the fee cost.
example: Network Fee
amount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
amountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
token:
type: string
description: The symbol of a token
example: ETH
included:
type: boolean
description: Indicates if the fee is included in the transaction amount.
gasCosts:
type: array
description: A collection of estimated gas costs for executing the transaction.
items:
type: object
properties:
type:
type: string
description: The type of the gas cost.
example: SEND
price:
type: string
description: The gas price, specified as a string to maintain precision.
example: '19236858243'
estimate:
type: string
description: The estimated gas required, specified as a string to maintain precision.
example: '445393'
limit:
type: string
description: The gas limit for the transaction, specified as a string to maintain precision.
example: '579011'
pattern: ^[1-9][0-9]*$
amount:
type: string
description: The amount of gas required in the gas currency.
example: '8567962003424499'
pattern: ^[1-9][0-9]*$
amountUSD:
type: string
description: The amount of gas required in USD.
example: '16.05'
pattern: ^(0(\.[0-9]+)?|[1-9][0-9]*(\.[0-9]+)?)$
token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
executionDuration:
type: integer
description: The estimated duration for the transaction execution in seconds.
example: 30
fromAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
tool:
type: string
description: The tool or service used to generate this estimate.
example: satp
toolDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
integrationDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
includedStepIds:
type: array
description: IDs of further steps included within this step, allowing for nested actions without direct recursion.
items:
type: string
insurance:
type: object
properties:
state:
type: string
description: The state of insurance applicability for the transaction.
example: NOT_INSURABLE
enum:
- NOT_INSURABLE
- INSURABLE
- INSURED
feeAmountUsd:
type: string
description: The fee amount for insurance, represented in USD.
example: '10.00'
pattern: ^(0|[1-9]\d*)(\.\d+)?$
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
Token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
Tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
BridgeInfo:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
IncludedStep:
type: object
description: Details a single step within a route including actions and estimates.
properties:
id:
type: string
description: Id of the step
type:
type: string
description: Type of the step, typically describing the action, e.g., 'swap'.
tool:
type: string
description: Tool used in the step, e.g., 'stargate'.
action:
type: object
properties:
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
fromAmount:
type: string
description: The amount of 'fromToken' to be transferred, specified as a string to maintain precision.
example: '1000000000000000000'
pattern: ^[1-9][0-9]*$
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
slippage:
type: number
format: float
description: The maximum acceptable difference between the expected price of the 'toToken' and the price at the time of the transfer.
example: 0.005
fromAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
estimate:
type: object
description: Provides an estimation for a transaction, including costs, amounts, and execution duration.
properties:
approvalAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAmountMin:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
feeCosts:
type: array
description: A collection of fee costs associated with the transaction.
items:
type: object
description: Details about a specific fee cost associated with the transaction.
properties:
name:
type: string
description: Name of the fee cost.
example: Network Fee
amount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
amountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
token:
type: string
description: The symbol of a token
example: ETH
included:
type: boolean
description: Indicates if the fee is included in the transaction amount.
gasCosts:
type: array
description: A collection of estimated gas costs for executing the transaction.
items:
type: object
properties:
type:
type: string
description: The type of the gas cost.
example: SEND
price:
type: string
description: The gas price, specified as a string to maintain precision.
example: '19236858243'
estimate:
type: string
description: The estimated gas required, specified as a string to maintain precision.
example: '445393'
limit:
type: string
description: The gas limit for the transaction, specified as a string to maintain precision.
example: '579011'
pattern: ^[1-9][0-9]*$
amount:
type: string
description: The amount of gas required in the gas currency.
example: '8567962003424499'
pattern: ^[1-9][0-9]*$
amountUSD:
type: string
description: The amount of gas required in USD.
example: '16.05'
pattern: ^(0(\.[0-9]+)?|[1-9][0-9]*(\.[0-9]+)?)$
token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
executionDuration:
type: integer
description: The estimated duration for the transaction execution in seconds.
example: 30
fromAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
tool:
type: string
description: The tool or service used to generate this estimate.
example: satp
toolDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
integrationDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
includedStepIds:
type: array
description: IDs of further steps included within this step, allowing for nested actions without direct recursion.
items:
type: string
Insurance:
type: object
properties:
state:
type: string
description: The state of insurance applicability for the transaction.
example: NOT_INSURABLE
enum:
- NOT_INSURABLE
- INSURABLE
- INSURED
feeAmountUsd:
type: string
description: The fee amount for insurance, represented in USD.
example: '10.00'
pattern: ^(0|[1-9]\d*)(\.\d+)?$
Action:
type: object
properties:
fromToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
fromAmount:
type: string
description: The amount of 'fromToken' to be transferred, specified as a string to maintain precision.
example: '1000000000000000000'
pattern: ^[1-9][0-9]*$
toToken:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
slippage:
type: number
format: float
description: The maximum acceptable difference between the expected price of the 'toToken' and the price at the time of the transfer.
example: 0.005
fromAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
IntegrationDetails:
type: object
description: Describes integration or tool details such as bridges or exchanges involved in the transaction.
required:
- key
- name
- logoURI
properties:
key:
type: string
description: A unique identifier for the integration or tool.
example: 1inch
name:
type: string
description: The name of the integration or tool.
example: 1inch Exchange
logoURI:
type: string
format: uri
description: URL to the logo of the integration or tool.
example: https://cdn.example.com/logos/1inch.png
Estimate:
type: object
description: Provides an estimation for a transaction, including costs, amounts, and execution duration.
properties:
approvalAddress:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
toAmountMin:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
fromAmount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
feeCosts:
type: array
description: A collection of fee costs associated with the transaction.
items:
type: object
description: Details about a specific fee cost associated with the transaction.
properties:
name:
type: string
description: Name of the fee cost.
example: Network Fee
amount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
amountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
token:
type: string
description: The symbol of a token
example: ETH
included:
type: boolean
description: Indicates if the fee is included in the transaction amount.
gasCosts:
type: array
description: A collection of estimated gas costs for executing the transaction.
items:
type: object
properties:
type:
type: string
description: The type of the gas cost.
example: SEND
price:
type: string
description: The gas price, specified as a string to maintain precision.
example: '19236858243'
estimate:
type: string
description: The estimated gas required, specified as a string to maintain precision.
example: '445393'
limit:
type: string
description: The gas limit for the transaction, specified as a string to maintain precision.
example: '579011'
pattern: ^[1-9][0-9]*$
amount:
type: string
description: The amount of gas required in the gas currency.
example: '8567962003424499'
pattern: ^[1-9][0-9]*$
amountUSD:
type: string
description: The amount of gas required in USD.
example: '16.05'
pattern: ^(0(\.[0-9]+)?|[1-9][0-9]*(\.[0-9]+)?)$
token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
executionDuration:
type: integer
description: The estimated duration for the transaction execution in seconds.
example: 30
fromAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
toAmountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
tool:
type: string
description: The tool or service used to generate this estimate.
example: satp
FeeCost:
type: object
description: Details about a specific fee cost associated with the transaction.
properties:
name:
type: string
description: Name of the fee cost.
example: Network Fee
amount:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
amountUSD:
type: string
description: The amount in string format including all decimals.
pattern: ^([1-9][0-9]*|0)(\.[0-9]+)?$
example: '1000000000000000000'
token:
type: string
description: The symbol of a token
example: ETH
included:
type: boolean
description: Indicates if the fee is included in the transaction amount.
GasCost:
type: object
properties:
type:
type: string
description: The type of the gas cost.
example: SEND
price:
type: string
description: The gas price, specified as a string to maintain precision.
example: '19236858243'
estimate:
type: string
description: The estimated gas required, specified as a string to maintain precision.
example: '445393'
limit:
type: string
description: The gas limit for the transaction, specified as a string to maintain precision.
example: '579011'
pattern: ^[1-9][0-9]*$
amount:
type: string
description: The amount of gas required in the gas currency.
example: '8567962003424499'
pattern: ^[1-9][0-9]*$
amountUSD:
type: string
description: The amount of gas required in USD.
example: '16.05'
pattern: ^(0(\.[0-9]+)?|[1-9][0-9]*(\.[0-9]+)?)$
token:
type: object
description: Metadata detailing a supported token
required:
- chainID
- chainType
- address
- symbol
- decimals
properties:
chainID:
x-category: satp-core
type: string
description: 'The network of the DLT being interacted with. TODO: implement network identification draft'
chainType:
x-category: satp-core
type: string
enum:
- HyperledgerFabric
- HyperledgerBesu
description: Supported DLT protocols.
address:
type: string
description: A blockchain address.
example: '0x102A0F6D9F0F507288fE1e26740cFaD61184CCC7'
name:
type: string
description: The name of the token.
symbol:
type: string
description: The symbol of the token.
decimals:
type: integer
description: How many decimals the token supports.
minimum: 1
logoURI:
type: string
description: The logo of a token, chain, dex etc.
format: uri
tags:
type: array
description: List of tags identifiers providing additional context or categorization.
items:
type: string
example:
- satp
- hyperledger
priceUSD:
type: string
description: The current price of the token in USD.
extensions:
type: object
properties:
bridgeInfo:
type: object
additionalProperties:
type: object
description: Information about the bridge used for the token transfer.
properties:
tokenAddress:
type: string
description: The address of the token being transferred.
example: 0x...
verified:
type: boolean
description: Indicates whether the token is verified.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment