{
"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"
},
{
"name": "seed",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 2
},
"docs": [],
"name": "recruitShogunTickets"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
},
{
"name": "seed",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 32
},
"docs": [],
"name": "recruitShogunSol"
},
{
"accounts": [],
"args": [
{
"name": "slot",
"type": "u64"
},
{
"name": "rarity",
"type": "u64"
},
{
"name": "element",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 3
},
"docs": [],
"name": "seatShogun"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u8"
},
{
"name": "_pad",
"type": "u64"
},
{
"name": "entries",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 41
},
"docs": [],
"name": "seatShogunFillAll"
},
{
"accounts": [],
"args": [
{
"name": "slot",
"type": "u64"
},
{
"name": "new_rarity",
"type": "u64"
},
{
"name": "new_element",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 34
},
"docs": [],
"name": "replaceShogun"
},
{
"accounts": [],
"args": [
{
"name": "tier",
"type": "u64"
},
{
"name": "slot",
"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": "seed",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 9
},
"docs": [],
"name": "mergeShogun"
},
{
"accounts": [],
"args": [
{
"name": "slot",
"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": "collection_index",
"type": "u8"
}
],
"discriminant": {
"type": "u8",
"value": 40
},
"docs": [],
"name": "claimCollectionReward"
},
{
"accounts": [],
"args": [
{
"name": "task_id",
"type": "u64"
},
{
"name": "signature",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 43
},
"docs": [],
"name": "claimOffChainTaskReward"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 44
},
"docs": [],
"name": "claimSeekerTaskReward"
},
{
"accounts": [
{
"isMut": true,
"isSigner": true,
"name": "signer"
},
{
"isMut": true,
"isSigner": false,
"name": "config"
},
{
"isMut": true,
"isSigner": false,
"name": "dojo"
},
{
"isMut": true,
"isSigner": false,
"name": "tasks"
},
{
"isMut": true,
"isSigner": false,
"name": "seeker"
},
{
"isMut": true,
"isSigner": false,
"name": "signerSgtToken"
},
{
"isMut": false,
"isSigner": false,
"name": "sgtMint"
},
{
"isMut": false,
"isSigner": false,
"name": "soulboundMint"
},
{
"isMut": true,
"isSigner": false,
"name": "treasury"
},
{
"isMut": false,
"isSigner": false,
"name": "dgtGroupMint"
},
{
"isMut": true,
"isSigner": false,
"name": "soulboundToken"
},
{
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"isMut": false,
"isSigner": false,
"name": "tokenProgram"
},
{
"address": "11111111111111111111111111111111",
"isMut": false,
"isSigner": false,
"name": "systemProgram"
},
{
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
"isMut": false,
"isSigner": false,
"name": "associatedTokenProgram"
}
],
"args": [],
"discriminant": {
"type": "u8",
"value": 45
},
"docs": [],
"name": "mintSoulbound"
},
{
"accounts": [],
"args": [
{
"name": "defender_owner",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 46
},
"docs": [],
"name": "battleAttack"
},
{
"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": [],
"discriminant": {
"type": "u8",
"value": 15
},
"docs": [],
"name": "clearForgeCooldown"
},
{
"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": "slot",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 25
},
"docs": [],
"name": "levelUpShogun"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
},
{
"name": "seed",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 27
},
"docs": [],
"name": "rollSceneSectionAmethyst"
},
{
"accounts": [],
"args": [
{
"name": "count",
"type": "u64"
},
{
"name": "seed",
"type": "publicKey"
}
],
"discriminant": {
"type": "u8",
"value": 31
},
"docs": [],
"name": "rollSceneSectionShards"
},
{
"accounts": [],
"args": [],
"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": [
{
"isMut": true,
"isSigner": true,
"name": "signer"
},
{
"isMut": true,
"isSigner": false,
"name": "dojo"
},
{
"isMut": true,
"isSigner": false,
"name": "scenes"
},
{
"isMut": true,
"isSigner": false,
"name": "game"
},
{
"isMut": true,
"isSigner": false,
"name": "barracks"
}
],
"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": [
{
"name": "amount",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 50
},
"docs": [],
"name": "deposit"
},
{
"accounts": [],
"args": [
{
"name": "amount",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 51
},
"docs": [],
"name": "withdraw"
},
{
"accounts": [],
"args": [
{
"name": "slot",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 53
},
"docs": [],
"name": "setChampion"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 54
},
"docs": [],
"name": "claimXpRewards"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 0
},
"docs": [],
"name": "initialize"
},
{
"accounts": [],
"args": [
{
"name": "genesis_slot",
"type": "u64"
},
{
"name": "halving_period_slots",
"type": "u64"
}
],
"discriminant": {
"type": "u8",
"value": 19
},
"docs": [],
"name": "setGenesisSlot"
},
{
"accounts": [],
"args": [],
"discriminant": {
"type": "u8",
"value": 49
},
"docs": [
"Swap treasury wSOL → DOJO, burn all DOJO bought."
],
"name": "buyback"
},
{
"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": [
{
"discriminator": [
0,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Slots per halving period. `0` disables halving. Default at genesis is ~6.048M slots (~28 days at ~0.4s/slot)."
],
"name": "Config",
"type": {
"fields": [
{
"name": "genesis_slot",
"type": "u64"
},
{
"name": "halving_period_slots",
"type": "u64"
},
{
"name": "scene_active",
"type": "u64"
},
{
"name": "buffer2",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
1,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Counts per (collection_index, prestige_level). 25 × 6 = 150.",
"Per-prestige fodder counts: [u64; 150]. Split into 128+22 so bytemuck derives Pod/Zeroable.",
"PvP battles initiated (stats / future tasks).",
"In-game **shards** (same raw decimals as $DOJO). Soft balance on the Dojo PDA; SPL $DOJO is separate (`withdraw_dojo` to bridge).",
"Ore refines into this; shop spends deduct `shard_balance` (not wallet ATA).",
"Pity counter: pulls since last SR+. At 10, next pull is forced SR+. Resets on SR+.",
"Per-prestige fodder counts: (collection_index * PRESTIGE_LEVELS + prestige - 1). Prestige 1–6.",
"collection_index = element×5+rarity (0–24). Recruit/merge add; seat/replace/prestige consume.",
"Cumulative XP (staking time-weighted + PvP wins, etc.). Burned on XP SOL claim.",
"Index for collection (element×5+rarity) at prestige level (1–6).",
"Get fodder count at (collection_index, prestige).",
"Add to fodder at (collection_index, prestige).",
"Subtract from fodder at (collection_index, prestige). Returns false if insufficient.",
"Total fodder for collection across all prestige levels.",
"Total fodder across all collections (for recruit cap check).",
"Consume `amount` from collection ci, taking from lowest prestige first. Returns false if insufficient.",
"Spend in-game shards (dine, upgrades, rolls, etc.)."
],
"name": "Dojo",
"type": {
"fields": [
{
"name": "head",
"type": "u64"
},
{
"name": "tail",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
3,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Pack (rarity, element, level, prestige) into u64. BARRACKS_SLOT_EMPTY = u64::MAX.",
"Ore-relevant cache per slot. Updated by seat/replace/dine/level_up; read by claim_shards.",
"Includes dine_count for per-shogun escalate pricing.",
"Times this shogun has been dined. Used for per-shogun escalate pricing (0 = base, >=1 = escalated).",
"Packed: rarity|element|level|prestige. BARRACKS_SLOT_EMPTY = empty.",
"Ore-relevant state per slot. Kept in sync by seat/replace/dine/level_up.",
"Sum of seated shoguns' raw spirit power. Used for pool-split: scene bonuses apply **once**",
"to this sum (`Treasury::effective_spirit_power_with_scene`), not per shogun."
],
"name": "Barracks",
"type": {
"fields": [
{
"name": "spirit_power",
"type": "u64"
},
{
"name": "chakra_remaining",
"type": "u64"
},
{
"name": "last_used_slot",
"type": "u64"
},
{
"name": "dine_count",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
13,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Default AP/DP (Fren Pet: each pet starts with 10 AP and 10 DP).",
"Starting battle score (points). Threshold for simplified vs full transfer rules.",
"Barracks slot index (0–11). `u64::MAX` = unset (invalid until set).",
"Cached champion attack rating (= champion spirit power for odds).",
"Cached champion defense rating (= defender’s champion spirit power in their role).",
"PvP score; win/loss transfers capped per battle.",
"Last slot this dojo initiated an attack (attacker cooldown).",
"Last slot this dojo was targeted (defender immunity window).",
"Start of current 24h window for duel count.",
"Duels in current 24h window (max [`crate::consts::BATTLE_MAX_DUELS_PER_24H`]).",
"Barracks slot index (0–11) of the PvP champion shogun.",
"Last slot when champion was changed (0 = never changed; first change skips cooldown).",
"Reserved padding.",
"Spirit power of the champion at `champion_slot` for win odds (AP or DP as role).",
"Win probability in basis points (0..=10000): AP / (AP + DP).",
"Transfer size: min(0.5% loser, 0.5% winner), with low-BP branch."
],
"name": "Battle",
"type": {
"fields": [
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "attack_points",
"type": "u64"
},
{
"name": "defense_points",
"type": "u64"
},
{
"name": "battle_points",
"type": "u64"
},
{
"name": "last_battle_slot",
"type": "u64"
},
{
"name": "last_targeted_slot",
"type": "u64"
},
{
"name": "duel_window_start_slot",
"type": "u64"
},
{
"name": "duel_count_24h",
"type": "u64"
},
{
"name": "champion_slot",
"type": "u64"
},
{
"name": "last_champion_change_slot",
"type": "u64"
},
{
"name": "buffer",
"type": {
"array": [
"u64",
3
]
}
}
],
"kind": "struct"
}
},
{
"discriminator": [
4,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Ore per second throughput.",
"Raw $DOJO (6 decimals) per ore. 1:1 (matches Hyper Ninja: throughput only, no separate refine rate).",
"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"
}
],
"kind": "struct"
}
},
{
"discriminator": [
5,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Treasury SOL balance (lamports) for buybacks.",
"Total Spirit Power of all assigned shoguns (for % display).",
"Total in-game soft currency burned (dine, upgrades, shop). Not raw SPL-only transfers.",
"Total $DOJO minted to players from claim_shards (cumulative).",
"Last slot at which emission was run (keeper / gameplay). Used to compute next emission.",
"Sum of each dojo's **dojo-wide** effective SP: `effective_spirit_power_with_scene(sum_raw, scene)`.",
"Must match how `claim_shards` weights users (one flat/pct bonus per dojo, not per shogun).",
"SOL (lamports) earmarked for XP reward claims (subset of `balance` accounting).",
"Sum of all dojos' `dojo.xp` (staking + battle, etc.). Used for XP reward share.",
"Credits `balance` and `xp_reward_pool` together when lamports arrive from the standard",
"protocol SOL split (`to_treasury`, or `to_staking` when routed to treasury with no stakers).",
"Effective SP for pool-split: (raw_sp + flat_bonus) * (1 + pct_bps/10000).",
"Used so scene bonuses shift share without increasing total emissions."
],
"name": "Treasury",
"type": {
"fields": [
{
"name": "balance",
"type": "u64"
},
{
"name": "total_spirit_power",
"type": "u64"
},
{
"name": "total_shards_burned",
"type": "u64"
},
{
"name": "total_refined",
"type": "u64"
},
{
"name": "last_emission_slot",
"type": "u64"
},
{
"name": "total_effective_spirit_power",
"type": "u64"
},
{
"name": "xp_reward_pool",
"type": "u64"
},
{
"name": "total_xp",
"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"
}
],
"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 = scenes 1–5 (excludes 0 and buyable 6–8).",
"scene_id ∈ [1, 5], 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"
}
],
"kind": "struct"
}
},
{
"discriminator": [
9,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"One S2P tranche: `amount` DOJO vests linearly from `start_slot` over [`crate::consts::STAKE_VESTING_SLOTS`].",
"DOJO already withdrawn from this tranche’s unlocked portion.",
"Stake-to-Play (Fren Pet S2P): DOJO in the stake ATA vests over 30 days; withdraw unlocked anytime.",
"The authority (owner) of this stake account.",
"Total $DOJO in the stake ATA (must match token account balance).",
"Last slot used for time-weighted stake → XP accrual (`0` = not initialized yet).",
"Up to 8 independent 30-day vesting streams (FIFO on withdraw)."
],
"name": "Stake",
"type": {
"fields": [
{
"name": "amount",
"type": "u64"
},
{
"name": "start_slot",
"type": "u64"
},
{
"name": "withdrawn",
"type": "u64"
},
{
"name": "_pad",
"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).",
"Cached counts per collection (element×5+rarity). Updated on recruit, merge, prestige.",
"Total daily claims (migrates old accounts on first claim).",
"Bitmask for off-chain tasks 9–16. Bit 0 = task 9, bit 7 = task 16.",
"Bit 0 = seeker task (TASK_SEEKER) claimed.",
"Reserved for future battle-tier rewards.",
"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": "collection_counts",
"type": "u64"
},
{
"name": "_pad2",
"type": "u64"
},
{
"name": "last_daily_claim_count",
"type": "u64"
},
{
"name": "off_chain_task_bitmask",
"type": "u64"
},
{
"name": "seeker_task_bitmask",
"type": "u64"
},
{
"name": "battle_claimed_up_to",
"type": "u64"
},
{
"name": "reserved",
"type": "u64"
}
],
"kind": "struct"
}
},
{
"discriminator": [
12,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
"Soulbound mint address when minted; Pubkey::default() = not yet minted."
],
"name": "Seeker",
"type": {
"fields": [
{
"name": "sgt_mint",
"type": "publicKey"
},
{
"name": "dojo",
"type": "publicKey"
},
{
"name": "slot",
"type": "u64"
},
{
"name": "soulbound_mint",
"type": "publicKey"
}
],
"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"
},
{
"discriminator": [
84,
51,
56,
61,
107,
225,
24,
197
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "amethyst_refund",
"type": "u64"
}
],
"name": "SceneSectionsSalvaged"
},
{
"discriminator": [
155,
115,
213,
90,
253,
122,
201,
184
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "count",
"type": "u64"
},
{
"index": false,
"name": "payment_type",
"type": "u8"
},
{
"index": false,
"name": "_pad",
"type": "u64"
},
{
"index": false,
"name": "seed",
"type": "publicKey"
}
],
"name": "SceneSectionsRolled"
},
{
"discriminator": [
252,
200,
149,
28,
164,
114,
80,
30
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "amethyst_amount",
"type": "u64"
}
],
"name": "ChestBought"
},
{
"discriminator": [
171,
121,
4,
62,
177,
90,
13,
210
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "scene_id",
"type": "u64"
}
],
"name": "SceneBought"
},
{
"discriminator": [
17,
97,
207,
126,
34,
19,
214,
80
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "scene_id",
"type": "u64"
}
],
"name": "ActiveSceneUpdated"
},
{
"discriminator": [
152,
43,
229,
71,
219,
64,
99,
216
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "slot",
"type": "u64"
},
{
"index": false,
"name": "new_level",
"type": "u64"
}
],
"name": "ShogunLeveledUp"
},
{
"discriminator": [
173,
127,
238,
178,
42,
220,
217,
237
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "slot",
"type": "u64"
},
{
"index": false,
"name": "tier",
"type": "u64"
}
],
"name": "ChakraRecovered"
},
{
"discriminator": [
162,
83,
252,
76,
69,
169,
105,
200
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "new_level",
"type": "u64"
}
],
"name": "BarracksUpgraded"
},
{
"discriminator": [
178,
56,
56,
90,
153,
77,
133,
40
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "new_level",
"type": "u64"
}
],
"name": "ForgeUpgraded"
},
{
"discriminator": [
216,
70,
139,
103,
17,
137,
22,
202
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "tickets",
"type": "u64"
}
],
"name": "BundleBought"
},
{
"discriminator": [
234,
140,
148,
192,
225,
145,
97,
84
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "tickets",
"type": "u64"
}
],
"name": "TicketsBoughtWithShards"
},
{
"discriminator": [
192,
151,
53,
73,
221,
211,
196,
145
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
},
{
"index": false,
"name": "tickets",
"type": "u64"
}
],
"name": "FlashSaleBought"
},
{
"discriminator": [
88,
156,
234,
184,
146,
202,
159,
128
],
"fields": [
{
"index": false,
"name": "dojo",
"type": "publicKey"
}
],
"name": "ForgeCooldownCleared"
},
{
"discriminator": [
47,
156,
226,
94,
163,
176,
162,
241
],
"fields": [
{
"index": false,
"name": "attacker_dojo",
"type": "publicKey"
},
{
"index": false,
"name": "defender_dojo",
"type": "publicKey"
},
{
"index": false,
"name": "attacker_won",
"type": "u8"
},
{
"index": false,
"name": "_pad",
"type": "u64"
},
{
"index": false,
"name": "roll_bps",
"type": "u64"
},
{
"index": false,
"name": "win_probability_bps",
"type": "u64"
},
{
"index": false,
"name": "points_moved",
"type": "u64"
},
{
"index": false,
"name": "attacker_bp_after",
"type": "u64"
},
{
"index": false,
"name": "defender_bp_after",
"type": "u64"
},
{
"index": false,
"name": "slot",
"type": "u64"
}
],
"name": "BattleResolved"
}
],
"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"
},
{
"code": 31,
"msg": "MergeNotImplemented",
"name": "MergeNotImplemented"
},
{
"code": 32,
"msg": "InvalidBattleTarget",
"name": "InvalidBattleTarget"
},
{
"code": 33,
"msg": "BattleCooldown",
"name": "BattleCooldown"
},
{
"code": 34,
"msg": "BattleTargetImmune",
"name": "BattleTargetImmune"
},
{
"code": 35,
"msg": "BattleDuelLimit",
"name": "BattleDuelLimit"
},
{
"code": 36,
"msg": "BattleSelfTarget",
"name": "BattleSelfTarget"
},
{
"code": 37,
"msg": "InvalidChampion",
"name": "InvalidChampion"
},
{
"code": 38,
"msg": "ChampionChangeCooldown",
"name": "ChampionChangeCooldown"
},
{
"code": 39,
"msg": "ChampionChangeLockedAfterBattle",
"name": "ChampionChangeLockedAfterBattle"
},
{
"code": 40,
"msg": "DineBattleMissing",
"name": "DineBattleMissing"
},
{
"code": 41,
"msg": "NoXpToClaim",
"name": "NoXpToClaim"
},
{
"code": 42,
"msg": "InsufficientXpRewardPool",
"name": "InsufficientXpRewardPool"
},
{
"code": 43,
"msg": "InvalidXpTotals",
"name": "InvalidXpTotals"
},
{
"code": 44,
"msg": "XpClaimTooSmall",
"name": "XpClaimTooSmall"
},
{
"code": 45,
"msg": "DojoNotInitialized",
"name": "DojoNotInitialized"
},
{
"code": 46,
"msg": "StakeVestingFull",
"name": "StakeVestingFull"
},
{
"code": 47,
"msg": "StakeVestingLocked",
"name": "StakeVestingLocked"
},
{
"code": 48,
"msg": "BattleChakraDepleted",
"name": "BattleChakraDepleted"
},
{
"code": 49,
"msg": "ScenesDisabled",
"name": "ScenesDisabled"
}
],
"metadata": {
"address": "DoJoJ9HjqujEchu25BEcK1nfD9ejU27JeXmpxz5Tqnt",
"origin": "steel"
}
}