Documentation publique de l'API du développeur pour Gods Unchained, un jeu de cartes à collectionner sur la blockchain Ethereum.
Cette version de l'API ( v0
) est en version bêta publique limitée : si vous découvrez un bug, ou si l'API renvoie des résultats contraires à la spécification, signalez-le ici. Les spécifications d’erreur seront bientôt ajoutées.
Voici quelques outils tiers construits à l'aide de ces API. Assurez-vous de demander sur notre serveur Discord si vous cherchez de l'aide ou si vous vous demandez quoi construire.
L'URL de base pour toutes les demandes est :
https://api.godsunchained.com
Cette URL doit être complétée par la version demandée (version actuelle : v0
).
https://api.godsunchained.com/v0/
Nous prenons en charge les requêtes de la forme suivante :
https://api.godsunchained.com/v0/card?god=nature&god=death
Les clés d'argument en double seront interprétées de manière disjonctive : cette requête renverra les cartes où le dieu est soit la nature, soit la mort.
Toutes les requêtes pouvant renvoyer plusieurs objets peuvent être façonnées par les paramètres page
et perPage
.
https://api.godsunchained.com/v0/proto?page=3&perPage=20
Tous les points de terminaison paginés renvoient des données au format suivant :
{
total: number
page: number
perPage: number
records: Array<any>
}
Où total
correspond au nombre d'enregistrements découverts par cette requête.
Les tris sont appliqués aux points de terminaison paginés à l'aide des paramètres de requête sort
et order
:
https://api.godsunchained.com/v0/card?sort=mana&order=asc
Les types de plage et de nombres peuvent être classés par order=asc
et order=desc
, par défaut asc
.
Plusieurs paramètres de tri peuvent être appliqués dans une seule requête et seront appliqués dans l'ordre :
https://api.godsunchained.com/v0/card?sort=mana&order=asc&sort=health&order=desc
Pour les requêtes sans paires exactes de paramètres de tri et d'ordre (où plusieurs paramètres sont appliqués), il est nécessaire de marquer l'ordre comme null
:
https://api.godsunchained.com/v0/card?sort=mana&order=asc&sort=god&order=null&sort=health&order=desc
Actuellement, il existe une limite de débit de 5 par seconde (5/s) sur tous les points de terminaison. Cela pourrait changer à l’avenir.
Types généraux :
Taper | Description |
---|---|
Une chaîne codée en URL. | |
Un nombre décimal. | |
true ou false |
Types d'API personnalisés :
Taper | Description |
---|---|
Une adresse Ethereum hexadécimale, insensible à la casse. | |
Un nombre précis 1000 , une plage 1000-2000 , un minimum 1000- ou un maximum -2000 . |
Les options valides pour les types d'énumération dans diverses API sont présentées ci-dessous :
Taper | Possibilités |
---|---|
lumière, mort, nature, guerre, magie, tromperie | |
rare, épique, légendaire, brillant | |
commun, rare, épique, légendaire, mythique | |
créature, sort, arme | |
néant, éther, atlante, viking, olympien, anubien, amazone | |
plaine, ombre, or, diamant | |
plein, carte |
Il existe plusieurs « types » de cartes dans Gods Unchained :
Certains de ces points de terminaison renvoient une combinaison des éléments ci-dessus, tandis que d'autres ne le font pas : ceci est documenté par les points de terminaison individuels. En général, la valeur par défaut est de renvoyer uniquement les cartes qui peuvent devenir des jetons ERC721 (c'est-à-dire les cartes Token et Model).
Les cartes prototypes , ou protos , contiennent les statistiques sous-jacentes d'une classe de carte.
Méthode | Description | Statut |
---|---|---|
/card/{id} | Obtenir une carte | |
/card | Cartes de liste | |
/proto/{id} | Obtenez un prototype | |
/proto | Liste des prototypes | |
/factory/{address} | Obtenez l'usine | |
/factory | Obtenez une liste des usines | |
/factory/{address}/purchase/{id} | Obtenir un achat | |
/purchase | Liste des usines | |
/factory/{address}/purchase/{id}/pack/{index} | Obtenez le pack | |
/pack | Packs de listes | |
/referral | Obtenez une liste de références | |
/image/{id} | Obtenir une image | |
/user/{address} | Obtenir un utilisateur | |
/ranking | Répertorier les utilisateurs classés par cartes détenues | |
/rarity | Obtenez des statistiques de rareté | |
/user/{address}/inventory | Obtenir l'inventaire d'un utilisateur | |
/deck | Encoder un deck dans une chaîne de deck | |
/deck/{string} | Décoder un deck à partir d'une chaîne de deck |
Paramètres
Nom | Taper | Description |
---|---|---|
identifiant | Identifiant ERC721 de la carte |
Renvoie la carte jeton avec l' id
et les métadonnées appropriées. Actuellement conforme aux spécifications des métadonnées génériques et Apollo.
Renvoie une liste de jetons et de cartes modèles.
Paramètres
Nom | Taper | Description |
---|---|---|
user | obtenir des cartes appartenant à une adresse spécifique | |
rarity | obtenir des cartes avec une rareté spécifique | |
quality | obtenir des cartes avec une qualité spécifique | |
god | obtenir des cartes avec un dieu spécifique | |
type | obtenir des cartes d'un type spécifique | |
tribe | obtenir des cartes avec une tribu spécifique | |
purity | obtenir des cartes d'une pureté particulière | |
mana | obtenir des cartes avec un mana spécifique | |
health | obtenir des cartes avec une santé spécifique | |
attack | obtenir des cartes avec une attaque spécifique | |
proto | obtenir des cartes avec un identifiant de prototype spécifique |
Format de réponse
{
"total": 1000,
"page": 1,
"perPage": 1,
"records": [
{
"id": {
"Int64": 0,
"Valid": false,
}
"proto": 319,
"purity": 59,
"user": "0xCb3562Dd15807e2BCF35092B1e873971AF0a51da"
}
]
}
Renvoie la carte prototype avec l'identifiant id
.
Paramètres
Nom | Taper | Description |
---|---|---|
id | identifiant de la carte prototype |
Format de réponse
{
"id":300,
"name":"Guerilla Sabotage",
"effect":"Deal 4 damage to a random enemy creature. Draw a card.",
"god":"Nature",
"rarity":"Common",
"tribe":{"String":"","Valid":false},
"mana":4,
"attack":{"Int64":0,"Valid":false},
"health":{"Int64":0,"Valid":false},
"type":"Spell"
}
Renvoie une liste de cartes prototypes.
Paramètres
Nom | Taper | Description |
---|---|---|
god | obtenir des protos avec un dieu spécifique | |
rarity | obtenez des protos avec une rareté spécifique | |
type | obtenir des protos avec un type spécifique | |
tribe | obtenir des protos avec une tribu spécifique | |
set | obtenir des protos avec un ensemble spécifique | |
collectable | obtenir des protos collectables ou non | |
mana | obtenir des protos avec un mana spécifique | |
health | obtenir des protos avec une santé spécifique | |
attack | obtenir des protos avec une attaque spécifique |
Format de réponse
{
"total": 380,
"page": 1,
"perPage: 1,
"records": [
{
"id":300,
"name":"Guerilla Sabotage",
"effect":"Deal 4 damage to a random enemy creature. Draw a card.",
"god":"Nature",
"rarity":"Common",
"tribe":{"String":"","Valid":false},
"mana":4,
"attack":{"Int64":0,"Valid":false},
"health":{"Int64":0,"Valid":false},
"type":"Spell"
}
]
}
Renvoie l'usine du pack à address
adresse .
Paramètres
Nom | Taper | Description |
---|---|---|
address | adresse de l'usine |
Format de réponse
{
"address":"0x0777f76d195795268388789343068e4fcd286919",
"type":"rare"
}
Renvoie une liste des usines de packs.
Paramètres
Nom | Taper | Description |
---|---|---|
type | type de paquet |
Format de réponse
{
"total": 4,
"page": 1,
"perPage: 1,
"records": [
{
"address":"0x0777f76d195795268388789343068e4fcd286919",
"type":"rare"
}
]
}
Renvoie id
d'achat de l'usine de conditionnement à address
.
Paramètres
Nom | Taper | Description |
---|---|---|
address | adresse de l'usine | |
id | identifiant d'achat dans l'usine |
Format de réponse
{
"id":0,
"user":"0x3882C6ba6475165aC5257Ddc1D8d7782E7805c28",
"count":1,
"remaining":0,
"factory":"0x000983ba1A675327F0940b56c2d49CD9c042DFBF",
"txhash":"0xda2b2956588bd642bed4b0aa8f63c979f4893662dd31c237aa58b173bf4eb223",
"type":"shiny"
}
Renvoie une liste d'achats.
Paramètres
Nom | Taper | Description |
---|---|---|
type | obtenir des achats à partir d'un type de pack spécifique | |
user | obtenir les achats effectués par un utilisateur spécifique | |
factory | faire des achats effectués dans une usine spécifique | |
remaining | nombre de packs restant à activer à partir de cet achat | |
count | nombre de packs achetés lors de cet achat |
Format de réponse
{
"total": 1000,
"page": 1,
"perPage: 1,
"records": [
{
"id":0,
"user":"0x3882C6ba6475165aC5257Ddc1D8d7782E7805c28",
"count":1,
"remaining":0,
"factory":"0x000983ba1A675327F0940b56c2d49CD9c042DFBF",
"txhash":"0xda2b2956588bd642bed4b0aa8f63c979f4893662dd31c237aa58b173bf4eb223",
"type":"shiny"
}
]
}
Renvoie le pack avec l' index
de id
d'achat de l'usine du pack avec address
adresse .
Paramètres
Nom | Taper | Description |
---|---|---|
address | adresse de l'usine d'emballage | |
id | identifiant de l'achat | |
index | index du pack dans l'achat |
Format de réponse
{
"purchaseid":11665,
"purchaseindex":0,
"purchaseindices":[0,1,2,3,4],
"user":"0x62ed0960478Cd1aAA29e9e94928107D7b1E2Cef8",
"factory":"0x0777F76D195795268388789343068e4fCd286919",
"opened":true,
"cards":[
{"proto":264,"purity":600},
{"proto":38,"purity":990},
{"proto":299,"purity":549},
{"proto":347,"purity":275},
{"proto":291,"purity":850}
],
"type":"rare"
}
Renvoie une liste de packs.
Paramètres
Nom | Taper | Description |
---|---|---|
type | obtenir des packs d'un type spécifique | |
user | obtenir des packs achetés par un utilisateur spécifique | |
factory | obtenir des packs créés par une usine spécifique | |
purchase | obtenir des packs créés lors d'un achat spécifique | |
opened | si ces paquets ont été ouverts | |
fill | s'il faut remplir ces packs avec leurs cartes |
Format de réponse
{
"total": 1000,
"page": 1,
"perPage: 1,
"records": [
{
"purchaseid":11665,
"purchaseindex":0,
"purchaseindices":[0,1,2,3,4],
"user":"0x62ed0960478Cd1aAA29e9e94928107D7b1E2Cef8",
"factory":"0x0777F76D195795268388789343068e4fCd286919",
"opened":true,
"cards":[
{"proto":264,"purity":600},
{"proto":38,"purity":990},
{"proto":299,"purity":549},
{"proto":347,"purity":275},
{"proto":291,"purity":850}
],
"type":"rare"
}
]
}
Renvoie une liste de références.
Paramètres
Nom | Taper | Description |
---|---|---|
type | obtenir des références avec une rareté spécifique | |
referrer | obtenir des références faites par un utilisateur spécifique | |
purchaser | obtenir des références pour un utilisateur spécifique | |
factory | obtenir des références dans une usine particulière |
Format de réponse
{
"total": 1000,
"page": 1,
"perPage: 1,
"records": [
{
"id":0,
"referrer":"0xb08F95dbC639621DbAf48A472AE8Fce0f6f56a6e",
"purchaser":"0xE4a8dfcA175cDcA4Ae370f5b7aaff24bD1C9C8eF",
"factory":"0x1e891C587b345ab02A31b57c1F926fB08913d10D",
"value":1746000000000000000,
"count":0,
"type":"shiny"
}
]
}
Renvoie une image basée sur le prototype de carte avec l'identifiant id
. Pour obtenir une image sous forme de carte, utilisez les paramètres format
et quality
.
Paramètres
Nom | Taper | Description |
---|---|---|
format | le format dans lequel l'image doit être présentée | |
h | la hauteur à laquelle l'image sera redimensionnée | |
w | la largeur à laquelle l'image sera redimensionnée | |
quality | la qualité de la carte |
Obtenez un utilisateur.
Paramètres
Nom | Taper | Description |
---|---|---|
address | l'adresse Ethereum de l'utilisateur |
Format de réponse
{
"username": "ender",
"address": "0xC257274276a4E539741Ca11b590B9447B26A8051",
"nonce": 0
}
Pour vous aider à créer des applications plus efficaces pour notre écosystème, nous fournissons également quelques points de terminaison d'API utiles. Ces points de terminaison peuvent être obsolètes dans les versions futures, car ils sont composables à partir de points de terminaison existants, mais fournissent une interface pratique lors du développement d'applications naissantes axées sur GU.
Renvoie une liste ordonnée d'utilisateurs possédant le plus de cartes répondant à des conditions particulières.
Paramètres
Nom | Taper | Description |
---|---|---|
rarity | obtenir le classement des cartes avec une rareté spécifique | |
quality | obtenir le classement des cartes avec une qualité spécifique | |
god | obtenir le classement des cartes avec un dieu spécifique | |
type | obtenir le classement des cartes avec un type spécifique | |
tribe | obtenir le classement des cartes avec une tribu spécifique | |
purity | obtenir le classement des cartes avec une limite de pureté minimale | |
mana | obtenir le rang des cartes avec un mana spécifique | |
health | obtenir le classement des cartes avec une santé spécifique | |
attack | obtenir le classement des cartes avec une attaque spécifique | |
proto | obtenir le classement des cartes avec un identifiant de prototype spécifique |
Format de réponse
{
"total": 10000,
"page": 1,
"perPage": 1,
"records": [
{
"user": "0xa012623C2d4EB0cfe921Bd283bb1823370Ae2737",
"count": 1585
}
]
}
Renvoie des informations de rareté sur les protos.
Paramètres
Nom | Taper | Description |
---|---|---|
user | obtenir des informations de rareté sur les cartes appartenant à une adresse spécifique | |
rarity | obtenir des informations sur la rareté des cartes avec une rareté spécifique | |
quality | obtenir des informations sur la rareté des cartes d'une qualité spécifique | |
god | obtenir des informations de rareté sur les cartes avec un dieu spécifique | |
type | obtenir des informations de rareté sur les cartes d'un type spécifique | |
tribe | obtenir des informations de rareté sur les cartes avec une tribu spécifique | |
purity | obtenir des informations sur la rareté des cartes dans une plage de pureté | |
mana | obtenir des informations sur la rareté des cartes dans une plage de mana | |
health | obtenir des informations de rareté sur les cartes dans une plage de santé | |
attack | obtenir des informations de rareté sur les cartes avec une portée d'attaque | |
proto | ` | obtenir des informations sur la rareté des cartes avec un identifiant de prototype spécifique |
Options de tri
proto
, plain
, shadow
, gold
, diamond
Format de réponse
{
"total": 380,
"page": 1,
"perPage": 1,
"records": [
{
"proto": 1,
"plain": 1325,
"shadow": 72,
"gold": 20,
"diamond": 3
}
]
}
Renvoie l'inventaire de l'utilisateur avec address
adresse , y compris les cartes de jeton, fantômes et centralisées.
Paramètres
Nom | Taper | Description |
---|---|---|
rarity | obtenir des cartes avec une rareté spécifique | |
quality | obtenir des cartes avec une qualité spécifique | |
god | obtenir des cartes avec un dieu spécifique | |
type | obtenir des cartes avec un type spécifique | |
tribe | obtenir des cartes avec une tribu spécifique | |
purity | obtenir des cartes dans une plage de pureté | |
mana | obtenir des cartes dans une plage de mana | |
health | obtenir des cartes dans une plage de santé | |
attack | obtenir des cartes avec une portée d'attaque | |
proto | obtenir des cartes avec un identifiant de prototype spécifique |
Format de réponse
{
"total": 380,
"page": 1,
"perPage": 1,
"records": [
{
"proto": 1,
"purities": [
"100", "200", "300", "2999"
]
}
]
}
Les DeckStrings sont une norme pratique pour permettre aux applications d'importer et d'exporter des decks. Les API suivantes fournissent une interface pratique pour les opérations de base sur les chaînes de deck.
Encode un deck en chaîne de deck.
Corps de la demande
{
"version": 1,
"god": "deception",
"protos": [
290, 17, 201, 201, 80, 80, 93, 93, 64, 64, 185, 185, 55, 55, 97, 331, 281, 281, 252, 252, 330,
330, 280, 202, 202, 265, 265, 37, 94, 94
]
}
Format de réponse
AQYBBhElYZgCogLLAgIMN0BQXV65AckBygH8AYkCmQLKAg==
Décode un deck à partir d’une chaîne de deck.
Paramètres
Format de réponse
{
"version": 1,
"god": "deception",
"protos": [
290, 17, 201, 201, 80, 80, 93, 93, 64, 64, 185, 185, 55, 55, 97, 331, 281, 281, 252, 252, 330,
330, 280, 202, 202, 265, 265, 37, 94, 94
]
}
Répertorie les modes de jeu avec quelques propriétés.
Format de réponse
[
{
"id": 2,
"name": "Constructed",
"description": "Classic Contructed",
"live": true,
"required_level": 0,
"properties": {
"type": 4,
"image_url": "https://images.godsunchained.com/misc/classic_constructed.webp"
}
}
]
Afficher les résultats du match
Paramètres
Nom | Taper | Description |
---|---|---|
start_time | heure de début du match (format d'époque UNIX) | |
end_time | heure de fin du match (format d'époque UNIX) | |
player_won | user_id d'un joueur | |
player_lost | user_id d'un joueur | |
game_mode | identifiant game_mode |
Important : le champ total_turns sera renommé total_rounds lors d'une mise à jour ultérieure, nous continuerons à le prendre en charge tout en nous assurant que notre communauté utilise le nouveau nom de champ.
Format de réponse
{
"total": 1447,
"page": 1,
"perPage": 20,
"records": [
{
"player_won": 9127,
"player_lost": 6008,
"game_mode": 2,
"game_id": "b64865e2-682b-4a23-af11-20aad0cfd47c",
"start_time": 1560734177,
"end_time": 1560734355,
"player_info": [{"god":"nature","cards":[301,121,68,237,976,1000,973,523,910,385,494,467,905,519,907,507,919,916,906,442,386,537,471,928,475,906,454,909,945,920],"global":false,"health":30,"status":"connected","user_id":9127},{"god":"Magic","cards":[401,401,404,404,908,908,455,455,535,535,467,467,926,926,981,981,402,402,504,504,396,396,406,406,983,983,407,407,1002,1002],"global":true,"health":0,"status":"connected","user_id":6008}],
"total_turns": 6,
"total_rounds": 6
}
]
}
Afficher le rang d'un joueur par mode de jeu.
Paramètres
Nom | Taper | Description |
---|---|---|
user_id | ID Apollo de l'utilisateur | |
game_mode | Mode de jeu du rang |
Format de réponse
{
"total": 543,
"page": 1,
"perPage": 20,
"records": [
{
"user_id": 9115,
"game_mode": 1,
"rating": 952,
"rank_level": 1,
"win_points": 82.849302,
"loss_points": 86.586029
},
{
"user_id": 2317,
"game_mode": 2,
"rating": 875.627936,
"rank_level": 1,
"win_points": 48.249483,
"loss_points": 89.55682
}
]
}
Montrez les propriétés des joueurs.
Paramètres
Nom | Taper | Description |
---|---|---|
user_id | ID Apollo de l'utilisateur |
Format de réponse
{
"total": 8298,
"page": 1,
"perPage": 20,
"records": [
{
"user_id": 612,
"xp_level": 0,
"total_xp": 0,
"xp_to_next": 25,
"won_matches": 0,
"lost_matches": 0,
"username": "bestplayer"
},
{
"user_id": 706,
"xp_level": 36,
"total_xp": 25850,
"xp_to_next": 350,
"won_matches": 51,
"lost_matches": 40,
"username": "broken_player"
}
]
}
Calcule la probabilité d'un match en fonction de la note des joueurs (en utilisant l'algorithme de notation Elo)
Paramètres
Nom | Taper | Description |
---|---|---|
user_id | ID Apollo de l'utilisateur | |
opponent_id | Apollo ID de l'adversaire | |
game_mode | le mode de jeu du match |
Format de réponse
0.6717130465747431
Les API Qualité fournissent des données sur les qualités et leur composition visuelle utilisées par les systèmes publics.
Affiche toutes les définitions de classes de qualité actives et les informations associées. Principalement utilisé par les systèmes de prise en charge tels que les relations de nom et d'identifiant ou les remplacements de métadonnées.
Format de réponse
[
{
"class_key": "quality",
"class_value": "2",
"class_properties": {
"name": "gold"
},
"class_type": "card",
"game_id": 1
},
...
]
Affiche la définition de classe de qualité spécifiée et les informations associées. Principalement utilisé par les systèmes de prise en charge tels que les relations de nom et d'identifiant ou les remplacements de métadonnées.
Paramètres
Nom | Taper | Description |
---|---|---|
quality | ID qualité |
Format de réponse
{
"class_key": "quality",
"class_value": "2",
"class_properties": {
"name": "gold"
},
"class_type": "card",
"game_id": 1
}
Affiche toutes les données de composition graphique nécessaires pour générer des visuels pour les combinaisons de proto et de qualité spécifiées pour l'art NFT utilisé dans Gods Unchained. Actuellement, ne prend en charge que les illustrations de cartes.
Paramètres
Nom | Taper | Description | Exemple |
---|---|---|---|
pairs | Proto et Qualité définis avec un séparateur @ | 1234@5 |
Format de réponse
[
{
"id": 1234,
"name": "Born Again",
"effect": "Pull a creature from your void to your hand. Give it +5/+5 and ward.",
"god": "light",
"rarity": "epic",
"tribe": { "String": "", "Valid": false },
"mana": 6,
"attack": { "Int64": 0, "Valid": false },
"health": { "Int64": 0, "Valid": false },
"type": "spell",
"set": "core",
"collectable": true,
"live": "true",
"art_id": "C448",
"lib_id": "L2-235",
"composition": {
"illustration": [
"1234"
],
"frame": [
"spell",
"spell_plain"
],
"rosette": [
"light",
"light_plain"
],
"gems": [
"rarity_epic"
],
"wreath": [],
"lock": [
"lock_plain"
],
"tribe_bar": [],
"set": [
"core"
]
}
}
]