LogoLogo
  • DFK Developer Docs
  • Contracts
    • Exchanges
      • The Trader
      • The Bazaar
    • Sales & Rentals
      • Hero Auction
      • Hero Rental
      • Equipment Auction
      • Pet Auction
      • Land Auction
    • Summoning
      • Hero Summoning
        • Dark Summoning
      • Pet Hatching
    • Meditation Circle
    • Quests
      • Quest Core
      • Historical Contracts
        • Quest Core
        • Profession Quests
        • Training Quests
    • Void Hunts
    • Patrols
    • PVP Combat
    • Influence System
    • Gardens
      • Master Gardener
    • Jeweler 2.0
      • Power-Ups
      • Jeweler 1.0
    • Profiles
    • DFK Duel
      • Previous Seasons
      • Raffle Master
    • Events
      • Gen0 Reroll
      • Gene Reroll
      • Perilous Journey
    • Bridging
      • Hero Bridge (Synapse)
      • Hero Bridge (LayerZero)
      • Equipment Bridge (Synapse)
      • Equipment Bridge (LayerZero)
      • Item Bridge V2
        • Item Bridge V1 (Deprecated)
      • Gaia's Tear Bridge
    • Miscellaneous
      • Airdrops
      • Charity
      • Flag Storage
      • Gen0 Airdrop (Harmony)
      • Gen0 Sale (Harmony)
      • Graveyard
      • Locked Token Claim
      • Locked Token Raffle
      • Token Disburse
  • NFTs
    • Heroes
      • HeroV4 (Metis)
    • Equipment
      • Weapons
      • Armor
      • Accessories
      • Shared Equipment Mappings
      • CacheCore
      • Equipment Shop
      • Visage Shop
    • Pets
      • Pet Exchange
    • Lands
  • Tokens
    • Ecosystem Token
    • Power Tokens
    • Governance Tokens
    • Currencies
      • DFK Gold
      • Gaia's Tears
    • Inventory Items
    • Gold Crops
    • Combat Items
    • Miscellaneous Tokens
      • Collectible Items
      • Raffle Tickets
  • Crafting
    • Alchemist
    • Nutritionist
    • Stone Carver
    • Vendor (Item Gold Trader)
  • Collections
    • Runes
    • Pet Eggs
    • Pet Treats
    • Potions & Consumables
      • Item Consumer
      • Potion Migrator
    • Enhancement Stones
    • Attunement Crystals
      • Atonement Crystals
    • Pages of the Eternal Story
  • API
    • Community GraphQL API
      • Getting Started
      • Auctions
      • Bazaar
      • Heroes
      • Pets
      • Profiles
    • Hero Metadata & Image API
    • Pet Metadata & Image API
    • Token Supply API
  • Community Builders
    • Kingdom Building Program
    • Developer Resources
    • Community Projects
  • DFK CHain
    • Getting Started
    • Nodes & Validators
    • Bridged Tokens
    • Ecosystem Partners
      • Covalent API
      • SupraOracles Price Feeds
      • SupraOracles VRF
    • Miscellaneous Contracts
Powered by GitBook
On this page
  • Contracts
  • Addresses
  • Interfaces
  • ABIs
  • Historical Contracts
  • Addresses
  • Interfaces
  • ABIs
  1. Contracts
  2. Summoning

Hero Summoning

Contracts

Addresses

DFK Chain

Name
Mainnet
Testnet

HeroSummoning

0xBc36D18662Bb97F9e74B1EAA1B752aA7A44595A7

0x1017c852e3731FaD2e893e80C6916D71Cf0B0A0a

CrystalCore

0x68f6C64786cfCb35108986041D1009c9d27bde22

0x51aacFeA9be0d10032aC66dF69F72Cc78730b162

Klaytn

Name
Mainnet
Testnet

HeroSummoning

0xb086584f476Ad21B40aF0672f385a67334A0b294

0x2C2D54137350FE5947e5483E0d0B5398cB34B792

CrystalCore

0x13cE9c99E8E2fcDe1632adA7B69b2eCf5BE8ED45

0xBC5248B4f50f4c7D2F9A67Be1f1d4b8be44ffc75

Interfaces

interface IHeroSummoning {
    
    event CrystalAirdrop(address indexed owner, uint256 crystalId, uint256 createdBlock);
    event CrystalDarkSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
    event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
    event CrystalSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
    event EnhancementStoneAdded(address atunementItemAddress);
    event FeeAddressAdded(address indexed feeAddress, uint256 indexed feePercent);
    event FeeDeferred(address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
    event FeeDisbursed(address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
    event FeeLockedBurned(address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
    
    function activeEnhancementStones(address) view returns (bool);
    function approveAuctionSpending(address _address, uint256 _amount);
    function baseCooldown() view returns (uint256);
    function baseSummonFee() view returns (uint256);
    function calculateSummoningCost(tuple(uint256 id, tuple(uint256 summonedTime, uint256 nextSummonTime, uint256 summonerId, uint256 assistantId, uint32 summons, uint32 maxSummons) summoningInfo, tuple(uint256 statGenes, uint256 visualGenes, uint8 rarity, bool shiny, uint16 generation, uint32 firstName, uint32 lastName, uint8 shinyStyle, uint8 class, uint8 subClass) info, tuple(uint256 staminaFullAt, uint256 hpFullAt, uint256 mpFullAt, uint16 level, uint64 xp, address currentQuest, uint8 sp, uint8 status) state, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hp, uint16 mp, uint16 stamina) stats, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) primaryStatGrowth, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) secondaryStatGrowth, tuple(uint16 mining, uint16 gardening, uint16 foraging, uint16 fishing) professions) _hero) view returns (uint256);
    function cooldownPerGen() view returns (uint256);
    function feeAddresses(uint256) view returns (address);
    function feePercents(uint256) view returns (uint256);
    function increasePerGen() view returns (uint256);
    function increasePerSummon() view returns (uint256);
    function paused() view returns (bool);
    function powerToken() view returns (address);
    function summonCrystal(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone);
    function summonCrystalWithAuction(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress, uint256 _hireAmount);
    function summonCrystalWithAuctionWithLocked(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress, uint256 _hireAmount);
    function summonCrystalWithLocked(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone);
    
}
interface ICrystalCore {
    
    event CrystalAirdrop(address indexed owner, uint256 crystalId, uint256 createdBlock);
    event CrystalDarkSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
    event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
    event CrystalSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
    event EnhancementStoneAdded(address atunementItemAddress);
    
    function airdropCrystal(address _recipient, bool _isShiny);
    function createCrystal(address _owner, uint256 _summonerId, uint256 _assistantId, uint16 _generation, uint8 _summonerBonusTears, uint8 _assistantBonusTears, address _enhancementStone, uint32 _maxSummons, bool _darkSummoned, uint8 _rarityBonusCharges);
    function gen0Cap() view returns (uint256);
    function getCrystal(uint256 _crystalId) view returns (tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle, bool darkSummoned, uint8 rarityBonusCharges));
    function getUserCrystals(address _address) view returns (uint256[]);
    function getUserCrystalsData(address _address) view returns (uint256[], tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle, bool darkSummoned, uint8 rarityBonusCharges)[]);    
    function globalStartTime() view returns (uint256);
    function newSummonCooldown() view returns (uint256);
    function nextCrystalId() view returns (uint256);
    function open(uint256 _crystalId) returns (uint256);
    function paused() view returns (bool);
    function totalCrystals() view returns (uint256);
    function waitBlocks() view returns (uint256);

}

ABIs

Historical Contracts

These contracts have been deprecated and should not be used. They are listed here for data analysis and tracking purposes only.

Addresses

Harmony

Name
Mainnet
Testnet

HeroSummoningUpgradable

0xf4d3aE202c9Ae516f7eb1DB5afF19Bf699A5E355

0x1702c7f5d67C0FDE65a8f3ed1a0C02c9FE4a5b99

The Hero Summoning functions on Harmony Mainnet were migrated several times:

Contract Address
From
Until

0xf4d3aE202c9Ae516f7eb1DB5afF19Bf699A5E355

1/15/2022

9/21/2022

0x65dea93f7b886c33a78c10343267dd39727778c2

~10/23/2021

1/15/2022

0xa2D001C829328aa06a2DB2740c05ceE1bFA3c6bb

10/6/2021

~10/29/2021

Interfaces

Harmony

interface IHeroSummoningUpgradeable {

    event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
    event CrystalSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
    event EnhancementStoneAdded(address atunementItemAddress);
    
    function activeEnhancementStones(address) view returns (bool);
    function approveAuctionSpending(address _address, uint256 _amount);
    function baseCooldown() view returns (uint256);
    function baseSummonFee() view returns (uint256);
    function calculateSummoningCost(tuple(uint256 id, tuple(uint256 summonedTime, uint256 nextSummonTime, uint256 summonerId, uint256 assistantId, uint32 summons, uint32 maxSummons) summoningInfo, tuple(uint256 statGenes, uint256 visualGenes, uint8 rarity, bool shiny, uint16 generation, uint32 firstName, uint32 lastName, uint8 shinyStyle, uint8 class, uint8 subClass) info, tuple(uint256 staminaFullAt, uint256 hpFullAt, uint256 mpFullAt, uint16 level, uint64 xp, address currentQuest, uint8 sp, uint8 status) state, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hp, uint16 mp, uint16 stamina) stats, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) primaryStatGrowth, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) secondaryStatGrowth, tuple(uint16 mining, uint16 gardening, uint16 foraging, uint16 fishing) professions) _hero) view returns (uint256);
    function cooldownPerGen() view returns (uint256);
    function createCrystal(address _owner, uint256 _summonerId, uint256 _assistantId, uint16 _generation, uint8 _summonerBonusTears, uint8 _assistantBonusTears, address _enhancementStone, uint32 _maxSummons);
    function crystalIdOffset() view returns (uint256);
    function crystals(uint256) view returns (address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle);
    function determineRarity(uint256 _rarityRoll, uint256 _rarityMod) pure returns (uint8);
    function enabled() view returns (bool);
    function getCrystal(uint256 _crystalId) view returns (tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle));
    function getUserCrystals(address _address) view returns (uint256[]);
    function increasePerGen() view returns (uint256);
    function increasePerSummon() view returns (uint256);
    function jewelToken() view returns (address);
    function newSummonCooldown() view returns (uint256);
    function open(uint256 _crystalId) returns (uint256);
    function paused() view returns (bool);
    function statScience() view returns (address);
    function summonCrystal(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone);
    function summonCrystalWithAuction(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress, uint256 _hireAmount);
    function summonCrystalWithAuctionOld(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress);
    function totalCrystals() view returns (uint256);
    function userCrystals(address, uint256) view returns (uint256);

}

ABIs

PreviousSummoningNextDark Summoning

Last updated 1 year ago

Note: this was also the contract

Assisting Auction
34KB
HeroSummoning.json
23KB
CrystalCoreDiamond.json
33KB
HeroSummoningUpgradeable_Harmony.json