{
  "address": "149WKoc5878Sx5EWjHGhPBL4vsoogY9og7ffkzdu39LM",
  "metadata": {
    "name": "basket",
    "version": "0.1.0",
    "spec": "0.1.0"
  },
  "docs": [
    "Active BASKET mainnet integration interface. Check the on-chain pause flag and pinned release before use."
  ],
  "instructions": [
    {
      "name": "initialize_config",
      "discriminator": [
        208,
        127,
        21,
        1,
        194,
        190,
        196,
        70
      ],
      "accounts": [
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "program_data"
        },
        {
          "name": "config",
          "writable": true
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "treasury",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "prepare_quote",
      "docs": [
        "Permissionless empty settlement-account preparation; no basket assets move."
      ],
      "discriminator": [
        48,
        11,
        204,
        55,
        157,
        229,
        230,
        116
      ],
      "accounts": [
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "quote_mint"
        },
        {
          "name": "quote",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "_basket_mint",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "prepare_direct_quote",
      "discriminator": [
        231,
        124,
        126,
        41,
        95,
        16,
        151,
        169
      ],
      "accounts": [
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "quote_mint"
        },
        {
          "name": "quote",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "_trader",
          "type": "pubkey"
        },
        {
          "name": "_mint",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "direct_buy",
      "discriminator": [
        171,
        3,
        255,
        153,
        253,
        167,
        79,
        66
      ],
      "accounts": [
        {
          "name": "trader",
          "writable": true,
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "treasury",
          "writable": true
        },
        {
          "name": "mint"
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "trader_tokens",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "gross_sol",
          "type": "u64"
        },
        {
          "name": "min_tokens",
          "type": "u64"
        }
      ]
    },
    {
      "name": "direct_sell",
      "discriminator": [
        222,
        174,
        226,
        243,
        90,
        149,
        86,
        47
      ],
      "accounts": [
        {
          "name": "trader",
          "writable": true,
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "treasury",
          "writable": true
        },
        {
          "name": "mint"
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "trader_tokens",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "tokens",
          "type": "u64"
        },
        {
          "name": "min_net_sol",
          "type": "u64"
        },
        {
          "name": "min_gross_sol",
          "type": "u64"
        }
      ]
    },
    {
      "name": "set_buys_paused",
      "docs": [
        "Pausing blocks new exposure, while existing holders retain the implemented sell path."
      ],
      "discriminator": [
        198,
        216,
        178,
        80,
        242,
        57,
        217,
        40
      ],
      "accounts": [
        {
          "name": "authority",
          "signer": true
        },
        {
          "name": "config",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "paused",
          "type": "bool"
        }
      ]
    },
    {
      "name": "activate_and_buy",
      "docs": [
        "All constituent acquisitions, recipe creation, fees and issuance roll back together.",
        "Creator co-signs the immutable terms in this transaction."
      ],
      "discriminator": [
        242,
        137,
        167,
        50,
        71,
        240,
        255,
        111
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "creator",
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "mint",
          "writable": true,
          "signer": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "supply_vault",
          "writable": true
        },
        {
          "name": "buyer_tokens",
          "writable": true,
          "signer": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "weights",
          "type": {
            "vec": "u16"
          }
        },
        {
          "name": "min_components",
          "type": {
            "vec": "u64"
          }
        },
        {
          "name": "gross_sol",
          "type": "u64"
        },
        {
          "name": "min_tokens",
          "type": "u64"
        },
        {
          "name": "creator_share_bps",
          "type": "u16"
        },
        {
          "name": "identity",
          "type": {
            "defined": {
              "name": "BasketIdentity"
            }
          }
        }
      ]
    },
    {
      "name": "activate_atomic",
      "docs": [
        "Single-wallet creation. The mint and buyer token account are deterministic",
        "accounts created by the program, so the buyer is the only required signer."
      ],
      "discriminator": [
        11,
        86,
        64,
        196,
        91,
        53,
        110,
        61
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "mint",
          "writable": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "supply_vault",
          "writable": true
        },
        {
          "name": "buyer_tokens",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "associated_token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "weights",
          "type": {
            "vec": "u16"
          }
        },
        {
          "name": "min_components",
          "type": {
            "vec": "u64"
          }
        },
        {
          "name": "gross_sol",
          "type": "u64"
        },
        {
          "name": "min_tokens",
          "type": "u64"
        },
        {
          "name": "creator_share_bps",
          "type": "u16"
        },
        {
          "name": "identity",
          "type": {
            "defined": {
              "name": "BasketIdentity"
            }
          }
        }
      ]
    },
    {
      "name": "activate_from_manifest",
      "docs": [
        "A zero-dev-buy creator authorizes fixed terms off-chain; the first buyer pays atomically."
      ],
      "discriminator": [
        91,
        104,
        223,
        152,
        196,
        79,
        139,
        213
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "mint",
          "writable": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "supply_vault",
          "writable": true
        },
        {
          "name": "buyer_tokens",
          "writable": true,
          "signer": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        },
        {
          "name": "instructions"
        }
      ],
      "args": [
        {
          "name": "authorization",
          "type": {
            "defined": {
              "name": "ManifestAuthorization"
            }
          }
        },
        {
          "name": "weights",
          "type": {
            "vec": "u16"
          }
        },
        {
          "name": "min_components",
          "type": {
            "vec": "u64"
          }
        },
        {
          "name": "gross_sol",
          "type": "u64"
        },
        {
          "name": "min_tokens",
          "type": "u64"
        },
        {
          "name": "creator_share_bps",
          "type": "u16"
        },
        {
          "name": "identity",
          "type": {
            "defined": {
              "name": "BasketIdentity"
            }
          }
        }
      ]
    },
    {
      "name": "buy",
      "discriminator": [
        102,
        6,
        61,
        18,
        1,
        218,
        235,
        234
      ],
      "accounts": [
        {
          "name": "trader",
          "writable": true,
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "mint",
          "writable": true
        },
        {
          "name": "supply_vault",
          "writable": true
        },
        {
          "name": "trader_tokens",
          "writable": true
        },
        {
          "name": "cashback",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "gross_sol",
          "type": "u64"
        },
        {
          "name": "composite",
          "type": "u64"
        },
        {
          "name": "min_tokens",
          "type": "u64"
        },
        {
          "name": "max_sol_per_component",
          "type": {
            "vec": "u64"
          }
        }
      ]
    },
    {
      "name": "sell",
      "discriminator": [
        51,
        230,
        133,
        164,
        1,
        127,
        131,
        173
      ],
      "accounts": [
        {
          "name": "trader",
          "writable": true,
          "signer": true
        },
        {
          "name": "config"
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "mint",
          "writable": true
        },
        {
          "name": "supply_vault",
          "writable": true
        },
        {
          "name": "trader_tokens",
          "writable": true
        },
        {
          "name": "cashback",
          "writable": true
        },
        {
          "name": "token_program"
        },
        {
          "name": "system_program"
        }
      ],
      "args": [
        {
          "name": "tokens",
          "type": "u64"
        },
        {
          "name": "min_net_sol",
          "type": "u64"
        },
        {
          "name": "min_sol_per_component",
          "type": {
            "vec": "u64"
          }
        }
      ]
    },
    {
      "name": "finalize_metadata",
      "docs": [
        "Publish immutable Metaplex metadata after the financially atomic launch.",
        "The creator-funded reserve repays the permissionless cranker and returns excess."
      ],
      "discriminator": [
        206,
        92,
        87,
        146,
        80,
        171,
        38,
        111
      ],
      "accounts": [
        {
          "name": "cranker",
          "writable": true,
          "signer": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "mint",
          "writable": true
        },
        {
          "name": "metadata_payer",
          "writable": true
        },
        {
          "name": "metadata",
          "writable": true
        },
        {
          "name": "metadata_program"
        },
        {
          "name": "token_program"
        },
        {
          "name": "instructions"
        },
        {
          "name": "system_program"
        }
      ],
      "args": []
    },
    {
      "name": "claim_creator_fee",
      "discriminator": [
        26,
        97,
        138,
        203,
        132,
        171,
        141,
        252
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "system_program"
        }
      ],
      "args": []
    },
    {
      "name": "claim_platform_fee",
      "discriminator": [
        156,
        39,
        208,
        135,
        76,
        237,
        61,
        72
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "system_program"
        }
      ],
      "args": []
    },
    {
      "name": "claim_cashback",
      "discriminator": [
        37,
        58,
        35,
        126,
        190,
        53,
        228,
        197
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "market",
          "writable": true
        },
        {
          "name": "cashback",
          "writable": true
        },
        {
          "name": "router",
          "writable": true
        },
        {
          "name": "system_program"
        }
      ],
      "args": []
    }
  ],
  "accounts": [
    {
      "name": "BasketMarket",
      "discriminator": [
        59,
        94,
        108,
        97,
        53,
        216,
        244,
        245
      ]
    },
    {
      "name": "Config",
      "discriminator": [
        155,
        12,
        170,
        224,
        30,
        250,
        204,
        130
      ]
    },
    {
      "name": "Cashback",
      "discriminator": [
        230,
        139,
        9,
        221,
        63,
        157,
        62,
        30
      ]
    }
  ],
  "types": [
    {
      "name": "BasketMarket",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fees",
            "type": {
              "defined": {
                "name": "FeeLedger"
              }
            }
          },
          {
            "name": "creator",
            "type": "pubkey"
          },
          {
            "name": "treasury",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "mints",
            "type": {
              "array": [
                "pubkey",
                4
              ]
            }
          },
          {
            "name": "vaults",
            "type": {
              "array": [
                "pubkey",
                4
              ]
            }
          },
          {
            "name": "weights",
            "type": {
              "array": [
                "u16",
                4
              ]
            }
          },
          {
            "name": "recipe",
            "type": {
              "array": [
                "u64",
                4
              ]
            }
          },
          {
            "name": "recipe_notional",
            "type": "u64"
          },
          {
            "name": "metadata_hash",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          },
          {
            "name": "metadata_payer",
            "type": "pubkey"
          },
          {
            "name": "metadata_reserve",
            "type": "u64"
          },
          {
            "name": "initial_cashback_owner",
            "type": "pubkey"
          },
          {
            "name": "initial_cashback",
            "type": "u64"
          },
          {
            "name": "issued_tokens",
            "type": "u64"
          },
          {
            "name": "virtual_token",
            "type": "u64"
          },
          {
            "name": "virtual_composite",
            "type": "u64"
          },
          {
            "name": "real_token",
            "type": "u64"
          },
          {
            "name": "real_composite",
            "type": "u64"
          },
          {
            "name": "volume_sol",
            "type": "u128"
          },
          {
            "name": "trade_count",
            "type": "u64"
          },
          {
            "name": "creator_share_bps",
            "type": "u16"
          },
          {
            "name": "component_count",
            "type": "u8"
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "router_bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "Config",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "authority",
            "type": "pubkey"
          },
          {
            "name": "treasury",
            "type": "pubkey"
          },
          {
            "name": "buys_paused",
            "type": "bool"
          }
        ]
      }
    },
    {
      "name": "Cashback",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "claimable",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "FeeLedger",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "platform",
            "type": "u64"
          },
          {
            "name": "creator",
            "type": "u64"
          },
          {
            "name": "cashback",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "BasketIdentity",
      "docs": [
        "These fields are co-signed by the creator and written to Metaplex during activation."
      ],
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          },
          {
            "name": "json_sha256",
            "docs": [
              "SHA-256 of the permanent JSON bytes. Clients must verify the content before signing."
            ],
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          }
        ]
      }
    },
    {
      "name": "ManifestAuthorization",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "creator",
            "type": "pubkey"
          },
          {
            "name": "basket_id",
            "type": {
              "array": [
                "u8",
                16
              ]
            }
          },
          {
            "name": "nonce",
            "type": {
              "array": [
                "u8",
                16
              ]
            }
          },
          {
            "name": "expires_at",
            "type": "i64"
          }
        ]
      }
    },
    {
      "name": "MarketGraduated",
      "type": {
        "fields": [
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "pool_tokens",
            "type": "u64"
          },
          {
            "name": "composite",
            "type": "u64"
          },
          {
            "name": "locked_tokens",
            "type": "u64"
          }
        ],
        "kind": "struct"
      }
    },
    {
      "name": "BuysPaused",
      "type": {
        "fields": [
          {
            "name": "paused",
            "type": "bool"
          }
        ],
        "kind": "struct"
      }
    },
    {
      "name": "FeeClaimed",
      "type": {
        "fields": [
          {
            "name": "market",
            "type": "pubkey"
          },
          {
            "name": "owner",
            "type": "pubkey"
          },
          {
            "name": "kind",
            "type": "u8"
          },
          {
            "name": "lamports",
            "type": "u64"
          }
        ],
        "kind": "struct"
      }
    },
    {
      "name": "MarketActivated",
      "type": {
        "fields": [
          {
            "name": "market",
            "type": "pubkey"
          },
          {
            "name": "creator",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "mints",
            "type": {
              "array": [
                "pubkey",
                4
              ]
            }
          },
          {
            "name": "weights",
            "type": {
              "array": [
                "u16",
                4
              ]
            }
          },
          {
            "name": "recipe",
            "type": {
              "array": [
                "u64",
                4
              ]
            }
          },
          {
            "name": "recipe_notional",
            "type": "u64"
          },
          {
            "name": "metadata_hash",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "creator_share_bps",
            "type": "u16"
          }
        ],
        "kind": "struct"
      }
    },
    {
      "name": "DirectTradeExecuted",
      "type": {
        "fields": [
          {
            "name": "trader",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "buy",
            "type": "bool"
          },
          {
            "name": "tokens",
            "type": "u64"
          },
          {
            "name": "gross_sol",
            "type": "u64"
          },
          {
            "name": "venue_sol",
            "type": "u64"
          },
          {
            "name": "fee_sol",
            "type": "u64"
          },
          {
            "name": "refund_sol",
            "type": "u64"
          }
        ],
        "kind": "struct"
      }
    },
    {
      "name": "TradeExecuted",
      "type": {
        "fields": [
          {
            "name": "market",
            "type": "pubkey"
          },
          {
            "name": "trader",
            "type": "pubkey"
          },
          {
            "name": "sequence",
            "type": "u64"
          },
          {
            "name": "buy",
            "type": "bool"
          },
          {
            "name": "tokens",
            "type": "u64"
          },
          {
            "name": "composite",
            "type": "u64"
          },
          {
            "name": "gross_sol",
            "type": "u64"
          },
          {
            "name": "refund_sol",
            "type": "u64"
          },
          {
            "name": "platform_fee",
            "type": "u64"
          },
          {
            "name": "creator_fee",
            "type": "u64"
          },
          {
            "name": "cashback",
            "type": "u64"
          }
        ],
        "kind": "struct"
      }
    }
  ],
  "events": [
    {
      "discriminator": [
        66,
        242,
        94,
        146,
        88,
        76,
        225,
        23
      ],
      "name": "MarketGraduated"
    },
    {
      "discriminator": [
        81,
        41,
        138,
        93,
        20,
        219,
        184,
        33
      ],
      "name": "BuysPaused"
    },
    {
      "discriminator": [
        202,
        108,
        15,
        80,
        101,
        18,
        217,
        158
      ],
      "name": "FeeClaimed"
    },
    {
      "discriminator": [
        196,
        73,
        78,
        48,
        187,
        132,
        107,
        11
      ],
      "name": "MarketActivated"
    },
    {
      "discriminator": [
        82,
        149,
        149,
        104,
        213,
        77,
        80,
        58
      ],
      "name": "DirectTradeExecuted"
    },
    {
      "discriminator": [
        41,
        110,
        64,
        129,
        60,
        79,
        179,
        80
      ],
      "name": "TradeExecuted"
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "Identity",
      "msg": "Invalid basket name, symbol or permanent metadata reference"
    },
    {
      "code": 6001,
      "name": "Components",
      "msg": "Choose 1\u20134 distinct components"
    },
    {
      "code": 6002,
      "name": "Weights",
      "msg": "Weights must total 10,000 basis points"
    },
    {
      "code": 6003,
      "name": "Amount",
      "msg": "Invalid or dust amount"
    },
    {
      "code": 6004,
      "name": "Math",
      "msg": "Arithmetic overflow"
    },
    {
      "code": 6005,
      "name": "Origin",
      "msg": "Unproven official Pump origin"
    },
    {
      "code": 6006,
      "name": "Vault",
      "msg": "Invalid reserve or token account"
    },
    {
      "code": 6007,
      "name": "Delta",
      "msg": "Actual balance delta mismatch"
    },
    {
      "code": 6008,
      "name": "Slippage",
      "msg": "Slippage or liquidity limit exceeded"
    },
    {
      "code": 6009,
      "name": "Supply",
      "msg": "Curve supply limit exceeded"
    },
    {
      "code": 6010,
      "name": "Authority",
      "msg": "Unauthorized signer"
    },
    {
      "code": 6011,
      "name": "Paused",
      "msg": "New buys are paused"
    },
    {
      "code": 6012,
      "name": "FeeBalance",
      "msg": "Fee liabilities exceed SOL backing"
    },
    {
      "code": 6013,
      "name": "Route",
      "msg": "Invalid supported-venue route account"
    },
    {
      "code": 6014,
      "name": "UnsupportedRoute",
      "msg": "This venue, market state or quote currency is not supported"
    },
    {
      "code": 6015,
      "name": "UnsupportedToken",
      "msg": "Unsupported token authority or extension"
    },
    {
      "code": 6016,
      "name": "Reserve",
      "msg": "Insufficient constituent backing"
    },
    {
      "code": 6017,
      "name": "Manifest",
      "msg": "Invalid or expired creator manifest"
    },
    {
      "code": 6018,
      "name": "Metadata",
      "msg": "Metadata reserve or finalization is invalid"
    }
  ]
}
