Etheremon ERC-721 Integration Guide

Etheremon
Etheremon
Published in
2 min readMar 14, 2018

We are happy to announce the deployment of a smart contract to wrap our Etheremon data following ERC-721 standard. This allows Etheremon assets to be used in any exchange that supports this standard.

As there are still debates in the blockchain community on how to improve smart contract standards for non-fungible tokens (NFTs) and a new standard may be introduced in near the future (such as ERC821 …), Etheremon projects are designed to be upgradable to the new standard by adding a new wrapper around our core data.

The followings are important points which call for your attention when integrating with Etheremon.

  1. ERC-721 contract: 0x5d00d312e171be5342067c09bae883f9bcb2003b
  • It contains all required functions and properties for the ERC-721 standard.
  • Compared with other existing crypto games, Etheremon allows gameplay to update NFT property. For example, players can battle to improve their NFT level. Moreover, they can also lend their monsters to others. Hence, our ERC-721 has the function “isApprovable” to check the availability of the token to be tradable. You should call this function to check whether users can list their tokens to be traded or not. If the NFT is on lending or on battling, any trading actions will be failed.
function isApprovable(address _owner, uint256 _tokenId) public constant returns(bool)

2. When players catch a new monster from the wild, the “EventCatchMonster” is triggered from World Contract 0x1fc7bd85293f3982f40d52698df8d26be89360d6

event EventCatchMonster(address indexed trainer, uint64 objId);

Note: objId has similar meaning of tokenId in transfer event.

4. We provide a useful API for 3rd parties to query our token metadata.

URL: https://www.etheremon.com/api/monster/get_data
Method: GET
Params:
* monster_ids: a string of token ids (separated by ",")
Return:
* Http Status = 200 (other than this status is invalid)
* Json data in body with format
{"result": ResultCode, "data": "xxx"}
* ResultCode:
SUCCESS = 0
ERROR_SERVER = 1
ERROR_PARAMS = 2
* data is a dictionary with token_id is a key, and the value is an object:
uint64 monster_id
uint32 class_id
string class_name
string user_defined_image
string image
bool approvable
// some extra information

Example:

{
"data": {
"1703": {
"monster_id": 1703,
"image": "https://www.etheremon.com/assets/images/mons_origin/007.png",
"user_defined_name": " name me ",
"create_time": 1513756779,
"owner": "0x1f73ae5f280379da160f1575cedb8abfe3bb6681",
"create_index": 67,
"level": 1,
"class_id": 7,
"class_name": "Berrball",
"exp": 50,
"approvable": false
},
"2018": {
"monster_id": 2018,
"image": "https://www.etheremon.com/assets/images/mons_origin/014.png",
"user_defined_name": "Keradon",
"create_time": 1513757937,
"owner": "0xd7a348c463eb997b20ecaed0a183e6087123f59f",
"create_index": 72,
"level": 1,
"class_id": 14,
"class_name": "Keradon",
"exp": 1,
"approvable": true
}
},
"result": 0
}

For more information, please contact us at contact@etheremon.com

Notes: we have updated the ERC721 wrapper contract from the old address 0xb2c0782ae4a299f7358758b2d15da9bf29e1dd99 to the new address 0x5d00d312e171be5342067c09bae883f9bcb2003b on 30th August 2018.

— — —

Follow us at

--

--

Etheremon
Etheremon

A blockchain game about collecting, training, evolving and trading Monsters, built with blockchain and VR technology. Think Pokemon on blockchain.