{
"version": "0.0.1",
"name": "dojos",
"instructions": [
{
"accounts": [],
"args": [
{
"name": "referrer",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 1
},
"docs": [],
"name": "buyStarterPack"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 2
},
"docs": [],
"name": "recruitShogunTickets"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 32
},
"docs": [],
"name": "recruitShogunSol"
},
{
"accounts": [],
"args": [
{
"name": "slot",
"type": "u64"
},
{
"name": "pool_index",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 3
},
"docs": [],
"name": "seatShogun"
},
{
"accounts": [],
"args": [
{
"name": "slot",
"type": "u64"
},
{
"name": "new_pool_index",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 34
},
"docs": [],
"name": "replaceShogun"
},
{
"accounts": [],
"args": [
{
"name": "tier",
"type": "u64"
},
{
"name": "pool_index",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 5
},
"docs": [],
"name": "dine"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 7
},
"docs": [],
"name": "upgradeBarracksShards"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 26
},
"docs": [],
"name": "upgradeBarracksSol"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 8
},
"docs": [],
"name": "upgradeForge"
},
{
"accounts": [],
"args": [
{
"name": "merge_type",
"type": "u64"
},
{
"name": "pool_indices",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 9
},
"docs": [],
"name": "mergeShogun"
},
{
"accounts": [],
"args": [
{
"name": "target_pool_index",
"type": "u64"
},
{
"name": "fodder_1_pool_index",
"type": "u64"
},
{
"name": "fodder_2_pool_index",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 10
},
"docs": [],
"name": "prestigeUpgrade"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 11
},
"docs": [],
"name": "claimShards"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 12
},
"docs": [],
"name": "claimReferralReward"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 36
},
"docs": [],
"name": "claimRecruitReward"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 37
},
"docs": [],
"name": "claimForgeReward"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 38
},
"docs": [],
"name": "claimDineReward"
},
{
"accounts": [],
"args": [
{
"name": "signature",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 39
},
"docs": [],
"name": "claimDailyReward"
},
{
"accounts": [],
"args": [
{
"name": "pool_indices",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 40
},
"docs": [],
"name": "claimCollectionReward"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 13
},
"docs": [],
"name": "buyBundle"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 22
},
"docs": [],
"name": "buyTicketsWithShards"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 24
},
"docs": [],
"name": "buyFlashSale"
},
{
"accounts": [],
"args": [
{
"name": "seconds",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 15
},
"docs": [],
"name": "speedUpForge"
},
{
"accounts": [],
"args": [
{
"name": "_reserved",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 20
},
"docs": [
"For data integrity, only the config can log messages."
],
"name": "log"
},
{
"accounts": [],
"args": [
{
"name": "pool_index",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 25
},
"docs": [],
"name": "levelUpShogun"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 27
},
"docs": [],
"name": "rollSceneSectionAmethyst"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 31
},
"docs": [],
"name": "rollSceneSectionShards"
},
{
"accounts": [],
"args": [
{
"name": "item_count",
"type": "u8"
},
{
"name": "_pad",
"type": "u64"
},
{
"name": "items",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 28
},
"docs": [],
"name": "salvageSceneSection"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 29
},
"docs": [],
"name": "buyChest"
},
{
"accounts": [],
"args": [
{
"name": "scene_id",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 33
},
"docs": [],
"name": "buyScene"
},
{
"accounts": [],
"args": [
{
"name": "scene_id",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 30
},
"docs": [],
"name": "updateActiveScene"
},
{
"accounts": [],
"args": [
{
"name": "scene_id",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 35
},
"docs": [],
"name": "buySceneDojo"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 0
},
"docs": [],
"name": "initialize"
},
{
"accounts": [],
"args": [
{
"name": "id",
"type": "u64"
},
{
"name": "commit",
"type": "publicKey"
},
{
"name": "provider",
"type": "publicKey"
},
{
"name": "end_at",
"type": "u64"
},
{
"name": "samples",
"type": "u64"
},
{
"name": "is_auto",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 16
},
"docs": [],
"name": "newVar"
},
{
"accounts": [],
"args": [
{
"name": "genesis_slot",
"type": "u64"
},
{
"name": "halving_period_slots",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 19
},
"docs": [],
"name": "setGenesisSlot"
},
{
"accounts": [],
"args": [
{
"name": "entropy_var",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 21
},
"docs": [],
"name": "setVarAddress"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 24
},
"docs": [],
"name": "0"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 48
},
"docs": [],
"name": "1"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 72
},
"docs": [],
"name": "2"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 10
},
"docs": [],
"name": "0"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 5
},
"docs": [],
"name": "1"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 3
},
"docs": [],
"name": "2"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 10
},
"docs": [],
"name": "n"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 5
},
"docs": [],
"name": "r"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 3
},
"docs": [],
"name": "sR"
}
],
"accounts": [
{
"discriminator": [
0,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Slots per halving period. 0 = halving disabled. Default ~12.5M = ~58 days (matches Hyper Ninja: 500k blocks × 10s)."
],
"name": "Config",
"type": {
"fields": [
{
"name": "genesis_slot",
"type": "u64"
},
{
"name": "emission_per_slot",
"type": "u64"
},
{
"name": "buffer1",
"type": "u64"
},
{
"name": "entropy_var",
"type": "publicKey"
},
{
"name": "halving_period_slots",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
},
{
"name": "buffer5",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
8,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Total Spirit Power of all assigned shoguns (for % display).",
"Total in-game shards burned (dine, upgrades, level-up). Not SPL transfers.",
"Last slot at which emission was run (keeper / gameplay). Used to compute next emission."
],
"name": "Game",
"type": {
"fields": [
{
"name": "total_spirit_power",
"type": "u64"
},
{
"name": "total_shards_burned",
"type": "u64"
},
{
"name": "last_emission_slot",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
1,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Pity counter: pulls since last SR+. At 10, next pull is forced SR+. Resets on SR+.",
"Last daily reset slot (Solana slot). Used for flash_sale reset."
],
"name": "Dojo",
"type": {
"fields": [
{
"name": "owner",
"type": "publicKey"
},
{
"name": "barracks_level",
"type": "u64"
},
{
"name": "forge_level",
"type": "u64"
},
{
"name": "ore_balance",
"type": "u64"
},
{
"name": "shard_balance",
"type": "u64"
},
{
"name": "last_ore_claim_slot",
"type": "u64"
},
{
"name": "referrer",
"type": "publicKey"
},
{
"name": "shogun_count",
"type": "u64"
},
{
"name": "recruitment_ticket_balance",
"type": "u64"
},
{
"name": "recruited_count",
"type": "u64"
},
{
"name": "dine_count",
"type": "u64"
},
{
"name": "pity_counter",
"type": "u64"
},
{
"name": "last_daily_reset_slot",
"type": "u64"
},
{
"name": "flash_sale_count_today",
"type": "u64"
},
{
"name": "last_flash_sale_reset_slot",
"type": "u64"
},
{
"name": "amethyst_balance",
"type": "u64"
},
{
"name": "active_scene_id",
"type": "u64"
},
{
"name": "reserved5",
"type": "u64"
},
{
"name": "reserved6",
"type": "u64"
},
{
"name": "reserved7",
"type": "u64"
},
{
"name": "reserved8",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
2,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Empty slot sentinel. Barracks uses u64::MAX for empty slots.",
"Shogun data. Stored in ShogunAccount; Barracks.slots hold pool indices.",
"Cost to level up from `level` to `level+1` (raw $DOJO, 6 decimals). 200 + 800*(level-1).",
"Shogun account: one per dojo. Barracks.slots[i] = pool index (or BARRACKS_SLOT_EMPTY)."
],
"name": "Shogun",
"type": {
"fields": [
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "index",
"type": "u64"
},
{
"name": "rarity",
"type": "u64"
},
{
"name": "element",
"type": "u64"
},
{
"name": "spirit_power",
"type": "u64"
},
{
"name": "prestige",
"type": "u64"
},
{
"name": "chakra_max",
"type": "u64"
},
{
"name": "chakra_remaining",
"type": "u64"
},
{
"name": "assigned_barracks_slot",
"type": "u64"
},
{
"name": "last_used_slot",
"type": "u64"
},
{
"name": "level",
"type": "u64"
},
{
"name": "buffer1",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
3,
0,
0,
0,
0,
0,
0,
0
],
"docs": [],
"name": "Barracks",
"type": {
"fields": [
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "level",
"type": "u64"
},
{
"name": "slots",
"type": "u64"
},
{
"name": "buffer1",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
4,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Ore per second throughput.",
"Raw $DOJO (6 decimals) per ore. Ore → $DOJO directly (shards).",
"Forge upgrades always pay SOL.",
"Remaining seconds until cooldown ends. 0 when no cooldown or timer has ended.",
"`now` is current Solana slot.",
"Remaining minutes (floor). For display: 0 when in last minute (e.g. 30 sec left → 0 mins)."
],
"name": "Forge",
"type": {
"fields": [
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "level",
"type": "u64"
},
{
"name": "ore_queued",
"type": "u64"
},
{
"name": "last_refine_slot",
"type": "u64"
},
{
"name": "upgrade_cooldown_slot",
"type": "u64"
},
{
"name": "buffer1",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
5,
0,
0,
0,
0,
0,
0,
0
],
"docs": [],
"name": "Treasury",
"type": {
"fields": [
{
"name": "total_emission_received",
"type": "u64"
},
{
"name": "total_conversion_transferred",
"type": "u64"
},
{
"name": "referral_rewards_pool",
"type": "u64"
},
{
"name": "reserved",
"type": "u64"
},
{
"name": "buffer1",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
6,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Commission rate: 20% for 1–10 referrals, 30% for 11+."
],
"name": "Referral",
"type": {
"fields": [
{
"name": "referrer_dojo",
"type": "publicKey"
},
{
"name": "referred_count",
"type": "u64"
},
{
"name": "pending",
"type": "u64"
},
{
"name": "buffer1",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
},
{
"name": "buffer3",
"type": "u64"
},
{
"name": "buffer4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
7,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Can salvage `count` duplicates? Requires section_counts >= 1 + count (keep at least 1).",
"Unlock entire scene (all 12 sections = 1). Used for BuyScene (scenes 6–8).",
"Derive scene_id and section_id from 32-byte hash. Roll pool excludes Green Mountain.",
"scene_id ∈ [1, SCENE_COUNT), section_id ∈ [0, 12)"
],
"name": "Scenes",
"type": {
"fields": [
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "section_counts",
"type": "u64"
},
{
"name": "reserved1",
"type": "u64"
},
{
"name": "reserved2",
"type": "u64"
},
{
"name": "reserved3",
"type": "u64"
},
{
"name": "reserved4",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
10,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Highest recruit threshold claimed. 0 = none.",
"Highest forge level tier claimed. 0 = none.",
"Highest dine threshold claimed. 0 = none.",
"Last slot when daily reward was claimed. 0 = never.",
"Collection: 1 = claimed, index = element×5+rarity (25 combos).",
"Reserved for future task categories and metadata."
],
"name": "Tasks",
"type": {
"fields": [
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "recruit_claimed_up_to",
"type": "u64"
},
{
"name": "forge_claimed_up_to",
"type": "u64"
},
{
"name": "dine_claimed_up_to",
"type": "u64"
},
{
"name": "last_daily_claim_slot",
"type": "u64"
},
{
"name": "collection_claimed",
"type": "u64"
},
{
"name": "_pad",
"type": "u64"
},
{
"name": "reserved",
"type": "u64"
}
],
"kind": "struct"
}
}
],
"types": [
{
"docs": [
"Fixed-point helper backed by I80F48 from the steel crate."
],
"name": "Numeric",
"type": {
"fields": [
{
"name": "bits",
"type": {
"array": [
"u8",
16
]
}
}
],
"kind": "struct"
}
}
],
"events": [
{
"discriminator": [
200,
3,
204,
158,
234,
215,
140,
75
],
"fields": [
{
"index": false,
"name": "owner",
"type": "publicKey"
},
{
"index": false,
"name": "referrer",
"type": "publicKey"
}
],
"name": "DojoInitialized"
},
{
"discriminator": [
143,
190,
101,
169,
144,
142,
60,
39
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "pool_index",
"type": "u64"
},
{
"index": false,
"name": "rarity",
"type": "u64"
},
{
"index": false,
"name": "element",
"type": "u64"
},
{
"index": false,
"name": "spirit_power",
"type": "u64"
},
{
"index": false,
"name": "entropy_value",
"type": "publicKey"
},
{
"index": false,
"name": "pull_index",
"type": "u64"
}
],
"name": "ShogunRecruited"
},
{
"discriminator": [
114,
225,
9,
44,
111,
153,
91,
247
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "pool_index",
"type": "u64"
},
{
"index": false,
"name": "slot",
"type": "u64"
}
],
"name": "ShogunAssignedToBarracks"
},
{
"discriminator": [
6,
241,
138,
135,
57,
225,
65,
90
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "shogun",
"type": "publicKey"
}
],
"name": "ShogunUnassignedFromBarracks"
},
{
"discriminator": [
19,
10,
15,
129,
35,
36,
166,
39
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "amount",
"type": "u64"
},
{
"index": false,
"name": "slot",
"type": "u64"
}
],
"name": "OreMined"
},
{
"discriminator": [
92,
134,
179,
122,
37,
90,
33,
47
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "ore_in",
"type": "u64"
},
{
"index": false,
"name": "dojo_out",
"type": "u64"
}
],
"name": "OreRefined"
},
{
"discriminator": [
239,
1,
10,
27,
59,
18,
227,
137
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "amount_raw",
"type": "u64"
},
{
"index": false,
"name": "slot",
"type": "u64"
}
],
"name": "ShardsClaimed"
},
{
"discriminator": [
121,
168,
182,
217,
188,
237,
16,
179
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "pool_index",
"type": "u64"
},
{
"index": false,
"name": "rarity",
"type": "u64"
},
{
"index": false,
"name": "merge_type",
"type": "u64"
}
],
"name": "ShogunMerged"
},
{
"discriminator": [
9,
207,
7,
20,
138,
139,
102,
210
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "pool_index",
"type": "u64"
},
{
"index": false,
"name": "new_prestige",
"type": "u64"
},
{
"index": false,
"name": "new_spirit_power",
"type": "u64"
}
],
"name": "ShogunPrestigeUpgraded"
},
{
"discriminator": [
127,
4,
53,
212,
212,
89,
247,
244
],
"fields": [
{
"index": false,
"name": "amount",
"type": "u64"
},
{
"index": false,
"name": "slot",
"type": "u64"
}
],
"name": "EmissionMinted"
},
{
"discriminator": [
56,
212,
222,
36,
145,
243,
229,
103
],
"fields": [
{
"index": false,
"name": "referrer",
"type": "publicKey"
},
{
"index": false,
"name": "referrer_dojo",
"type": "publicKey"
},
{
"index": false,
"name": "amount",
"type": "u64"
}
],
"name": "ReferralRewardClaimed"
},
{
"discriminator": [
208,
90,
243,
116,
80,
15,
228,
202
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "task_id",
"type": "u64"
},
{
"index": false,
"name": "recruitment_tickets",
"type": "u64"
}
],
"name": "TaskClaimed"
}
],
"errors": [
{
"code": 0,
"msg": "InsufficientPayment",
"name": "InsufficientPayment"
},
{
"code": 1,
"msg": "DojoAlreadyInitialized",
"name": "DojoAlreadyInitialized"
},
{
"code": 2,
"msg": "InvalidSlot",
"name": "InvalidSlot"
},
{
"code": 3,
"msg": "SlotOccupied",
"name": "SlotOccupied"
},
{
"code": 4,
"msg": "InsufficientChakra",
"name": "InsufficientChakra"
},
{
"code": 5,
"msg": "InsufficientOre",
"name": "InsufficientOre"
},
{
"code": 6,
"msg": "InsufficientShards",
"name": "InsufficientShards"
},
{
"code": 7,
"msg": "BarracksUpgradeCooldown",
"name": "BarracksUpgradeCooldown"
},
{
"code": 8,
"msg": "ForgeUpgradeCooldown",
"name": "ForgeUpgradeCooldown"
},
{
"code": 9,
"msg": "InvalidMerge",
"name": "InvalidMerge"
},
{
"code": 10,
"msg": "InvalidMergeRarity",
"name": "InvalidMergeRarity"
},
{
"code": 11,
"msg": "InvalidPrestigeUpgrade",
"name": "InvalidPrestigeUpgrade"
},
{
"code": 12,
"msg": "InvalidLevelUp",
"name": "InvalidLevelUp"
},
{
"code": 13,
"msg": "EmissionCapReached",
"name": "EmissionCapReached"
},
{
"code": 14,
"msg": "InsufficientTreasuryBalance",
"name": "InsufficientTreasuryBalance"
},
{
"code": 15,
"msg": "UnauthorizedKeeper",
"name": "UnauthorizedKeeper"
},
{
"code": 16,
"msg": "GenesisNotSet",
"name": "GenesisNotSet"
},
{
"code": 17,
"msg": "GameNotLaunched",
"name": "GameNotLaunched"
},
{
"code": 18,
"msg": "InvalidEntropyVar",
"name": "InvalidEntropyVar"
},
{
"code": 19,
"msg": "UnauthorizedAdmin",
"name": "UnauthorizedAdmin"
},
{
"code": 20,
"msg": "TaskNotCompleted",
"name": "TaskNotCompleted"
},
{
"code": 21,
"msg": "TaskAlreadyClaimed",
"name": "TaskAlreadyClaimed"
},
{
"code": 22,
"msg": "ShogunNotAssigned",
"name": "ShogunNotAssigned"
},
{
"code": 23,
"msg": "NoReferralPending",
"name": "NoReferralPending"
},
{
"code": 24,
"msg": "FlashSaleDailyLimitReached",
"name": "FlashSaleDailyLimitReached"
},
{
"code": 25,
"msg": "UnassignNotAllowed",
"name": "UnassignNotAllowed"
},
{
"code": 26,
"msg": "ShogunAlreadySeated",
"name": "ShogunAlreadySeated"
},
{
"code": 27,
"msg": "SlotEmpty",
"name": "SlotEmpty"
},
{
"code": 28,
"msg": "ShogunAccountFull",
"name": "ShogunAccountFull"
},
{
"code": 29,
"msg": "TreasuryNotOwnedByProgram",
"name": "TreasuryNotOwnedByProgram"
},
{
"code": 30,
"msg": "NoForgeCooldownToClear",
"name": "NoForgeCooldownToClear"
}
],
"metadata": {
"address": "dojo2UpeW7KstAwXKPhGmHxSFZPNM6PFKUAuAB2C6y9",
"origin": "steel"
}
}