Games
Make sure to use your X-Auth-Token when making a POST request. Your X-Auth-Token is the private key associated to your ERC-20 wallet.
Create Game
Create a new game
ababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353
Pattern: [0-9a-fA-F]{64}
Unique Request Id that makes APIs idempotent. If two requests have the same ID, one of them will fail.
ab62663d-1645-4026-ba2d-d888b9634de9
Fully Qualified Game Name
com.studio.game
Pattern: ^[a-z]{2,6}\.(\b[a-z0-9-]{1,59}\b)\.(\b[a-z0-9-]{1,59}\b)
Owner address
0xcafe000102030405060708090a0b0c0d0e0fbeef
Pattern: ^0x[a-fA-F0-9]{40}$
Display name
Super Game
The flag that controls display in the Discovery
true
Example: true
The type of the game
GAME
Example: GAME
Pattern: GAME|APP
Game description
Super Game for everyone and everywhere
Main image
Game image
Pattern: ^(http|https)://[-a-zA-Z0-9+&@#/%?=~_|,!:.;]*[-a-zA-Z0-9+@#/%=&_|]\.(?:jpg|jpeg|png)$
Background image
Game background image
Pattern: ^(http|https)://[-a-zA-Z0-9+&@#/%?=~_|,!:.;]*[-a-zA-Z0-9+@#/%=&_|]\.(?:jpg|jpeg|png)$
OK
Bad Request
Unauthorized
Forbidden
Not Found
Method Not Allowed
Conflict
Too Many Requests
Internal Server Error
POST /games/manage/create HTTP/1.1
Host: game-api.openvessel.io
X-Auth-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 415
{
"fqGn": "com.studio.game",
"owner": "0xcafe000102030405060708090a0b0c0d0e0fbeef",
"displayName": "Super Game",
"displayInDiscovery": true,
"gameType": "GAME",
"description": "Super Game for everyone and everywhere",
"appInfoSet": [
{
"packageName": "text",
"publicKey": "text",
"platform": "iOS"
}
],
"beneficiaries": {
"0xcafe000102030405060708090a0b0c0d0e0fbeef": 100
},
"imageUrl": "Game image",
"backgroundImageUrl": "Game background image"
}
{
"response": {
"txHash": "text",
"description": "text",
"details": {
"fqGn": "text",
"createdAt": 1,
"displayName": "text",
"displayInDiscovery": true,
"description": "text",
"contractAddress": "text",
"owner": "text",
"imageUrl": "text",
"backgroundImageUrl": "text",
"appInfoList": [
{
"packageName": "text",
"publicKey": "text",
"platform": "iOS"
}
]
}
}
}
Create a new game multipart
ababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353
Pattern: [0-9a-fA-F]{64}
Unique Request Id that makes APIs idempotent. If two requests have the same ID, one of them will fail.
ab62663d-1645-4026-ba2d-d888b9634de9
OK
Bad Request
Unauthorized
Forbidden
Not Found
Method Not Allowed
Conflict
Too Many Requests
Internal Server Error
POST /games/manage/create-multipart HTTP/1.1
Host: game-api.openvessel.io
X-Auth-Key: text
Content-Type: multipart/form-data
Accept: */*
Content-Length: 399
{
"data": {
"fqGn": "com.studio.game",
"owner": "0xcafe000102030405060708090a0b0c0d0e0fbeef",
"displayName": "Super Game",
"displayInDiscovery": true,
"gameType": "GAME",
"description": "Super Game for everyone and everywhere",
"appInfoSet": [
{
"packageName": "text",
"publicKey": "text",
"platform": "iOS"
}
],
"beneficiaries": {
"0xcafe000102030405060708090a0b0c0d0e0fbeef": 100
}
},
"image": "binary",
"backgroundImage": "binary"
}
{
"response": {
"txHash": "text",
"description": "text",
"details": {
"fqGn": "text",
"createdAt": 1,
"displayName": "text",
"displayInDiscovery": true,
"description": "text",
"contractAddress": "text",
"owner": "text",
"imageUrl": "text",
"backgroundImageUrl": "text",
"appInfoList": [
{
"packageName": "text",
"publicKey": "text",
"platform": "iOS"
}
]
}
}
}
create vs create-multipart
You need to upload the image somewhere and post the URL when you use /games/manage/create
API. Once it is created, we store image data in our DB.
On the other hand, you can post the image binary directly to us if you use /game/manage/create-multipart
API.
Game Metadata
Update game metadata
Fully Qualified Collection Name
com.studio.game.collection
ababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353
Pattern: [0-9a-fA-F]{64}
New display name
New description
New image URL
OK
No content
Bad Request
Unauthorized
Forbidden
Not Found
Method Not Allowed
Conflict
Too Many Requests
Internal Server Error
POST /collections/manage/{fqCn}/update-metadata HTTP/1.1
Host: game-api.openvessel.io
X-Auth-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 61
{
"displayName": "text",
"description": "text",
"imageUrl": "text"
}
No content
Update game metadata multipart
Fully Qualified Game Name
com.studio.game
ababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353
Pattern: [0-9a-fA-F]{64}
OK
No content
Bad Request
Unauthorized
Forbidden
Not Found
Method Not Allowed
Conflict
Too Many Requests
Internal Server Error
POST /games/manage/{fqGn}/update-metadata-multipart HTTP/1.1
Host: game-api.openvessel.io
X-Auth-Key: text
Content-Type: multipart/form-data
Accept: */*
Content-Length: 96
{
"data": {
"displayName": "text",
"description": "text"
},
"image": "binary",
"backgroundImage": "binary"
}
No content
Game Lookup
Lookup the game by fqGn
You can get the game details by fqGn.
OK
Bad Request
Unauthorized
Forbidden
Not Found
Method Not Allowed
Conflict
Too Many Requests
Internal Server Error
GET /games/{fqGn} HTTP/1.1
Host: game-api.openvessel.io
Accept: */*
{
"response": {
"fqGn": "text",
"createdAt": 1,
"displayName": "text",
"displayInDiscovery": true,
"description": "text",
"contractAddress": "text",
"owner": "text",
"imageUrl": "text",
"backgroundImageUrl": "text",
"appInfoList": [
{
"packageName": "text",
"publicKey": "text",
"platform": "iOS"
}
]
}
}
Lookup the game by platform and package name
You can get the game details by platform and package name.
OK
Bad Request
Unauthorized
Forbidden
Not Found
Method Not Allowed
Conflict
Too Many Requests
Internal Server Error
GET /games/{platform}/{packageName} HTTP/1.1
Host: game-api.openvessel.io
Accept: */*
{
"response": {
"fqGn": "text",
"createdAt": 1,
"displayName": "text",
"displayInDiscovery": true,
"description": "text",
"contractAddress": "text",
"owner": "text",
"imageUrl": "text",
"backgroundImageUrl": "text",
"appInfoList": [
{
"packageName": "text",
"publicKey": "text",
"platform": "iOS"
}
]
}
}
Last updated
Was this helpful?