{
  "address": "BLoodZ1eVjyDjUZEmeiLBw8QWKYaixqfvNsLNaPVaFZs",
  "metadata": {
    "name": "bloodline",
    "version": "0.1.0",
    "spec": "0.1.0",
    "description": "Bloodline Pad: every coin is born into a House; graduated coins bear heirs seeded by their creator fees"
  },
  "instructions": [
    {
      "name": "accept_drop_authority",
      "docs": [
        "The proposed key itself, after the timelock: becomes the drop authority of Houses founded",
        "from now on. Existing Houses keep their snapshot."
      ],
      "discriminator": [
        203,
        130,
        197,
        161,
        197,
        173,
        152,
        190
      ],
      "accounts": [
        {
          "name": "proposed",
          "signer": true
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        }
      ],
      "args": []
    },
    {
      "name": "bear",
      "docs": [
        "Bears an heir of a graduated coin. Anyone can send it. Name and ticker are derived here from the",
        "PARENT coin (heir_name / heir_symbol): birth order 0/1/2 -> \"<P> Jr\" / \"Son of <P>\" / \"Lil <P>\" and",
        "\"<P>JR\" / \"SON<P>\" / \"LIL<P>\"; a name over 32 bytes -> \"<Root> <ROMAN gen>\"; 4th+ heirs (only if",
        "max_heirs > 3) -> \"<Root> <ROMAN gen> <D..>\". The House's drop authority (keeper) passes the uri of the",
        "picture it composed (the parent's picture + a badge); anyone else passes \"\" and the heir inherits",
        "the parent's uri (so nobody can front-run a birth with junk metadata).",
        "The parent's seed pool pays pump's rents (at most rent_reserve) and the rest buys the heir",
        "in the same instruction, buyer = Heirloom PDA: nobody can buy the heir before its seed.",
        "L-3: the buy is capped at what the heir curve can take (pumpcpi::buy_capped), so a seed pool",
        "above the curve-completion cost can never brick `bear`; the rest stays in the seed pool.",
        "remaining_accounts = pump create_v2 accounts (16, user = parent Nursery)",
        "+ pump buy accounts (16+, user = Heirloom)."
      ],
      "discriminator": [
        98,
        43,
        123,
        228,
        209,
        21,
        83,
        243
      ],
      "accounts": [
        {
          "name": "caller",
          "writable": true,
          "signer": true
        },
        {
          "name": "config",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "house",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  111,
                  117,
                  115,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "house.id",
                "account": "House"
              }
            ]
          },
          "relations": [
            "parent"
          ]
        },
        {
          "name": "parent",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "parent.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "parent_curve"
        },
        {
          "name": "parent_nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "parent.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "heir_mint",
          "docs": [
            "Fresh keypair; pump create_v2 creates the heir mint."
          ],
          "writable": true,
          "signer": true
        },
        {
          "name": "heir",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "heir_mint"
              }
            ]
          }
        },
        {
          "name": "heir_nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "heir_mint"
              }
            ]
          }
        },
        {
          "name": "heirloom",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  101,
                  105,
                  114,
                  108,
                  111,
                  111,
                  109
                ]
              },
              {
                "kind": "account",
                "path": "heir_mint"
              }
            ]
          }
        },
        {
          "name": "heirloom_ata",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "ata_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "heir_uri",
          "type": "string"
        }
      ]
    },
    {
      "name": "claim_drop",
      "docs": [
        "Sends a leaf's heir tokens from the Heirloom to the leaf's wallet (its ATA is created if",
        "needed, paid by the caller). Anyone can send it; the tokens can only go to that wallet."
      ],
      "discriminator": [
        157,
        29,
        89,
        14,
        81,
        203,
        107,
        58
      ],
      "accounts": [
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "heir",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "claims",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  108,
                  97,
                  105,
                  109,
                  115
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "claimant"
        },
        {
          "name": "heirloom",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  101,
                  105,
                  114,
                  108,
                  111,
                  111,
                  109
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "heirloom_ata",
          "writable": true
        },
        {
          "name": "claimant_ata",
          "writable": true
        },
        {
          "name": "mint"
        },
        {
          "name": "token_program"
        },
        {
          "name": "ata_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "index",
          "type": "u32"
        },
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "proof",
          "type": {
            "vec": {
              "array": [
                "u8",
                32
              ]
            }
          }
        }
      ]
    },
    {
      "name": "claim_founder_fees",
      "docs": [
        "Pays the founder's booked share of this coin's fees to the House founder (the founder earns",
        "on every coin of the House). Anyone can push it; it can only go to the founder."
      ],
      "discriminator": [
        12,
        232,
        155,
        24,
        29,
        218,
        112,
        189
      ],
      "accounts": [
        {
          "name": "caller",
          "signer": true
        },
        {
          "name": "house",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  111,
                  117,
                  115,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "house.id",
                "account": "House"
              }
            ]
          },
          "relations": [
            "coin"
          ]
        },
        {
          "name": "coin",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "founder",
          "writable": true,
          "relations": [
            "house"
          ]
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "collect",
      "docs": [
        "pump.fun collect_creator_fee into the coin's Nursery. Anyone can send it.",
        "remaining = [nursery, creator_vault, system, event_authority, pump]. After graduation the",
        "keeper first moves PumpSwap's creator fees back with PumpSwap `transfer_creator_fees_to_pump`",
        "(permissionless), then calls this."
      ],
      "discriminator": [
        208,
        47,
        194,
        155,
        17,
        98,
        82,
        236
      ],
      "accounts": [
        {
          "name": "coin",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        }
      ],
      "args": []
    },
    {
      "name": "collect_treasury",
      "docs": [
        "Pays the treasury's booked share of this coin's fees to config.treasury. Anyone can push it."
      ],
      "discriminator": [
        48,
        255,
        226,
        214,
        221,
        81,
        222,
        65
      ],
      "accounts": [
        {
          "name": "caller",
          "signer": true
        },
        {
          "name": "config",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "coin",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "treasury",
          "writable": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "found",
      "docs": [
        "Founds a House: its generation I coin is created on pump.fun with the Nursery PDA as the",
        "creator (the founder pays pump's rents and the Nursery's rent floor), plus an optional",
        "founder buy in the same instruction (the founder is the buyer and gets the tokens). The",
        "platform launch fee floor(founder_buy * launch_fee_bps / 10000) is paid on top of the buy",
        "(founder_buy itself goes to pump unchanged) straight to config.treasury; no buy, no fee.",
        "remaining_accounts = pump create_v2 accounts (16) [+ pump buy accounts (16+) if founder_buy > 0]."
      ],
      "discriminator": [
        55,
        155,
        110,
        228,
        56,
        231,
        243,
        97
      ],
      "accounts": [
        {
          "name": "founder",
          "writable": true,
          "signer": true
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "treasury",
          "writable": true,
          "relations": [
            "config"
          ]
        },
        {
          "name": "house",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  111,
                  117,
                  115,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "config.houses",
                "account": "Config"
              }
            ]
          }
        },
        {
          "name": "mint",
          "docs": [
            "Fresh keypair; pump create_v2 creates the mint."
          ],
          "writable": true,
          "signer": true
        },
        {
          "name": "coin",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "founder_ata",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "ata_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "symbol",
          "type": "string"
        },
        {
          "name": "uri",
          "type": "string"
        },
        {
          "name": "founder_buy",
          "type": "u64"
        }
      ]
    },
    {
      "name": "init_config",
      "discriminator": [
        23,
        235,
        115,
        232,
        168,
        96,
        1,
        231
      ],
      "accounts": [
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "treasury",
          "type": "pubkey"
        },
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "Params"
            }
          }
        }
      ]
    },
    {
      "name": "post_drop",
      "docs": [
        "Posts the merkle root of the heir's drop to the parent's holders. Drop authority only, once",
        "per heir, before the post deadline (born_at + drop_window), total <= tokens in the Heirloom.",
        "Weight policy (off chain, published): each wallet's MIN balance of the PARENT over the last",
        "6 hourly snapshots before the birth; curve, pools and program PDAs excluded."
      ],
      "discriminator": [
        171,
        201,
        192,
        209,
        162,
        247,
        118,
        170
      ],
      "accounts": [
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "house",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  111,
                  117,
                  115,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "house.id",
                "account": "House"
              }
            ]
          },
          "relations": [
            "heir"
          ]
        },
        {
          "name": "heir",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "heirloom",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  101,
                  105,
                  114,
                  108,
                  111,
                  111,
                  109
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "heirloom_ata"
        },
        {
          "name": "claims",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  108,
                  97,
                  105,
                  109,
                  115
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "root",
          "type": {
            "array": [
              "u8",
              32
            ]
          }
        },
        {
          "name": "total",
          "type": "u64"
        },
        {
          "name": "leaves",
          "type": "u32"
        },
        {
          "name": "snapshot_slot",
          "type": "u64"
        }
      ]
    },
    {
      "name": "propose_drop_authority",
      "docs": [
        "Admin: starts the 72 h timelock for a new drop authority (Pubkey::default() cancels a pending",
        "one; proposing again restarts the clock). Only Houses founded after the accept use it."
      ],
      "discriminator": [
        180,
        237,
        254,
        137,
        213,
        58,
        160,
        25
      ],
      "accounts": [
        {
          "name": "admin",
          "signer": true,
          "relations": [
            "config"
          ]
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "proposed",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "set_admin",
      "discriminator": [
        251,
        163,
        0,
        52,
        91,
        194,
        187,
        92
      ],
      "accounts": [
        {
          "name": "admin",
          "signer": true,
          "relations": [
            "config"
          ]
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "admin",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "set_paused",
      "docs": [
        "Pause blocks new Houses only; births, fees, drops and claims always keep working."
      ],
      "discriminator": [
        91,
        60,
        125,
        192,
        176,
        225,
        166,
        218
      ],
      "accounts": [
        {
          "name": "admin",
          "signer": true,
          "relations": [
            "config"
          ]
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "paused",
          "type": "bool"
        }
      ]
    },
    {
      "name": "set_treasury",
      "discriminator": [
        57,
        97,
        196,
        95,
        195,
        206,
        106,
        136
      ],
      "accounts": [
        {
          "name": "admin",
          "signer": true,
          "relations": [
            "config"
          ]
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "treasury",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "sweep_drop",
      "docs": [
        "After the window (posted_at + drop_window, or born_at + drop_window if no drop was ever",
        "posted), burns every heir token left in the Heirloom. Anyone can send it."
      ],
      "discriminator": [
        5,
        172,
        38,
        153,
        231,
        130,
        29,
        71
      ],
      "accounts": [
        {
          "name": "caller",
          "signer": true
        },
        {
          "name": "heir",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "heirloom",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  101,
                  105,
                  114,
                  108,
                  111,
                  111,
                  109
                ]
              },
              {
                "kind": "account",
                "path": "heir.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "heirloom_ata",
          "writable": true
        },
        {
          "name": "mint",
          "writable": true
        },
        {
          "name": "token_program"
        }
      ],
      "args": []
    },
    {
      "name": "sync",
      "docs": [
        "Books every new Nursery lamport: nursery_bps to the seed pool (it also takes the rounding",
        "dust), founder_bps to the House founder, treasury_bps to the treasury. Anyone can send it."
      ],
      "discriminator": [
        4,
        219,
        40,
        164,
        21,
        157,
        189,
        88
      ],
      "accounts": [
        {
          "name": "house",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  104,
                  111,
                  117,
                  115,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "house.id",
                "account": "House"
              }
            ]
          },
          "relations": [
            "coin"
          ]
        },
        {
          "name": "coin",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "nursery",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        }
      ],
      "args": []
    },
    {
      "name": "unwrap_fees",
      "docs": [
        "Closes a WSOL account owned by the Nursery (e.g. PumpSwap creator fees someone collected as",
        "WSOL to it) so its lamports land in the Nursery, where `sync` books them."
      ],
      "discriminator": [
        202,
        112,
        56,
        154,
        193,
        85,
        127,
        150
      ],
      "accounts": [
        {
          "name": "coin",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  105,
                  110
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "nursery",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  110,
                  117,
                  114,
                  115,
                  101,
                  114,
                  121
                ]
              },
              {
                "kind": "account",
                "path": "coin.mint",
                "account": "Coin"
              }
            ]
          }
        },
        {
          "name": "wsol_ata",
          "writable": true
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        }
      ],
      "args": []
    },
    {
      "name": "update_config",
      "docs": [
        "New params apply to Houses founded from now on; existing Houses keep their copy."
      ],
      "discriminator": [
        29,
        158,
        252,
        191,
        10,
        83,
        219,
        99
      ],
      "accounts": [
        {
          "name": "admin",
          "signer": true,
          "relations": [
            "config"
          ]
        },
        {
          "name": "config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "Params"
            }
          }
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "Coin",
      "discriminator": [
        215,
        195,
        53,
        238,
        217,
        196,
        213,
        51
      ]
    },
    {
      "name": "Config",
      "discriminator": [
        155,
        12,
        170,
        224,
        30,
        250,
        204,
        130
      ]
    },
    {
      "name": "House",
      "discriminator": [
        21,
        145,
        94,
        109,
        254,
        199,
        210,
        151
      ]
    }
  ],
  "events": [
    {
      "name": "AdminSet",
      "discriminator": [
        157,
        245,
        205,
        226,
        118,
        125,
        183,
        97
      ]
    },
    {
      "name": "Born",
      "discriminator": [
        25,
        60,
        205,
        232,
        20,
        186,
        167,
        29
      ]
    },
    {
      "name": "ConfigInitialized",
      "discriminator": [
        181,
        49,
        200,
        156,
        19,
        167,
        178,
        91
      ]
    },
    {
      "name": "ConfigUpdated",
      "discriminator": [
        40,
        241,
        230,
        122,
        11,
        19,
        198,
        194
      ]
    },
    {
      "name": "DropAuthorityAccepted",
      "discriminator": [
        217,
        169,
        37,
        173,
        110,
        52,
        6,
        11
      ]
    },
    {
      "name": "DropAuthorityProposed",
      "discriminator": [
        227,
        31,
        145,
        188,
        199,
        202,
        69,
        78
      ]
    },
    {
      "name": "DropClaimed",
      "discriminator": [
        119,
        252,
        19,
        16,
        125,
        34,
        212,
        212
      ]
    },
    {
      "name": "DropPosted",
      "discriminator": [
        108,
        193,
        166,
        202,
        203,
        4,
        78,
        89
      ]
    },
    {
      "name": "DropSwept",
      "discriminator": [
        105,
        213,
        254,
        226,
        204,
        220,
        12,
        160
      ]
    },
    {
      "name": "FeesCollected",
      "discriminator": [
        233,
        23,
        117,
        225,
        107,
        178,
        254,
        8
      ]
    },
    {
      "name": "FeesUnwrapped",
      "discriminator": [
        146,
        111,
        114,
        101,
        19,
        203,
        134,
        142
      ]
    },
    {
      "name": "Founded",
      "discriminator": [
        119,
        187,
        91,
        214,
        38,
        21,
        239,
        237
      ]
    },
    {
      "name": "FounderPaid",
      "discriminator": [
        40,
        24,
        42,
        204,
        25,
        37,
        250,
        128
      ]
    },
    {
      "name": "PausedSet",
      "discriminator": [
        171,
        125,
        127,
        156,
        233,
        81,
        68,
        66
      ]
    },
    {
      "name": "Synced",
      "discriminator": [
        114,
        244,
        163,
        97,
        99,
        80,
        164,
        70
      ]
    },
    {
      "name": "TreasuryPaid",
      "discriminator": [
        203,
        141,
        198,
        183,
        132,
        74,
        239,
        248
      ]
    },
    {
      "name": "TreasurySet",
      "discriminator": [
        69,
        231,
        163,
        135,
        254,
        194,
        109,
        166
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "Paused",
      "msg": "new houses are paused"
    },
    {
      "code": 6001,
      "name": "Unauthorized",
      "msg": "only the admin (or the drop authority) can do this"
    },
    {
      "code": 6002,
      "name": "BadName",
      "msg": "coin name must be 1-32 bytes, no control characters or edge spaces"
    },
    {
      "code": 6003,
      "name": "BadSymbol",
      "msg": "ticker must be 1-10 bytes, no spaces or control characters"
    },
    {
      "code": 6004,
      "name": "BadUri",
      "msg": "metadata uri must be https and at most 200 characters"
    },
    {
      "code": 6005,
      "name": "CrestKeeperOnly",
      "msg": "only the keeper can pick an heir's picture; pass an empty uri to inherit the parent's uri"
    },
    {
      "code": 6006,
      "name": "NotGraduated",
      "msg": "the parent has not graduated on pump.fun yet"
    },
    {
      "code": 6007,
      "name": "SeedTooSmall",
      "msg": "the parent's seed pool is below the minimum"
    },
    {
      "code": 6008,
      "name": "MaxHeirs",
      "msg": "the parent already has all its heirs"
    },
    {
      "code": 6009,
      "name": "Cooldown",
      "msg": "the parent bore an heir too recently"
    },
    {
      "code": 6010,
      "name": "MaxGeneration",
      "msg": "the bloodline reached its last generation"
    },
    {
      "code": 6011,
      "name": "RentTooHigh",
      "msg": "pump rents exceed the rent reserve"
    },
    {
      "code": 6012,
      "name": "NothingBought",
      "msg": "the buy returned no tokens"
    },
    {
      "code": 6013,
      "name": "NotAnHeir",
      "msg": "this coin is a founder coin, not an heir"
    },
    {
      "code": 6014,
      "name": "DropAlreadyPosted",
      "msg": "the drop was already posted"
    },
    {
      "code": 6015,
      "name": "DropNotPosted",
      "msg": "the drop was not posted"
    },
    {
      "code": 6016,
      "name": "DropExpired",
      "msg": "the drop can no longer be posted"
    },
    {
      "code": 6017,
      "name": "DropTooLarge",
      "msg": "the drop total exceeds the heirloom's tokens"
    },
    {
      "code": 6018,
      "name": "BadDrop",
      "msg": "a drop needs a positive total and 1-80000 leaves"
    },
    {
      "code": 6019,
      "name": "BadSnapshot",
      "msg": "the snapshot must be taken before the birth"
    },
    {
      "code": 6020,
      "name": "DropClosed",
      "msg": "the drop is closed"
    },
    {
      "code": 6021,
      "name": "DropStillOpen",
      "msg": "the drop window is still open"
    },
    {
      "code": 6022,
      "name": "DropSwept",
      "msg": "the drop was already swept"
    },
    {
      "code": 6023,
      "name": "DropOverdrawn",
      "msg": "claims would exceed the posted total"
    },
    {
      "code": 6024,
      "name": "NothingToClaim",
      "msg": "nothing to claim"
    },
    {
      "code": 6025,
      "name": "WrongFounder",
      "msg": "that is not the house founder"
    },
    {
      "code": 6026,
      "name": "BadConfig",
      "msg": "bad config"
    },
    {
      "code": 6027,
      "name": "BadAccounts",
      "msg": "wrong accounts"
    },
    {
      "code": 6028,
      "name": "Math",
      "msg": "math overflow"
    },
    {
      "code": 6029,
      "name": "TimelockActive",
      "msg": "the new drop authority can accept only after the 72 h timelock"
    },
    {
      "code": 6030,
      "name": "BelowRentFloor",
      "msg": "payout is below the rent floor of an empty wallet: it stays claimable, fund the wallet or wait"
    },
    {
      "code": 6031,
      "name": "WrongTreasury",
      "msg": "the treasury account is not config.treasury"
    }
  ],
  "types": [
    {
      "name": "AdminSet",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "admin",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "Born",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "house",
            "type": "pubkey"
          },
          {
            "name": "parent",
            "type": "pubkey"
          },
          {
            "name": "heir",
            "type": "pubkey"
          },
          {
            "name": "generation",
            "type": "u8"
          },
          {
            "name": "birth_order",
            "type": "u8"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          },
          {
            "name": "seed",
            "type": "u64"
          },
          {
            "name": "rents",
            "type": "u64"
          },
          {
            "name": "spent",
            "type": "u64"
          },
          {
            "name": "tokens",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "Coin",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "house",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "parent",
            "docs": [
              "Parent mint; Pubkey::default() for the founder coin."
            ],
            "type": "pubkey"
          },
          {
            "name": "generation",
            "type": "u8"
          },
          {
            "name": "birth_order",
            "type": "u8"
          },
          {
            "name": "heirs_born",
            "type": "u8"
          },
          {
            "name": "born_at",
            "type": "i64"
          },
          {
            "name": "born_slot",
            "type": "u64"
          },
          {
            "name": "last_birth_ts",
            "type": "i64"
          },
          {
            "name": "seed_pool",
            "type": "u64"
          },
          {
            "name": "founder_pending",
            "type": "u64"
          },
          {
            "name": "treasury_pending",
            "type": "u64"
          },
          {
            "name": "fees_total",
            "type": "u64"
          },
          {
            "name": "founder_paid",
            "type": "u64"
          },
          {
            "name": "treasury_paid",
            "type": "u64"
          },
          {
            "name": "seeded",
            "docs": [
              "SOL this coin's seed pool spent bearing heirs (rents + buys)."
            ],
            "type": "u64"
          },
          {
            "name": "seed",
            "docs": [
              "Heirs: SOL of the parent's seed spent on this coin's birth buy."
            ],
            "type": "u64"
          },
          {
            "name": "heirloom_tokens",
            "docs": [
              "Heirs: tokens the Heirloom bought at birth (the drop's budget)."
            ],
            "type": "u64"
          },
          {
            "name": "drop",
            "type": {
              "defined": {
                "name": "DropState"
              }
            }
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "nursery_bump",
            "type": "u8"
          },
          {
            "name": "heirloom_bump",
            "type": "u8"
          },
          {
            "name": "name",
            "docs": [
              "The coin's pump.fun name / ticker / metadata uri: the founder coin's as launched; an heir's derived",
              "from its parent in `bear` (uri = the keeper's composed picture, or the parent's uri)."
            ],
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "Config",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "treasury",
            "type": "pubkey"
          },
          {
            "name": "drop_authority",
            "type": "pubkey"
          },
          {
            "name": "paused",
            "type": "bool"
          },
          {
            "name": "houses",
            "type": "u64"
          },
          {
            "name": "params",
            "type": {
              "defined": {
                "name": "Params"
              }
            }
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "pending_drop_authority",
            "docs": [
              "Timelocked rotation (M-3): proposed key and the earliest accept time (0 = none pending)."
            ],
            "type": "pubkey"
          },
          {
            "name": "pending_drop_authority_eta",
            "type": "i64"
          }
        ]
      }
    },
    {
      "name": "ConfigInitialized",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "treasury",
            "type": "pubkey"
          },
          {
            "name": "drop_authority",
            "type": "pubkey"
          },
          {
            "name": "params",
            "type": {
              "defined": {
                "name": "Params"
              }
            }
          }
        ]
      }
    },
    {
      "name": "ConfigUpdated",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "params",
            "type": {
              "defined": {
                "name": "Params"
              }
            }
          }
        ]
      }
    },
    {
      "name": "DropAuthorityAccepted",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "old",
            "type": "pubkey"
          },
          {
            "name": "new",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "DropAuthorityProposed",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "current",
            "type": "pubkey"
          },
          {
            "name": "proposed",
            "type": "pubkey"
          },
          {
            "name": "eta",
            "type": "i64"
          }
        ]
      }
    },
    {
      "name": "DropClaimed",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "heir",
            "type": "pubkey"
          },
          {
            "name": "index",
            "type": "u32"
          },
          {
            "name": "claimant",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "claimed",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "DropPosted",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "heir",
            "type": "pubkey"
          },
          {
            "name": "root",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "total",
            "type": "u64"
          },
          {
            "name": "leaves",
            "type": "u32"
          },
          {
            "name": "snapshot_slot",
            "type": "u64"
          },
          {
            "name": "deadline",
            "type": "i64"
          }
        ]
      }
    },
    {
      "name": "DropState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "root",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "total",
            "type": "u64"
          },
          {
            "name": "leaves",
            "type": "u32"
          },
          {
            "name": "snapshot_slot",
            "type": "u64"
          },
          {
            "name": "posted_at",
            "type": "i64"
          },
          {
            "name": "deadline",
            "docs": [
              "Before a post: last moment to post. After: end of claims. Sweep opens at this time."
            ],
            "type": "i64"
          },
          {
            "name": "claimed",
            "type": "u64"
          },
          {
            "name": "claims",
            "type": "u32"
          },
          {
            "name": "swept",
            "type": "bool"
          },
          {
            "name": "burned",
            "type": "u64"
          },
          {
            "name": "claims_bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "DropSwept",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "heir",
            "type": "pubkey"
          },
          {
            "name": "burned",
            "type": "u64"
          },
          {
            "name": "posted",
            "type": "bool"
          }
        ]
      }
    },
    {
      "name": "FeesCollected",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "coin",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FeesUnwrapped",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "coin",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "Founded",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "house",
            "type": "pubkey"
          },
          {
            "name": "id",
            "type": "u64"
          },
          {
            "name": "founder",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          },
          {
            "name": "founder_buy",
            "type": "u64"
          },
          {
            "name": "founder_tokens",
            "type": "u64"
          },
          {
            "name": "launch_fee",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FounderPaid",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "coin",
            "type": "pubkey"
          },
          {
            "name": "founder",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "House",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "id",
            "type": "u64"
          },
          {
            "name": "founder",
            "type": "pubkey"
          },
          {
            "name": "base_name",
            "docs": [
              "Name / ticker of the founder (root) coin; heir names fall back to \"<base_name> <ROMAN gen>\"."
            ],
            "type": "string"
          },
          {
            "name": "base_symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "docs": [
              "Metadata uri of the founder coin."
            ],
            "type": "string"
          },
          {
            "name": "root_mint",
            "type": "pubkey"
          },
          {
            "name": "coins",
            "type": "u32"
          },
          {
            "name": "deepest_generation",
            "type": "u8"
          },
          {
            "name": "created_at",
            "type": "i64"
          },
          {
            "name": "params",
            "type": {
              "defined": {
                "name": "Params"
              }
            }
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "drop_authority",
            "docs": [
              "Drop authority snapshot at founding (M-3): posts this House's drops and picks its heir pictures."
            ],
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "Params",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "seed_min",
            "docs": [
              "Smallest seed pool that can bear an heir (lamports)."
            ],
            "type": "u64"
          },
          {
            "name": "rent_reserve",
            "docs": [
              "Most a birth may spend on rents (pump accounts, Heirloom ATA, two rent floors)."
            ],
            "type": "u64"
          },
          {
            "name": "birth_cooldown_secs",
            "type": "i64"
          },
          {
            "name": "drop_window_secs",
            "type": "i64"
          },
          {
            "name": "nursery_bps",
            "type": "u16"
          },
          {
            "name": "founder_bps",
            "type": "u16"
          },
          {
            "name": "treasury_bps",
            "type": "u16"
          },
          {
            "name": "max_heirs",
            "type": "u8"
          },
          {
            "name": "max_generation",
            "type": "u8"
          },
          {
            "name": "launch_fee_bps",
            "docs": [
              "Platform launch fee in bps of the founder buy, paid on top of it to config.treasury in",
              "`found`. 0..=500 (MAX_LAUNCH_FEE_BPS). Default 250 (2.5%)."
            ],
            "type": "u16"
          }
        ]
      }
    },
    {
      "name": "PausedSet",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "paused",
            "type": "bool"
          }
        ]
      }
    },
    {
      "name": "Synced",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "coin",
            "type": "pubkey"
          },
          {
            "name": "incoming",
            "type": "u64"
          },
          {
            "name": "seed",
            "type": "u64"
          },
          {
            "name": "founder",
            "type": "u64"
          },
          {
            "name": "treasury",
            "type": "u64"
          },
          {
            "name": "released",
            "type": "u64"
          },
          {
            "name": "fees_total",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "TreasuryPaid",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "coin",
            "type": "pubkey"
          },
          {
            "name": "treasury",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "TreasurySet",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "treasury",
            "type": "pubkey"
          }
        ]
      }
    }
  ]
}