Create new user with username and password credentials
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
username required | any username of a new user |
hashed_password required | any Hashed password to be used for user authentication |
{- "username": "alice@acme.com",
- "hashed_password": "F4AABE0B40C9ABB8B6FD2EEACB39C965"
}
{- "message": "User created successfully",
- "data": {
- "ref": "#/components/schemas/BiomeNewUser"
}
}
Authenticates a user with username and password credentials
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
username required | any username of user |
hashed_password required | any Hashed password to be used for user authentication |
{- "username": "alice@acme.com",
- "hashed_password": "8945622435187243046536949706b5272644c71336c7254563679727565494b376d4b3554696b734662685962652f6v52562e437a70462f6552489c8b"
}
{- "message": "Successful login",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZjM1YWFjYzEtYTljZC00ZWRhLWI2ZDAtMmVmYWRkZjBjOGE0IiwiaXNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZjM1YWFjYzEtYTljZC00ZWRhLWI2ZDAtMmVmYWRkZjBjOGE0IiwiaXNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc"
}
Removes access tokens associated with a user
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "message": "User successfully logged out"
}
Issues a new access token
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
refresh_token required | any a refresh token issues by biome |
{- "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZjM1YWFjYzEtYTljZC00ZWRhLWI2ZDAtMmVmYWRkZjBjOGE0IiwiaXNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc"
}
{- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZjM1YWFjYzEtYTljZC00ZWRhLWI2ZDAtMmVmYWRkZjBjOGE0IiwiaXNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc"
}
Verifies a user with username and password credentials
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
username required | any username of user |
hashed_password required | any Hashed password to be used for user authentication |
{- "username": "alice@acme.com",
- "hashed_password": "8945622435187243046536949706b5272644c71336c7254563679727565494b376d4b3554696b734662685962652f6v52562e437a70462f6552489c8b"
}
{- "message": "Successful verification",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
Lists all users
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
[- {
- "username": "alice@acme.com",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
]
Fetch a user by ID
user_id required | string Example: f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4 ID of the user |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "username": "alice@acme.com",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
Update a user
user_id required | string Example: f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4 ID of the user |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
username required | any Existing username of user |
hashed_password required | any Hashed password to be used for user authentication |
new_password | any Hash of the new password to be used for user authentication |
Array of objects (BiomeNewUserKey) |
{- "username": "alice@acme.com",
- "hashed_password": "8945622435187243046536949706b5272644c71336c7254563679727565494b376d4b3554696b734662685962652f6v52562e437a70462f6552489c8b"
}
{- "message": "Credentials and key updated successfully",
- "data": [
- {
- "display_name": "Biome Admin Key",
- "encrypted_private_key": "XNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
]
}
Delete a user
user_id required | string Example: f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4 ID of the user |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "message": "User deleted successfully"
}
List keys of a user
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
[- {
- "display_name": "Biome Admin Key",
- "encrypted_private_key": "XNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
]
Update a key's display name
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
public_key required | any Public key |
new_display_name required | any Updated display name for the key |
{- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "new_display_name": "Admin key pair"
}
{- "message": "Key updated successfully"
}
Add a new key for user
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
display_name | string Display name for key |
encrypted_private_key | string Encrypted private key |
public_key | string Public key |
user_id | string Internal unique identifier for the user |
{- "display_name": "Biome Admin Key",
- "encrypted_private_key": "XNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
{- "message": "Key added successfully",
- "data": {
- "display_name": "Biome Admin Key",
- "encrypted_private_key": "XNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
}
Fetch key of a user
public_key required | string Example: 026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118 Public key of the user |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "data": {
- "display_name": "Biome Admin Key",
- "encrypted_private_key": "XNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
}
Delete key of a user
user_id required | string Example: f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4 ID of the user |
public_key required | string Example: 026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118 Public key of the user |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "message": "User deleted successfully",
- "data": {
- "display_name": "Biome Admin Key",
- "encrypted_private_key": "XNzIjoic2VsZi1pc3N1ZWQiLCJleHAiOjE1ODAyMzkyMjh9.P8hA0ru_xriYX7qryl08ZEp86t5HD_AEVPEUXY70Ehc",
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "user_id": "f35aacc1-a9cd-4eda-b6d0-2efaddf0c8a4"
}
}
Used to check if server is successfully running
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "version": "0.4.1",
- "node_id": "node-009",
- "display_name": "Cargill Node 009",
- "service_endpoint": "tcp://foo.bar.biz",
- "network_endpoints": [
- "tcp://foo.bar.biz"
], - "advertised_endpoints": [
- "tcp://foo.bar.biz"
]
}
This endpoint can be used to view all of the circuit proposals that the node is a proposed member of. If a circuit management type is provided via the "management_type" query parameter, only circuit proposals that have the given circuit management type will be returned. If a node ID is provided via the "member" query parameter, only circuit proposals that have the given node as a member will be returned. If no filter is provided, all of the node's circuit proposals will be returned.
offset | integer Default: 0 paging offset |
limit | integer Default: 100 maximum number of items to return (max 100) |
management_type | string Only show proposed circuits matching the given circuit management type |
member | string Only show proposed circuits that have a member with the given node ID |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "data": [
- {
- "proposal_type": "Create",
- "circuit_id": "01234-ABCDE",
- "circuit_hash": "8ce518770b962429a953b10220905ac9adf86a855f0b085695f444edf991b8ca",
- "circuit": {
- "circuit_id": "01234-ABCDE",
- "members": [
- {
- "node_id": "alpha-node-000",
- "endpoints": [
- "tcps://12.0.0.123:8431"
]
}
], - "roster": [
- {
- "service_id": "abcd",
- "service_type": "scabbard",
- "allowed_nodes": [
- "alpha-node-000"
], - "arguments": [
- [
- "string",
- "string"
]
]
}
], - "management_type": "gameroom",
- "application_metadata": "string",
- "comments": "string"
}, - "votes": [
- {
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "vote": "Accept",
- "voter_node_id": "alpha-node-000"
}
], - "requester": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "requester_node_id": "alpha-node-000"
}
], - "paging": {
- "current": "/registry/nodes?offset=10&limit=10",
- "offset": 10,
- "limit": 10,
- "total": 50,
- "first": "/registry/nodes?offset=0&limit=10",
- "prev": "/registry/nodes?offset=0&limit=10",
- "next": "/registry/nodes?offset=20&limit=10",
- "last": "/registry/nodes?offset=40&limit=10"
}
}
This endpoint can be used to view a specific circuit proposal that the node is a proposed member of.
circuit_id required | string Circuit ID of the proposal to fetch |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "proposal_type": "Create",
- "circuit_id": "01234-ABCDE",
- "circuit_hash": "8ce518770b962429a953b10220905ac9adf86a855f0b085695f444edf991b8ca",
- "circuit": {
- "circuit_id": "01234-ABCDE",
- "members": [
- {
- "node_id": "alpha-node-000",
- "endpoints": [
- "tcps://12.0.0.123:8431"
]
}
], - "roster": [
- {
- "service_id": "abcd",
- "service_type": "scabbard",
- "allowed_nodes": [
- "alpha-node-000"
], - "arguments": [
- [
- "string",
- "string"
]
]
}
], - "management_type": "gameroom",
- "application_metadata": "string",
- "comments": "string"
}, - "votes": [
- {
- "public_key": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "vote": "Accept",
- "voter_node_id": "alpha-node-000"
}
], - "requester": "026c889058c2d22558ead2c61b321634b74e705c42f890e6b7bc2c80abb4713118",
- "requester_node_id": "alpha-node-000"
}
Send circuit management payload in bytes to admin service
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "message": "DatabaseError({description})"
}
Register the handler for a circuit management type
type required | string The circuit management type is the type of circuit the handler will manage |
last | integer Default: 0 A timestamp in milliseconds from the Unix Epoch, indicating the last received event. |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "status": "OK",
- "circuit_management_type": "gameroom",
- "error_reason": "string"
}
This endpoint can be used to view all or some of the circuits that the node is a member of. If a node ID is provided via the "filter" query parameter, only circuits that have the given node ID as a member will be returned; if no filter is provided, all of the node's circuits will be returned.
offset | integer Default: 0 paging offset |
limit | integer Default: 100 maximum number of items to return (max 100) |
filter | string Node ID that must be present in the returned circuits |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "data": [
- {
- "id": "01234-ABCDE",
- "members": [
- "alpha-node-000"
], - "roster": [
- {
- "service_id": "abcd",
- "service_type": "scabbard",
- "allowed_nodes": [
- "string"
]
}
], - "management_type": "gameroom"
}
], - "paging": {
- "current": "/registry/nodes?offset=10&limit=10",
- "offset": 10,
- "limit": 10,
- "total": 50,
- "first": "/registry/nodes?offset=0&limit=10",
- "prev": "/registry/nodes?offset=0&limit=10",
- "next": "/registry/nodes?offset=20&limit=10",
- "last": "/registry/nodes?offset=40&limit=10"
}
}
This endpoint can be used to view a specific circuit that the node is a member of.
circuit_id required | string ID of the circuit to fetch |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "id": "01234-ABCDE",
- "members": [
- "alpha-node-000"
], - "roster": [
- {
- "service_id": "abcd",
- "service_type": "scabbard",
- "allowed_nodes": [
- "string"
]
}
], - "management_type": "gameroom"
}
This endpoint can be used to add a new node to the Splinter registry. The node must be valid (see the Splinter registry documentation for details on node validity).
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
identity | string |
endpoints | Array of strings |
display_name | string |
keys | Array of strings |
metadata | object |
{- "identity": "node-123123-asdf",
- "endpoints": [
- "tcps://12.0.0.123:8431"
], - "display_name": "Cargill - Node 1",
- "keys": [
- "03e0e5086beffc640ec0d149d4f1197fdde0f338afac774541831281c6fd91cbe0"
], - "metadata": {
- "company": "Cargill",
- "status": "Up"
}
}
{- "message": "DatabaseError({description})"
}
This endpoint can be used to view all or some of the nodes in the registry. If metadata filters are provided via the "filter" query parameter, only nodes that match the given filters will be returned. See the Splinter registry documentation for details on metadata filters.
offset | integer Default: 0 paging offset |
limit | integer Default: 100 maximum number of items to return (max 100) |
filter | string Example: filter=%7B%22company%22%3A%5B%22%3D%22%2C%22Cargill%22%5D%7D url-encodeded stringified JSON containing property filters on the node's metadata properties in the format {METADATA_PROPERTY:[{"operator":OPERATOR,"value":VALUE}]} |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "data": [
- {
- "identity": "node-123123-asdf",
- "endpoints": [
- "tcps://12.0.0.123:8431"
], - "display_name": "Cargill - Node 1",
- "keys": [
- "03e0e5086beffc640ec0d149d4f1197fdde0f338afac774541831281c6fd91cbe0"
], - "metadata": {
- "company": "Cargill",
- "status": "Up"
}
}
], - "paging": {
- "current": "/registry/nodes?offset=10&limit=10",
- "offset": 10,
- "limit": 10,
- "total": 50,
- "first": "/registry/nodes?offset=0&limit=10",
- "prev": "/registry/nodes?offset=0&limit=10",
- "next": "/registry/nodes?offset=20&limit=10",
- "last": "/registry/nodes?offset=40&limit=10"
}
}
This endpoint can be used to view a specific nodes in the registry.
identity required | string identity of node to fetch |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "data": {
- "identity": "node-123123-asdf",
- "endpoints": [
- "tcps://12.0.0.123:8431"
], - "display_name": "Cargill - Node 1",
- "keys": [
- "03e0e5086beffc640ec0d149d4f1197fdde0f338afac774541831281c6fd91cbe0"
], - "metadata": {
- "company": "Cargill",
- "status": "Up"
}
}
}
This endpoint can be used to add a new node to the registry, or replace an existing node. When replacing an existing node, the node identity cannot be changed. This action is idempotent.
identity required | string identity of node to add/replace |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
identity | string |
endpoints | Array of strings |
display_name | string |
keys | Array of strings |
metadata | object |
{- "identity": "node-123123-asdf",
- "endpoints": [
- "tcps://12.0.0.123:8431"
], - "display_name": "Cargill - Node 1",
- "keys": [
- "03e0e5086beffc640ec0d149d4f1197fdde0f338afac774541831281c6fd91cbe0"
], - "metadata": {
- "company": "Cargill",
- "status": "Up"
}
}
{- "message": "DatabaseError({description})"
}
This endpoint can be used to remove a node from the registry.
identity required | string identity of node to delete |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "message": "DatabaseError({description})"
}
This endpoint can be used to submit batches to a Scabbard service. The body of the request must be a list of valid Sabre batches. If the batches are submitted successfully, the response will contain a link for checking the status of the submitted batches.
circuit required | string Circuit the targeted service belongs to |
service_id required | string ID of the targeted service |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
{- "link": "/scabbard/abcde-01234/ABCD/batch_statuses?ids=6ff35474a572087e08fd6a54d563bd8172951b363e5c9731f1a40a855e14bba45dac515364a08d8403f4fb5d4a206174b7f63c29e4f4e425dc71b95494b8a798"
}
This endpoint can be used to check the status of one or more batches
that were submitted to a Scabbard service. The IDs of the batches to
check should be specified with the ids
query parameter. The wait
query parameter requests that the server wait for the given number of
seconds for the batches to be committed; however, this wait time is not
guaranteed.
circuit required | string Circuit the targeted service belongs to |
service_id required | string ID of the targeted service |
ids required | string Comma-separated list of batch IDs |
wait | integer Default: 300 Time (in seconds) to wait for batches to be committed. If not provided, the server will return the batch statuses immediately. If the parameter is provided without a value, the default time (300 seconds) will be used. |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
[- {
- "id": "6ff35474a572087e08fd6a54d563bd8172951b363e5c9731f1a40a855e14bba45dac515364a08d8403f4fb5d4a206174b7f63c29e4f4e425dc71b95494b8a798",
- "status": {
- "statusType": "Unknown",
- "message": [
- {
- "transaction_id": "f4e147ff464013deccb3e68bb8619beffb29ff86b401257c93bcf8ef76d7ca173fa84b4f4a58414ad2d00a2c9f810cbb726e01cd26ebd44720239d9d35853099",
- "error_message": "Wasm contract returned invalid transaction: xo, 0.3.3",
- "error_data": [
- 0
]
}
]
}
}
]
This endpoint can be used to fetch a list of entries from a Scabbard
service's state. The entries can be filtered using an address prefix
provided with the prefix
query parameter.
circuit required | string Circuit the targeted service belongs to |
service_id required | string ID of the targeted service |
prefix | string Example: prefix=00ec01 An address prefix for filtering state entries. If no prefix is specified, all state entries will be returned. |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
[- {
- "address": "string",
- "value": [
- 0
]
}
]
This endpoint can be used to fetch the value at a specific address in a Scabbard service's state.
circuit required | string Circuit the targeted service belongs to |
service_id required | string ID of the targeted service |
address required | string Example: 000000a87cb5eafdcca6a814e4add97c4b517d3c530c2f44b31d18e3b0c44298fc1c14 The address of the value to retrieve from state |
SplinterProtocolVersion | integer Example: 1 The protocol version which the client can understand. If not provided, the node will respond using its latest protocol version. |
[- 0
]