---
title: "Create Fee Share Config creation transaction (v2)"
method: POST
path: "/fee-share/config"
tags: ["Fee Share"]
---

# Create Fee Share Config creation transaction (v2)

`POST /fee-share/config`

Create a fee sharing config with multiple fee claimers (up to 100). Token Launches require fee sharing configuration for all token launches. All fees must be explicitly allocated using basis points. When there are more than 15 fee claimers, lookup tables are required.

## Request body

- object
  - `payer` string, required — Public key of the payer wallet
  - `baseMint` string, required — Public key of the base mint (the token being launched)
  - `claimersArray` string[], required — Array of fee claimer wallet public keys. Must align with basisPointsArray. Maximum 100 fee claimers.
  - `basisPointsArray` number[], required — Array of basis points for each fee claimer. Must align with claimersArray. Total must equal 10,000.
  - `partner` string, nullable — Optional: Public key of the partner wallet for partner fee sharing
  - `partnerConfig` string, nullable — Optional: Public key of the partner config PDA (required if partner is provided)
  - `additionalLookupTables` string[], nullable — Optional: Array of lookup table addresses. Required when there are more than 7 fee claimers.
  - `bagsConfigType` 'fa29606e-5e48-4c37-827f-4b03d58ee23d' | 'd16d3585-6488-4a6c-9a6f-e6c39ca0fda3' | 'a7c8e1f2-3d4b-5a6c-9e0f-1b2c3d4e5f6a' | '48e26d2f-0a9d-4625-a3cc-c3987d874b9e' | '810faadb-030b-47de-a68b-7211c1cbbee3' | 'e2963a6c-441a-4862-9d80-b94e3a481cd7' | 'ba28db46-ea6f-4452-8218-5587f6aca0a1' — Bags config type that determines the token's fee structure. - `fa29606e-5e48-4c37-827f-4b03d58ee23d` (Default): 2% fees both pre and post migration, with 25% fee compounding post-migration. Graduates at ~85 SOL. - `d16d3585-6488-4a6c-9a6f-e6c39ca0fda3`: 0.25% fees pre-migration, 1% post-migration, with 50% fee compounding post-migration. Graduates at ~85 SOL. - `a7c8e1f2-3d4b-5a6c-9e0f-1b2c3d4e5f6a`: 1% fees pre-migration, 0.25% post-migration, with 50% fee compounding post-migration. Graduates at ~85 SOL. - `48e26d2f-0a9d-4625-a3cc-c3987d874b9e`: 10% fees both pre and post migration, with 50% fee compounding post-migration. Graduates at ~85 SOL. - `810faadb-030b-47de-a68b-7211c1cbbee3` (2% Flat, 85% Locked): 2% fees both pre and post migration, with 25% fee compounding post-migration. 85% of token supply is locked. Graduates at ~100 SOL. - `e2963a6c-441a-4862-9d80-b94e3a481cd7` (Default, 1K Supply): Same as Default (2% fees pre and post migration, 25% fee compounding post-migration) but with a 1,000 token supply. Graduates at ~85 SOL. - `ba28db46-ea6f-4452-8218-5587f6aca0a1` (2% Base, 96% Locked): 2% base fee pre-migration, with 25% fee compounding post-migration. 96% of token supply is locked. Post-migration the fee is market-cap based, starting at 2% and decaying to a 0.5% floor as the token's market cap grows (~25x graduation market cap). Graduates at ~55 SOL.
  - `enableFirstSwapWithMinFee` boolean, nullable — Optional (default true). When true, the first swap on the new pool pays the minimum (ending) base fee instead of the starting cliff fee. This only affects config types that use a base-fee scheduler (one whose base fee changes over time). No current config type uses a base-fee scheduler, so this field currently has no effect and is safe to omit; it is retained for forward compatibility.
  - `tipWallet` string, nullable — Base58 encoded Solana public key of the tip recipient wallet
  - `tipLamports` number, nullable — Tip amount in lamports

## Response `200`

Successfully created fee share config

- object
  - `success` boolean, required
  - `response` object
    - `needsCreation` boolean, required — Whether the config needs to be created (true) or already exists (false)
    - `feeShareAuthority` string, required — Public key of the fee share authority
    - `meteoraConfigKey` string, required — Public key of the Meteora config key
    - `transactions` TransactionWithBlockhash[], nullable — Array of transactions with blockhash to be signed and sent in order
      - `blockhash` BlockhashWithExpiryBlockHeight, required
        - `blockhash` string, required — Recent blockhash for the transaction
        - `lastValidBlockHeight` number, required — The last block height for which the blockhash is valid
      - `transaction` string, required — Base58 encoded serialized versioned transaction
    - `bundles` array[], nullable — Optional array of transaction bundles (arrays of transactions that should be sent together)
      - TransactionWithBlockhash[]
        - `blockhash` BlockhashWithExpiryBlockHeight, required
          - `blockhash` string, required — Recent blockhash for the transaction
          - `lastValidBlockHeight` number, required — The last block height for which the blockhash is valid
        - `transaction` string, required — Base58 encoded serialized versioned transaction

## Other responses

- `400` — Bad request - Invalid parameters, wallets, BPS values (must sum to 10,000), or too many fee claimers
- `401` — Unauthorized - Invalid or missing API key
- `500` — Internal server error

---

[API](https://skmtc.net/bags/apis/bags-public-api-v2.md) · [All operations](https://skmtc.net/bags/apis/bags-public-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bags/bags-public-api-v2/versions/4a14b82cd39d/schema)
