SolKnife

Non-custodial Solana toolkit: rug-checks, swaps, portfolios, token minting, multisig, Arweave.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
98%
Naming quality
73%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (20)

  • LOWTool 'solknife_pool_compare' description lacks action verbin solknife_pool_compare
  • LOWTool 'solknife_portfolio_compose_plan' name length outside 3-30 rangein solknife_portfolio_compose_plan
  • LOWTool 'solknife_revoke_authority_build' name length outside 3-30 rangein solknife_revoke_authority_build
  • LOWTool 'solknife_change_authority_build' name length outside 3-30 rangein solknife_change_authority_build
  • LOWTool 'solknife_portfolio_compose_build' name length outside 3-30 rangein solknife_portfolio_compose_build
  • LOWTool 'solknife_ct_apply_pending_build' name length outside 3-30 rangein solknife_ct_apply_pending_build
  • LOWTool 'solknife_ct_empty_and_close_build' name length outside 3-30 rangein solknife_ct_empty_and_close_build
  • LOWTool 'solknife_portfolio_compose_execute' name length outside 3-30 rangein solknife_portfolio_compose_execute
  • LOWTool 'solknife_create_account_execute' name length outside 3-30 rangein solknife_create_account_execute
  • LOWTool 'solknife_revoke_authority_execute' name length outside 3-30 rangein solknife_revoke_authority_execute

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~12,119Tokens (tool definitions)
~1.9 KBTypical response size
Significant attention impact (9.47% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "toolkit": {
      "url": "https://solknife.xyz/api/mcp"
    }
  }
}

Remote endpoints

https://solknife.xyz/api/mcpstreamable-http

What it can do

Tool inventory

Tools (55)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢solknife_check_scan(mint)

Rug-check a Solana token: freeze authority, sellability, holders, liquidity. Returns the same ReportResult shape as GET /api/check.

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_token_meta(mint)

Fetch token metadata (name, symbol, decimals, image) for a mint.

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_portfolio_holdings(owner)

List a wallet's priced token holdings.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_portfolio_compose_plan(owner, targets, slippageBps)

Plan a USD-valued portfolio rebalance from target mint percentages. `targets[].bps` must total 10000.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "targets": {
      "minItems": 1,
      "maxItems": 8,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
            "description": "A Solana address in base58, 32-44 chars."
          },
          "bps": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000,
            "description": "This target's share in basis points (10000 = 100%). All targets must sum to 10000."
          }
        },
        "required": [
          "mint",
          "bps"
        ]
      },
      "description": "The desired portfolio: each mint and its share in basis points, summing to 10000."
    },
    "slippageBps": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "owner",
    "targets"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_pool_check(address)

Read one Meteora DLMM pool: depth, volume, fee yield, token safety summary.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_pool_compare(mint)

Compare every Meteora DLMM pool for a token side by side.

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_positions_list(owner)

List a wallet's open Meteora DLMM positions with PnL.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_mint_supply_read(mint, owner)

Read a mint's authority state plus whether `owner` is its mint authority (prerequisite for mint-to).

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint",
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_revoke_authority_read(mint, owner)

Read a mint's current mint + freeze authorities and whether `owner` holds either.

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint",
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_change_authority_read(mint, owner)

Read a mint's current mint + freeze authorities and whether `owner` holds either (before transferring one).

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint",
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_token_metadata_read(mint, owner)

Read a mint's current on-chain Metaplex metadata and whether `owner` can update it.

Input Schema

{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "mint",
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_burn_nft_list(owner)

List a wallet's NFT assets (DAS).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_reclaim_rent_list(owner)

List a wallet's reclaimable empty token accounts.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_ct_state(owner, mint)

Read confidential-transfer state for owner + mint (mint extension flags, account configured, balance ciphertexts).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "owner",
    "mint"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_ct_orphans_list(owner)

List a wallet's orphan ZK Proof context-state accounts (left by partial Withdraw or Transfer sagas).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "owner"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_create_mint_build(payer, mint, program, decimals, freezeAuthority, ...)

Build an unsigned create-mint tx. Returns the base64 v0 transaction + lastValidBlockHeight + derived mint address.

Input Schema

{
  "type": "object",
  "properties": {
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "program": {
      "type": "string",
      "enum": [
        "spl-token",
        "token-2022"
      ]
    },
    "decimals": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9,
      "description": "Decimal places for the new mint. 9 matches SOL, 6 matches USDC."
    },
    "freezeAuthority": {
      "type": "boolean",
      "description": "Whether the new mint gets a freeze authority. False makes accounts unfreezable forever."
    },
    "extensions": {
      "default": {
        "transferFeeBps": null,
        "interestRateBps": null,
        "closeAuthority": false,
        "confidentialTransfer": false
      },
      "description": "Token-2022 extensions to enable. Omit entirely for program: spl-token.",
      "type": "object",
      "properties": {
        "transferFeeBps": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            },
            {
              "type": "null"
            }
          ],
          "description": "Token-2022 transfer fee in basis points (100 = 1%), or null for none."
        },
        "interestRateBps": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -32768,
              "maximum": 32767
            },
            {
              "type": "null"
            }
          ],
          "description": "Token-2022 interest rate in basis points; may be negative. Null for none."
        },
        "closeAuthority": {
          "type": "boolean",
          "description": "Whether the mint may later be closed by its authority."
        },
        "confidentialTransfer": {
          "type": "boolean",
          "description": "Whether to enable Token-2022 confidential transfers on the mint."
        }
      },
      "required": [
        "transferFeeBps",
        "interestRateBps",
        "closeAuthority",
        "confidentialTransfer"
      ]
    }
  },
  "required": [
    "payer",
    "mint",
    "program",
    "decimals",
    "freezeAuthority"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_mint_supply_build(payer, mint, recipient, amount)

Build an unsigned mint-to tx. `amount` is a whole-token decimal string; the builder parses it against the mint's decimals.

Input Schema

{
  "type": "object",
  "properties": {
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "recipient": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "amount": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "description": "Amount to mint, in base units (not decimal). Multiply by 10^decimals yourself."
    }
  },
  "required": [
    "payer",
    "mint",
    "recipient",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_revoke_authority_build(payer, mint, revokeMint, revokeFreeze)

Build an unsigned revoke-authority tx (mint and/or freeze). Permanent on-chain.

Input Schema

{
  "type": "object",
  "properties": {
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "revokeMint": {
      "type": "boolean",
      "description": "Permanently revoke the mint authority. Irreversible: no new supply can ever be minted."
    },
    "revokeFreeze": {
      "type": "boolean",
      "description": "Permanently revoke the freeze authority. Irreversible: accounts can never be frozen."
    }
  },
  "required": [
    "payer",
    "mint",
    "revokeMint",
    "revokeFreeze"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_change_authority_build(payer, mint, newAuthority, changeMint, changeFreeze)

Build an unsigned change-authority tx: transfer the mint and/or freeze authority to newAuthority. The new authority is pinned in the tx the client verifies before signing.

Input Schema

{
  "type": "object",
  "properties": {
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "newAuthority": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "changeMint": {
      "type": "boolean",
      "description": "Transfer the mint authority to newAuthority."
    },
    "changeFreeze": {
      "type": "boolean",
      "description": "Transfer the freeze authority to newAuthority."
    }
  },
  "required": [
    "payer",
    "mint",
    "newAuthority",
    "changeMint",
    "changeFreeze"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_token_metadata_build(payer, mint, name, symbol, uri, ...)

Build an unsigned set/update Metaplex metadata tx. `lock` makes the metadata immutable (irreversible).

Input Schema

{
  "type": "object",
  "properties": {
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "On-chain token name, e.g. \"Wrapped SOL\"."
    },
    "symbol": {
      "type": "string",
      "maxLength": 50,
      "description": "On-chain ticker, e.g. \"WSOL\"."
    },
    "uri": {
      "type": "string",
      "maxLength": 400,
      "description": "URL of the off-chain metadata JSON (image, description). Often an Arweave or IPFS link."
    },
    "lock": {
      "type": "boolean",
      "description": "Permanently freeze the metadata after this update. Irreversible."
    }
  },
  "required": [
    "payer",
    "mint",
    "name",
    "symbol",
    "uri",
    "lock"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_create_account_build(owner, payer, mints)

Build an unsigned ATA-create tx (idempotent) for one or more mints.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mints": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
        "description": "A Solana address in base58, 32-44 chars."
      }
    }
  },
  "required": [
    "owner",
    "payer",
    "mints"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_reclaim_rent_build(owner, accounts)

Build chunked close-batch tx(s) for the wallet's empty token accounts. Up to MAX_RECLAIM_ACCOUNTS addresses.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "accounts": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
        "description": "A Solana address in base58, 32-44 chars."
      }
    }
  },
  "required": [
    "owner",
    "accounts"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_burn_nft_build(owner, mints)

Build chunked burn tx(s) for selected NFTs (pNFTs supported).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mints": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
        "description": "A Solana address in base58, 32-44 chars."
      }
    }
  },
  "required": [
    "owner",
    "mints"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_swap_order(inputMint, outputMint, amount, taker, slippageBps)

Jupiter quote + unsigned swap tx. `amount` in input-mint base units. Returns the unsigned tx + lastValidBlockHeight + quote details.

Input Schema

{
  "type": "object",
  "properties": {
    "inputMint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "outputMint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "amount": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Amount in base units as a decimal string (not a float). For a 6-decimal mint, \"1000000\" is 1 token."
    },
    "taker": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "slippageBps": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10000
    }
  },
  "required": [
    "inputMint",
    "outputMint",
    "amount",
    "taker"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_portfolio_compose_build(owner, targets, slippageBps)

Build a best-effort single auto-compose transaction for a target portfolio. Charges the configured compose fee when SOLKNIFE_FEE_ACCOUNT is set.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "targets": {
      "minItems": 1,
      "maxItems": 8,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "mint": {
            "type": "string",
            "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
            "description": "A Solana address in base58, 32-44 chars."
          },
          "bps": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000,
            "description": "This target's share of the portfolio in basis points (10000 = 100%). All targets must sum to 10000."
          }
        },
        "required": [
          "mint",
          "bps"
        ]
      },
      "description": "The desired portfolio: each mint and its share in basis points, summing to 10000."
    },
    "slippageBps": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "owner",
    "targets"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_configure_build(owner, mint, pubkeyValidityProof, decryptableZeroBalance)

Build the Configure tx. Needs an agent-generated PubkeyValidity proof (96 B base64) + decryptable-zero AES ciphertext (36 B base64).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "pubkeyValidityProof": {
      "type": "string",
      "minLength": 128,
      "maxLength": 160,
      "description": "Base64 of the 96-byte pubkey-validity proof from your ZK worker."
    },
    "decryptableZeroBalance": {
      "type": "string",
      "minLength": 46,
      "maxLength": 60,
      "description": "Base64 of the 36-byte AES-encrypted zero balance your worker computed."
    }
  },
  "required": [
    "owner",
    "mint",
    "pubkeyValidityProof",
    "decryptableZeroBalance"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_deposit_build(owner, mint, amount, decimals)

Build the Deposit tx (public → confidential pending). `amount` in base units (u64 string).

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "amount": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Amount in base units as a decimal string (not a float). For a 6-decimal mint, \"1000000\" is 1 token."
    },
    "decimals": {
      "type": "integer",
      "minimum": 0,
      "maximum": 255,
      "description": "The mint's decimals. Must match the mint exactly or the transfer fails on-chain."
    }
  },
  "required": [
    "owner",
    "mint",
    "amount",
    "decimals"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_apply_pending_build(owner, mint, expectedPendingCounter, newDecryptableAvailable)

Build the ApplyPending tx. The agent-supplied `newDecryptableAvailable` (36 B AES base64) is what the worker computed.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "expectedPendingCounter": {
      "type": "string",
      "pattern": "^\\d+$"
    },
    "newDecryptableAvailable": {
      "type": "string",
      "minLength": 46,
      "maxLength": 60,
      "description": "Base64 of the 36-byte AES-encrypted new available balance your worker computed."
    }
  },
  "required": [
    "owner",
    "mint",
    "expectedPendingCounter",
    "newDecryptableAvailable"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_empty_and_close_build(owner, mint, zeroCiphertextProof)

Build the combined EmptyAccount + CloseAccount tx. Agent provides the 96 B base64 zero-ciphertext proof.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "zeroCiphertextProof": {
      "type": "string",
      "minLength": 128,
      "maxLength": 160,
      "description": "Base64 of the 96-byte zero-ciphertext proof from your ZK worker."
    }
  },
  "required": [
    "owner",
    "mint",
    "zeroCiphertextProof"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_withdraw_build(owner, mint, amount, decimals, equalityContextAccount, ...)

Build the 5-tx Withdraw saga. Agent supplies equality (320 B) + range U64 (936 B) proofs + new AES decryptable (36 B), plus the two ephemeral ctx-state pubkeys.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "amount": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Amount in base units as a decimal string (not a float). For a 6-decimal mint, \"1000000\" is 1 token."
    },
    "decimals": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9,
      "description": "The mint's decimals. Must match the mint exactly."
    },
    "equalityContextAccount": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "rangeContextAccount": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "equalityProof": {
      "type": "string",
      "minLength": 420,
      "maxLength": 440,
      "description": "Base64 of the ciphertext-commitment equality proof from your ZK worker."
    },
    "rangeProof": {
      "type": "string",
      "minLength": 1240,
      "maxLength": 1260,
      "description": "Base64 of the range proof from your ZK worker."
    },
    "newDecryptableAvailable": {
      "type": "string",
      "minLength": 46,
      "maxLength": 60,
      "description": "Base64 of the 36-byte AES-encrypted new available balance your worker computed."
    }
  },
  "required": [
    "owner",
    "mint",
    "amount",
    "decimals",
    "equalityContextAccount",
    "rangeContextAccount",
    "equalityProof",
    "rangeProof",
    "newDecryptableAvailable"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_transfer_build(owner, mint, destinationTokenAccount, equalityContextAccount, validityContextAccount, ...)

Build the 5-tx Transfer saga. Agent supplies equality (320 B) + validity-3H (544 B) + range U128 (1000 B) proofs + auditor lo/hi ciphertexts (64 B each) + new AES decryptable (36 B), plus the three ephemeral ctx-state pubkeys.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "destinationTokenAccount": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "equalityContextAccount": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "validityContextAccount": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "rangeContextAccount": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "equalityProof": {
      "type": "string",
      "minLength": 420,
      "maxLength": 440,
      "description": "Base64 of the ciphertext-commitment equality proof from your ZK worker."
    },
    "validityProof": {
      "type": "string",
      "minLength": 720,
      "maxLength": 740,
      "description": "Base64 of the batched ciphertext-validity proof from your ZK worker."
    },
    "rangeProof": {
      "type": "string",
      "minLength": 1320,
      "maxLength": 1340,
      "description": "Base64 of the range proof from your ZK worker."
    },
    "newSourceDecryptableAvailable": {
      "type": "string",
      "minLength": 46,
      "maxLength": 60,
      "description": "Base64 of the 36-byte AES-encrypted post-transfer source balance your worker computed."
    },
    "auditorCiphertextLo": {
      "type": "string",
      "minLength": 80,
      "maxLength": 96,
      "description": "Base64 of the low 32 bytes of the auditor ElGamal ciphertext."
    },
    "auditorCiphertextHi": {
      "type": "string",
      "minLength": 80,
      "maxLength": 96,
      "description": "Base64 of the high 32 bytes of the auditor ElGamal ciphertext."
    }
  },
  "required": [
    "owner",
    "mint",
    "destinationTokenAccount",
    "equalityContextAccount",
    "validityContextAccount",
    "rangeContextAccount",
    "equalityProof",
    "validityProof",
    "rangeProof",
    "newSourceDecryptableAvailable",
    "auditorCiphertextLo",
    "auditorCiphertextHi"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_ct_orphans_build(owner, addresses)

Build chunked CloseContextState tx(s) to reclaim orphan ZK ctx rent.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "addresses": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
        "description": "A Solana address in base58, 32-44 chars."
      }
    }
  },
  "required": [
    "owner",
    "addresses"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_swap_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed swap transaction. Returns the ExecuteOutcome (confirmed/failed/expired/unknown).

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_portfolio_compose_execute(owner, signedTransaction, lastValidBlockHeight)

Submit a wallet-signed portfolio compose transaction after top-level program allowlist verification.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "owner",
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_create_mint_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed create-mint tx. Structural re-verifier pins the mint creation ix + fee.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_mint_supply_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed mint-to tx. Structural re-verifier pins the mint-to ix + fee.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_create_account_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed ATA-create tx. Structural re-verifier pins the ATA creation ix(s) + allowlist.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_revoke_authority_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed revoke-authority tx. Structural re-verifier pins the revoke ix(s) + fee.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_change_authority_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed change-authority tx. Structural re-verifier pins the reassign ix(s) + fee.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_token_metadata_execute(signedTransaction, lastValidBlockHeight)

Submit a wallet-signed Metaplex metadata tx. Structural re-verifier pins the metadata ix + fee.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_reclaim_rent_execute(owner, signedTransactions, lastValidBlockHeight)

Submit reclaim-rent close-batch tx(s) (signed). Each is re-verified against fresh on-chain state: its close targets must still be the owner's empty accounts, and its fee must match their rent. Returns per-tx outcomes.

Input Schema

{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "signedTransactions": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2500,
        "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
      },
      "description": "The signed base64 transactions from /build, in the order /build returned them."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "owner",
    "signedTransactions",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_burn_nft_execute(signedTransactions, lastValidBlockHeight)

Submit burn-nft tx(s) (signed). Structural re-verifier pins the burn ixs + fee per tx. Returns per-tx outcomes.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransactions": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2500,
        "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
      },
      "description": "The signed base64 transactions from /build, in the order /build returned them."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransactions",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_ct_submit(op, signedTransaction, signedTransactions, lastValidBlockHeight)

Submit a CT signed tx (single-tx ops) or saga (multi-tx ops). `op` discriminates. For saga ops (withdraw, transfer, reclaim-orphans) supply `signedTransactions` (an array); otherwise supply `signedTransaction`. The server re-verifies the saga shape + fee per op before relaying.

Input Schema

{
  "type": "object",
  "properties": {
    "op": {
      "type": "string",
      "enum": [
        "configure",
        "deposit",
        "apply-pending",
        "empty-and-close",
        "withdraw",
        "transfer",
        "reclaim-orphans"
      ]
    },
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "signedTransactions": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2500,
        "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
      },
      "description": "The signed base64 transactions from /build, in the order /build returned them."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "op",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_arweave_upload_relay(fileBase64, contentType)

Upload a base64-encoded file to Arweave via SolKnife's funded Irys account. JSON-only — for agents without a wallet-adapter integration. Allowed contentType: image/png, image/jpeg, image/gif, image/webp, application/json. Max 2 MiB. Returns { arweaveTxId, arweaveUrl }.

Input Schema

{
  "type": "object",
  "properties": {
    "fileBase64": {
      "type": "string",
      "minLength": 1,
      "description": "Base64 of the file bytes. Max 2 MiB decoded."
    },
    "contentType": {
      "type": "string",
      "enum": [
        "image/png",
        "image/jpeg",
        "image/gif",
        "image/webp",
        "application/json"
      ]
    }
  },
  "required": [
    "fileBase64",
    "contentType"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_multisig_create_build(creator, createKey, members, threshold, timeLock)

Build an unsigned create-multisig tx. createKey is a fresh random pubkey the agent generates; it must co-sign the tx (two signers: creator + createKey). Returns the derived multisig + vault addresses, base64 v0 tx, and lastValidBlockHeight.

Input Schema

{
  "type": "object",
  "properties": {
    "creator": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "createKey": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "members": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
            "description": "A Solana address in base58, 32-44 chars."
          },
          "permissions": {
            "type": "object",
            "properties": {
              "initiate": {
                "type": "boolean",
                "description": "May create proposals."
              },
              "vote": {
                "type": "boolean",
                "description": "May approve or reject proposals."
              },
              "execute": {
                "type": "boolean",
                "description": "May execute a proposal once it reaches threshold."
              }
            },
            "required": [
              "initiate",
              "vote",
              "execute"
            ],
            "description": "What this member is allowed to do. All three are independent."
          }
        },
        "required": [
          "key"
        ]
      },
      "description": "The multisig members. Omit permissions to grant all three."
    },
    "threshold": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Approvals required to execute a proposal. Must not exceed the member count."
    },
    "timeLock": {
      "type": "integer",
      "minimum": 0,
      "maximum": 7776000
    }
  },
  "required": [
    "creator",
    "createKey",
    "members",
    "threshold"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_multisig_create_execute(signedTransaction, lastValidBlockHeight)

Submit the signed create-multisig tx (signed by both the creator wallet and the createKey).

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_multisig_propose_build(multisig, proposer, memo, kind, recipient, ...)

Build an unsigned propose tx. kind=sol-transfer needs recipient+lamports; token-transfer needs mint+recipient+amount (base units); instructions takes raw inner instructions ({programId, accounts, data:base64}) whose payer is the vault PDA. The proposer auto-approves if they can vote.

Input Schema

{
  "type": "object",
  "properties": {
    "multisig": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "proposer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "memo": {
      "type": "string",
      "maxLength": 280
    },
    "kind": {
      "type": "string",
      "enum": [
        "sol-transfer",
        "token-transfer",
        "instructions"
      ]
    },
    "recipient": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "lamports": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000000000000000
    },
    "mint": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "amount": {
      "type": "string",
      "pattern": "^\\d+$"
    },
    "instructions": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "programId": {
            "type": "string",
            "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
            "description": "A Solana address in base58, 32-44 chars."
          },
          "accounts": {
            "maxItems": 40,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "pubkey": {
                  "type": "string",
                  "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
                  "description": "A Solana address in base58, 32-44 chars."
                },
                "isSigner": {
                  "type": "boolean",
                  "description": "Whether this account must sign the inner instruction."
                },
                "isWritable": {
                  "type": "boolean",
                  "description": "Whether the inner instruction mutates this account."
                }
              },
              "required": [
                "pubkey",
                "isSigner",
                "isWritable"
              ]
            },
            "description": "The instruction's account metas, in the order the target program expects."
          },
          "data": {
            "type": "string",
            "maxLength": 4000,
            "description": "Base64 of the instruction data bytes."
          }
        },
        "required": [
          "programId",
          "accounts",
          "data"
        ]
      }
    },
    "ephemeralSigners": {
      "type": "integer",
      "minimum": 0,
      "maximum": 8
    }
  },
  "required": [
    "multisig",
    "proposer",
    "kind"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_multisig_propose_execute(signedTransaction, lastValidBlockHeight)

Submit the signed propose-transaction tx.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴solknife_multisig_config_build(multisig, proposer, memo, op, member, ...)

Build an unsigned config-change proposal. op=add-member needs member (+optional permissions); remove-member needs member; change-threshold needs threshold. Only works on m-of-n multisigs (no single config authority).

Input Schema

{
  "type": "object",
  "properties": {
    "multisig": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "proposer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "memo": {
      "type": "string",
      "maxLength": 280
    },
    "op": {
      "type": "string",
      "enum": [
        "add-member",
        "remove-member",
        "change-threshold"
      ]
    },
    "member": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "permissions": {
      "type": "object",
      "properties": {
        "initiate": {
          "type": "boolean",
          "description": "May create proposals."
        },
        "vote": {
          "type": "boolean",
          "description": "May approve or reject proposals."
        },
        "execute": {
          "type": "boolean",
          "description": "May execute a proposal once it reaches threshold."
        }
      },
      "required": [
        "initiate",
        "vote",
        "execute"
      ],
      "description": "What this member is allowed to do. All three are independent."
    },
    "threshold": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "multisig",
    "proposer",
    "op"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_multisig_config_execute(signedTransaction, lastValidBlockHeight)

Submit the signed config-change proposal tx.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢solknife_multisig_state(address)

Read a Squads v4 multisig by address: members + permissions, threshold, vault balance, and pending proposals (vote tallies, who has voted, whether it can be executed). Returns null if the address is not a multisig.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_multisig_approve_build(multisig, member, transactionIndex, vote)

Build an unsigned vote tx: approve or reject the proposal at transactionIndex.

Input Schema

{
  "type": "object",
  "properties": {
    "multisig": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "member": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "transactionIndex": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000000000,
      "description": "The proposal index, as returned by /api/multisig/state."
    },
    "vote": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ]
    }
  },
  "required": [
    "multisig",
    "member",
    "transactionIndex",
    "vote"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_multisig_approve_execute(signedTransaction, lastValidBlockHeight, vote)

Submit the signed vote tx. Pass the same vote value used in the build.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    },
    "vote": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ]
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight",
    "vote"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪solknife_multisig_execute_build(multisig, member, transactionIndex, computeUnitLimit)

Build an unsigned execute tx for an APPROVED proposal at transactionIndex. The server detects vault vs config and returns executeKind; pass it to execute.execute. computeUnitLimit optionally raises the CU cap for heavy inner transactions.

Input Schema

{
  "type": "object",
  "properties": {
    "multisig": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "member": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "A Solana address in base58, 32-44 chars."
    },
    "transactionIndex": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000000000,
      "description": "The proposal index, as returned by /api/multisig/state."
    },
    "computeUnitLimit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1400000
    }
  },
  "required": [
    "multisig",
    "member",
    "transactionIndex"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡solknife_multisig_execute_execute(signedTransaction, lastValidBlockHeight, executeKind)

Submit the signed execute-proposal tx. Pass the executeKind returned by execute.build.

Input Schema

{
  "type": "object",
  "properties": {
    "signedTransaction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2500,
      "description": "The base64 VersionedTransaction returned by the matching /build call, signed with your key. Do not submit it yourself; this endpoint submits it."
    },
    "lastValidBlockHeight": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000000000,
      "description": "The `lastValidBlockHeight` returned alongside the unsigned tx by /build. Past this block height the tx can no longer land."
    },
    "executeKind": {
      "type": "string",
      "enum": [
        "vault",
        "config"
      ]
    }
  },
  "required": [
    "signedTransaction",
    "lastValidBlockHeight",
    "executeKind"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded55 tools
verifiedversion not recorded55 tools
verifiedversion not recorded55 tools