{
  "address": "JB5KCYi96KaeoLhcyGmi9sEo6wQs4PFbGaPA4Xh1tKQq",
  "metadata": {
    "name": "claw_shark",
    "version": "0.1.0",
    "spec": "0.1.0",
    "description": "SharkTank Launch Vault — Solana Program"
  },
  "instructions": [
    {
      "name": "claim_refund",
      "docs": [
        "Claim refund if launch is in Refunding status."
      ],
      "discriminator": [
        15,
        16,
        30,
        161,
        255,
        228,
        97,
        60
      ],
      "accounts": [
        {
          "name": "launch",
          "writable": true,
          "relations": [
            "commitment"
          ]
        },
        {
          "name": "commitment",
          "writable": true
        },
        {
          "name": "funder",
          "writable": true,
          "signer": true,
          "relations": [
            "commitment"
          ]
        },
        {
          "name": "vault_token_account",
          "writable": true
        },
        {
          "name": "funder_token_account",
          "writable": true
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        }
      ],
      "args": []
    },
    {
      "name": "commit_funds",
      "docs": [
        "Commit USDC to a live launch."
      ],
      "discriminator": [
        242,
        226,
        172,
        204,
        143,
        241,
        207,
        248
      ],
      "accounts": [
        {
          "name": "launch",
          "writable": true
        },
        {
          "name": "commitment",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  109,
                  109,
                  105,
                  116,
                  109,
                  101,
                  110,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "launch"
              },
              {
                "kind": "account",
                "path": "funder"
              }
            ]
          }
        },
        {
          "name": "funder",
          "writable": true,
          "signer": true
        },
        {
          "name": "vault_token_account",
          "writable": true
        },
        {
          "name": "funder_token_account",
          "writable": true
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "create_launch",
      "docs": [
        "Initialize a new launch vault for a project.",
        "Called by the project founder after passing quality review."
      ],
      "discriminator": [
        239,
        223,
        255,
        134,
        39,
        121,
        127,
        62
      ],
      "accounts": [
        {
          "name": "launch",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  108,
                  97,
                  117,
                  110,
                  99,
                  104
                ]
              },
              {
                "kind": "account",
                "path": "authority"
              },
              {
                "kind": "arg",
                "path": "name"
              }
            ]
          }
        },
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "raise_goal",
          "type": "u64"
        },
        {
          "name": "raise_cap",
          "type": {
            "option": "u64"
          }
        },
        {
          "name": "deadline",
          "type": "i64"
        },
        {
          "name": "quality_score",
          "type": "u8"
        }
      ]
    },
    {
      "name": "finalize_launch",
      "docs": [
        "Finalize a launch after deadline.",
        "If goal met → funds go to DAO treasury with spending limits.",
        "If not → status set to Refunding."
      ],
      "discriminator": [
        113,
        133,
        62,
        196,
        58,
        212,
        118,
        166
      ],
      "accounts": [
        {
          "name": "launch",
          "writable": true
        },
        {
          "name": "authority",
          "signer": true,
          "relations": [
            "launch"
          ]
        }
      ],
      "args": []
    },
    {
      "name": "record_agent_score",
      "docs": [
        "Record agent analysis score on-chain (called by oracle/backend)."
      ],
      "discriminator": [
        250,
        174,
        61,
        80,
        184,
        105,
        211,
        25
      ],
      "accounts": [
        {
          "name": "launch"
        },
        {
          "name": "agent_record",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  97,
                  103,
                  101,
                  110,
                  116
                ]
              },
              {
                "kind": "account",
                "path": "launch"
              },
              {
                "kind": "arg",
                "path": "agent_id"
              }
            ]
          }
        },
        {
          "name": "oracle",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "agent_id",
          "type": "string"
        },
        {
          "name": "score",
          "type": "u8"
        },
        {
          "name": "verdict",
          "type": "u8"
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "AgentRecord",
      "discriminator": [
        4,
        201,
        129,
        70,
        197,
        134,
        47,
        169
      ]
    },
    {
      "name": "Commitment",
      "discriminator": [
        61,
        112,
        129,
        128,
        24,
        147,
        77,
        87
      ]
    },
    {
      "name": "Launch",
      "discriminator": [
        144,
        51,
        51,
        163,
        206,
        85,
        213,
        38
      ]
    }
  ],
  "events": [
    {
      "name": "FundsCommitted",
      "discriminator": [
        104,
        118,
        120,
        139,
        168,
        19,
        126,
        15
      ]
    },
    {
      "name": "LaunchCreated",
      "discriminator": [
        59,
        38,
        190,
        230,
        33,
        34,
        89,
        20
      ]
    },
    {
      "name": "LaunchFunded",
      "discriminator": [
        8,
        44,
        200,
        148,
        62,
        186,
        22,
        182
      ]
    },
    {
      "name": "LaunchRefunding",
      "discriminator": [
        239,
        78,
        232,
        200,
        240,
        156,
        31,
        157
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "NameTooLong",
      "msg": "Project name exceeds maximum length"
    },
    {
      "code": 6001,
      "name": "InvalidRaiseGoal",
      "msg": "Raise goal must be greater than zero"
    },
    {
      "code": 6002,
      "name": "InvalidScore",
      "msg": "Score must be 0-100"
    },
    {
      "code": 6003,
      "name": "InvalidVerdict",
      "msg": "Verdict must be 0-6"
    },
    {
      "code": 6004,
      "name": "LaunchNotLive",
      "msg": "Launch is not in Live status"
    },
    {
      "code": 6005,
      "name": "InvalidAmount",
      "msg": "Invalid amount"
    },
    {
      "code": 6006,
      "name": "LaunchExpired",
      "msg": "Launch has expired"
    },
    {
      "code": 6007,
      "name": "CapExceeded",
      "msg": "Raise cap exceeded"
    },
    {
      "code": 6008,
      "name": "LaunchNotExpired",
      "msg": "Launch deadline has not passed"
    },
    {
      "code": 6009,
      "name": "NotRefunding",
      "msg": "Launch is not in Refunding status"
    },
    {
      "code": 6010,
      "name": "NothingToRefund",
      "msg": "Nothing to refund"
    },
    {
      "code": 6011,
      "name": "Overflow",
      "msg": "Arithmetic overflow"
    }
  ],
  "types": [
    {
      "name": "AgentRecord",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "agent_id",
            "type": "string"
          },
          {
            "name": "score",
            "type": "u8"
          },
          {
            "name": "verdict",
            "type": "u8"
          },
          {
            "name": "timestamp",
            "type": "i64"
          },
          {
            "name": "bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "Commitment",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "funder",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "timestamp",
            "type": "i64"
          },
          {
            "name": "bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "FundsCommitted",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "funder",
            "type": "pubkey"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "total_committed",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "Launch",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "authority",
            "type": "pubkey"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "raise_goal",
            "type": "u64"
          },
          {
            "name": "raise_cap",
            "type": {
              "option": "u64"
            }
          },
          {
            "name": "deadline",
            "type": "i64"
          },
          {
            "name": "quality_score",
            "type": "u8"
          },
          {
            "name": "total_committed",
            "type": "u64"
          },
          {
            "name": "funder_count",
            "type": "u32"
          },
          {
            "name": "status",
            "type": {
              "defined": {
                "name": "LaunchStatus"
              }
            }
          },
          {
            "name": "created_at",
            "type": "i64"
          },
          {
            "name": "bump",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "LaunchCreated",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "authority",
            "type": "pubkey"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "raise_goal",
            "type": "u64"
          },
          {
            "name": "quality_score",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "LaunchFunded",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "total_raised",
            "type": "u64"
          },
          {
            "name": "funder_count",
            "type": "u32"
          }
        ]
      }
    },
    {
      "name": "LaunchRefunding",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "launch",
            "type": "pubkey"
          },
          {
            "name": "total_committed",
            "type": "u64"
          },
          {
            "name": "goal",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "LaunchStatus",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Live"
          },
          {
            "name": "Funded"
          },
          {
            "name": "Refunding"
          },
          {
            "name": "Completed"
          },
          {
            "name": "Failed"
          }
        ]
      }
    }
  ]
}