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
ababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353Pattern: [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-d888b9634de9Fully Qualified Game Name
com.studio.gamePattern: ^[a-z]{2,6}\.(\b[a-z0-9-]{1,59}\b)\.(\b[a-z0-9-]{1,59}\b)Owner address
0xcafe000102030405060708090a0b0c0d0e0fbeefPattern: ^0x[a-fA-F0-9]{40}$Display name
Super GameThe flag that controls display in the Discovery
trueExample: trueThe type of the game
GAMEExample: GAMEPattern: GAME|APPGame description
Super Game for everyone and everywhereMain image
Game imagePattern: ^(http|https)://[-a-zA-Z0-9+&@#/%?=~_|,!:.;]*[-a-zA-Z0-9+@#/%=&_|]\.(?:jpg|jpeg|png)$Background image
Game background imagePattern: ^(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
ababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353Pattern: [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-d888b9634de9OK
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.collectionababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353Pattern: [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.gameababa71162175e6867058b271eea7b5b279326eaf646188ab5e37365f32bb353Pattern: [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?