Blockchain gateway
The Ethereum gateway is language-independent software as a service with a RESTful API endpoint that allows for scanning and creating transactions for a specific smart contract on the Ethereum blockchain.
| Property | Environment | Value |
|---|---|---|
| Rinkeby endpoint | production | https://blockchain.genobank.io |
| Rinkeby endpoint | test | https://blockchain-test.genobank.io |
| Ledger address | production | 0xcfe0161f1b24cbca200cb4cdd3028fb048ed4b6f |
| Ledger address | test | 0x531a972901ed27d49fea8b77276d1418d009f87e |
Authentication
Most of the API routes restrict public access and require authentication. Authenticated requests must include a HTTP header Authorization holding a valid JWT token.
$ curl ... -H 'Authorization: JWT {TOKEN}' \
Requests
The server speaks JSON. It’s recommended that every call to the server includes a ContentType header set to application/json; charset=utf-8;.
Requests with POST or PUT method must send data as application/json or multipart/form-data when files are included in the request body.
$ curl -X 'POST' ... \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{}'
Responses
Every response has a unique ID which helps to identify potential problems. It also includes a status code that can help identifying the cause of a potential problem.
Successful requests include a data key, which holds a valid response object, and a meta key, which holds additional information about the result.
{
"id": ...,
"status": ...,
"data": { ... },
"meta": { ... },
}
In case of failure, the server responds with errors key, which holds a list of error objects.
{
"id": ...,
"status": ...,
"errors": [ ... ]
}
Query requests through GET method can return status codes 200, 400, 401, 403 or 500. Mutations through POST, PUT and DELETE can return also codes 201 and 422. Invalid routes return status code 404.
- 200: Success.
- 201: Successfully created.
- 400: Invalid resource or resource not found.
- 401: Unauthenticated access.
- 403: Unauthorized access.
- 404: Path not found.
- 422: Data validation failed.
- 500: System error.
Error Handling
Errors include a unique code number and an error message. The code number helps identifying potential problems and points to the exact position in the system.
{
...
"errors": [
{
"code": 400004,
"message": "Invalid path."
}
]
}
Routes
Transactions
[private] GET /transactions
Shows a paginated list of transactions.
Path parameters
| Name | Description |
|---|---|
| fromBlock | An integer representing the first block. |
| limit | An integer representing the maximum number of items. |
| skip | An integer that defines the number of items to be skipped. |
| toBlock | An integer representing the last block. |
[private] POST /transactions
Sends the received signed transaction to the Ethereum blockchain.
Body fields
An array of strings representing signed transactions.