What is relayfor.si?

Fee strategies

How your project's part of each token's creator fee splits between its AI, its creator and your wallets.

A fee strategy (a preset in the API) splits your project's part of each token's creator fee: a share for the token's AI credit, one for its creator and one for your own wallets. Shares are basis points of your part, so 10,000 is all of it. The AI keeps at least 2,500; every other share is 0 or at least 125. relayfor.si takes 20% of each creator fee before your part.

Every project is made with one default, the Standard strategy. A launch or import uses the default unless it names another in preset. See Fee strategy for the rules with a figure to try.

List fee strategies

GET

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl https://relayfor.si/api/project/v1/presets \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY"

Answer

Answers 200 with PresetList.

Example answer
{  "data": [    {      "id": "fps_Hh6iDhVIjXITTTn7",      "name": "Standard",      "default": true,      "ai_share": 6000,      "creator_share": 2000,      "project_share": 2000,      "ai_floor_share": 2500,      "wallets": [        {          "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",          "share": 2000        }      ],      "creator_choice": {        "budget": 8000,        "ai_floor": 2500,        "creator_max": 5500      },      "fee_bps": {        "ai": 4800,        "creator": 1600,        "project": 1600,        "platform": 2000      },      "created_at": "2026-10-07T08:58:12.000Z",      "updated_at": "2026-10-07T08:58:12.000Z"    },    {      "id": "fps_vZCJ5xU1IT4qWzSH",      "name": "AI first",      "default": false,      "ai_share": 8000,      "creator_share": 1000,      "project_share": 1000,      "ai_floor_share": 5000,      "wallets": [        {          "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",          "share": 1000        }      ],      "creator_choice": {        "budget": 9000,        "ai_floor": 5000,        "creator_max": 4000      },      "fee_bps": {        "ai": 6400,        "creator": 800,        "project": 800,        "platform": 2000      },      "created_at": "2026-10-07T11:30:00.000Z",      "updated_at": "2026-10-07T11:30:00.000Z"    }  ]}
Its fields
  • dataobject[]Required

    The items, the default first, then newest first.

    • idstringRequired

      The preset's id: fps_ and 16 characters.

    • namestringRequired

      Its name, unique in the project.

    • defaultbooleanRequired

      The project's default: what a launch or import gets when it names none.

    • ai_shareintegerRequired

      The AI's share when the creator doesn't choose.

    • creator_shareintegerRequired

      The creator's share when the creator doesn't choose.

    • project_shareintegerRequired

      The project's wallets together.

    • ai_floor_shareintegerRequired

      The least AI share its creators may choose: at least 2,500 (20% of the token's fees).

    • walletsobject[]Required

      The project's wallets, each with its share of the project's part.

      • addressstringRequired

        A wallet of the project's own.

      • shareintegerRequired

        Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_choiceobjectRequired

      What a creator may choose at launch, for a launchpad's own page.

      • budgetintegerRequired

        The AI and creator shares together.

      • ai_floorintegerRequired

        Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

      • creator_maxintegerRequired

        The most a creator may take: the budget less the floor.

    • fee_bpsobjectRequired

      The preset's own split in basis points of the whole creator fee, as a route locks it: shares rounded down, the AI taking what rounding leaves.

      • aiintegerRequired

        The AI's basis points of the whole fee.

      • creatorintegerRequired

        The creator's basis points of the whole fee.

      • projectintegerRequired

        The project's wallets' basis points of the whole fee, together.

      • platformintegerRequired

        relayfor's 20%.

    • created_atstringRequired

      When it was made, in UTC.

    • updated_atstringRequired

      When it last changed, in UTC.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Starting splits

GET

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl https://relayfor.si/api/project/v1/presets/templates \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY"

Answer

Answers 200 with PresetTemplateList.

Example answer
{  "data": [    {      "key": "standard",      "ai_share": 6000,      "creator_share": 2000,      "project_share": 2000    },    {      "key": "ai_first",      "ai_share": 8000,      "creator_share": 1000,      "project_share": 1000    },    {      "key": "creator_first",      "ai_share": 3000,      "creator_share": 5000,      "project_share": 2000    },    {      "key": "no_project_share",      "ai_share": 6000,      "creator_share": 4000,      "project_share": 0    }  ]}
Its fields
  • dataobject[]Required

    relayfor's starting splits.

    • key"standard" | "ai_first" | "creator_first" | "no_project_share"Required

      Which starting split: the dashboard names it.

    • ai_shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • project_shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Add a fee strategy

POST

The shares, in basis points of the project's part, add up to 10,000; the AI keeps at least its floor (2,500 or more); every other share is 0 or at least 125. A wallet a payout could never reach (a program, a sysvar, relayfor's own) is refused. Up to 20 presets per project.

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Send an Idempotency-Key (any unique string, a UUID): a retry with the same key and body gets the first answer back for 24 hours, a secret it carried included.

Request
curl -X POST https://relayfor.si/api/project/v1/presets \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY" \  -H "Idempotency-Key: $(uuidgen)" \  -H "Content-Type: application/json" \  -d '{    "name": "AI first",    "ai_share": 8000,    "creator_share": 1000,    "ai_floor_share": 5000,    "wallets": [      {        "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",        "share": 1000      }    ]  }'

Body

  • namestringRequired

    2 to 48 characters, unique in the project whatever their case.

  • ai_shareintegerRequired

    The AI's share when the creator doesn't choose.

  • creator_shareintegerRequired

    The creator's share when the creator doesn't choose: 0, or at least 125.

  • ai_floor_shareinteger

    The least AI share its creators may choose; default 2,500.

  • walletsobject[]

    Up to 7 of the project's own wallets; their shares together are the project's share. Each at least 125 (1% of the token's fees).

    • addressstringRequired

      A Solana address of the project's own.

    • shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • defaultboolean

    Make it the project's default; the old default stops being one. Every project is made with one, relayfor's Standard.

Answer

Answers 201 with Preset.

Example answer
{  "id": "fps_vZCJ5xU1IT4qWzSH",  "name": "AI first",  "default": false,  "ai_share": 8000,  "creator_share": 1000,  "project_share": 1000,  "ai_floor_share": 5000,  "wallets": [    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "share": 1000    }  ],  "creator_choice": {    "budget": 9000,    "ai_floor": 5000,    "creator_max": 4000  },  "fee_bps": {    "ai": 6400,    "creator": 800,    "project": 800,    "platform": 2000  },  "created_at": "2026-10-07T11:30:00.000Z",  "updated_at": "2026-10-07T11:30:00.000Z"}
Its fields
  • idstringRequired

    The preset's id: fps_ and 16 characters.

  • namestringRequired

    Its name, unique in the project.

  • defaultbooleanRequired

    The project's default: what a launch or import gets when it names none.

  • ai_shareintegerRequired

    The AI's share when the creator doesn't choose.

  • creator_shareintegerRequired

    The creator's share when the creator doesn't choose.

  • project_shareintegerRequired

    The project's wallets together.

  • ai_floor_shareintegerRequired

    The least AI share its creators may choose: at least 2,500 (20% of the token's fees).

  • walletsobject[]Required

    The project's wallets, each with its share of the project's part.

    • addressstringRequired

      A wallet of the project's own.

    • shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • creator_choiceobjectRequired

    What a creator may choose at launch, for a launchpad's own page.

    • budgetintegerRequired

      The AI and creator shares together.

    • ai_floorintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_maxintegerRequired

      The most a creator may take: the budget less the floor.

  • fee_bpsobjectRequired

    The preset's own split in basis points of the whole creator fee, as a route locks it: shares rounded down, the AI taking what rounding leaves.

    • aiintegerRequired

      The AI's basis points of the whole fee.

    • creatorintegerRequired

      The creator's basis points of the whole fee.

    • projectintegerRequired

      The project's wallets' basis points of the whole fee, together.

    • platformintegerRequired

      relayfor's 20%.

  • created_atstringRequired

    When it was made, in UTC.

  • updated_atstringRequired

    When it last changed, in UTC.

Errors

A 409, 429, or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Get a fee strategy

GET

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl https://relayfor.si/api/project/v1/presets/fps_vZCJ5xU1IT4qWzSH \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY"

Path

  • idstringRequired

    The preset's id: fps_...

Answer

Answers 200 with Preset.

Example answer
{  "id": "fps_Hh6iDhVIjXITTTn7",  "name": "Standard",  "default": true,  "ai_share": 6000,  "creator_share": 2000,  "project_share": 2000,  "ai_floor_share": 2500,  "wallets": [    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "share": 2000    }  ],  "creator_choice": {    "budget": 8000,    "ai_floor": 2500,    "creator_max": 5500  },  "fee_bps": {    "ai": 4800,    "creator": 1600,    "project": 1600,    "platform": 2000  },  "created_at": "2026-10-07T08:58:12.000Z",  "updated_at": "2026-10-07T08:58:12.000Z"}
Its fields
  • idstringRequired

    The preset's id: fps_ and 16 characters.

  • namestringRequired

    Its name, unique in the project.

  • defaultbooleanRequired

    The project's default: what a launch or import gets when it names none.

  • ai_shareintegerRequired

    The AI's share when the creator doesn't choose.

  • creator_shareintegerRequired

    The creator's share when the creator doesn't choose.

  • project_shareintegerRequired

    The project's wallets together.

  • ai_floor_shareintegerRequired

    The least AI share its creators may choose: at least 2,500 (20% of the token's fees).

  • walletsobject[]Required

    The project's wallets, each with its share of the project's part.

    • addressstringRequired

      A wallet of the project's own.

    • shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • creator_choiceobjectRequired

    What a creator may choose at launch, for a launchpad's own page.

    • budgetintegerRequired

      The AI and creator shares together.

    • ai_floorintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_maxintegerRequired

      The most a creator may take: the budget less the floor.

  • fee_bpsobjectRequired

    The preset's own split in basis points of the whole creator fee, as a route locks it: shares rounded down, the AI taking what rounding leaves.

    • aiintegerRequired

      The AI's basis points of the whole fee.

    • creatorintegerRequired

      The creator's basis points of the whole fee.

    • projectintegerRequired

      The project's wallets' basis points of the whole fee, together.

    • platformintegerRequired

      relayfor's 20%.

  • created_atstringRequired

    When it was made, in UTC.

  • updated_atstringRequired

    When it last changed, in UTC.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Change a fee strategy

Changes apply to tokens launched or brought after them. A token keeps the split it launched with: pump.fun locks it.

PATCH

The changed preset is checked whole, by the same rules as a new one. Tokens already launched with it keep their routes: a route is locked on chain when its token is made.

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl -X PATCH https://relayfor.si/api/project/v1/presets/fps_vZCJ5xU1IT4qWzSH \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY" \  -H "Content-Type: application/json" \  -d '{    "default": true  }'

Path

  • idstringRequired

    The preset's id: fps_...

Body

  • namestring

    2 to 48 characters, unique in the project whatever their case.

  • ai_shareinteger

    Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • creator_shareinteger

    Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • ai_floor_shareinteger

    Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • walletsobject[]

    Up to 7 of the project's own wallets; their shares together are the project's share. Each at least 125 (1% of the token's fees).

    • addressstringRequired

      A Solana address of the project's own.

    • shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • defaulttrue

    Make it the project's default; the old default stops being one.

Answer

Answers 200 with Preset.

Example answer
{  "id": "fps_vZCJ5xU1IT4qWzSH",  "name": "AI first",  "default": true,  "ai_share": 8000,  "creator_share": 1000,  "project_share": 1000,  "ai_floor_share": 5000,  "wallets": [    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "share": 1000    }  ],  "creator_choice": {    "budget": 9000,    "ai_floor": 5000,    "creator_max": 4000  },  "fee_bps": {    "ai": 6400,    "creator": 800,    "project": 800,    "platform": 2000  },  "created_at": "2026-10-07T11:30:00.000Z",  "updated_at": "2026-10-07T12:00:00.000Z"}
Its fields
  • idstringRequired

    The preset's id: fps_ and 16 characters.

  • namestringRequired

    Its name, unique in the project.

  • defaultbooleanRequired

    The project's default: what a launch or import gets when it names none.

  • ai_shareintegerRequired

    The AI's share when the creator doesn't choose.

  • creator_shareintegerRequired

    The creator's share when the creator doesn't choose.

  • project_shareintegerRequired

    The project's wallets together.

  • ai_floor_shareintegerRequired

    The least AI share its creators may choose: at least 2,500 (20% of the token's fees).

  • walletsobject[]Required

    The project's wallets, each with its share of the project's part.

    • addressstringRequired

      A wallet of the project's own.

    • shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • creator_choiceobjectRequired

    What a creator may choose at launch, for a launchpad's own page.

    • budgetintegerRequired

      The AI and creator shares together.

    • ai_floorintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_maxintegerRequired

      The most a creator may take: the budget less the floor.

  • fee_bpsobjectRequired

    The preset's own split in basis points of the whole creator fee, as a route locks it: shares rounded down, the AI taking what rounding leaves.

    • aiintegerRequired

      The AI's basis points of the whole fee.

    • creatorintegerRequired

      The creator's basis points of the whole fee.

    • projectintegerRequired

      The project's wallets' basis points of the whole fee, together.

    • platformintegerRequired

      relayfor's 20%.

  • created_atstringRequired

    When it was made, in UTC.

  • updated_atstringRequired

    When it last changed, in UTC.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

Archive a fee strategy

DELETE

The default can't be archived: make another preset the default first. Tokens launched with it still name it. Archiving one already archived answers it again, so a retry is safe.

Send the project's secret key as Authorization: Bearer rf_sk_..., from a server.

Request
curl -X DELETE https://relayfor.si/api/project/v1/presets/fps_vZCJ5xU1IT4qWzSH \  -H "Authorization: Bearer $RELAYFOR_SECRET_KEY"

Path

  • idstringRequired

    The preset's id: fps_...

Answer

Answers 200 with Preset.

Example answer
{  "id": "fps_vZCJ5xU1IT4qWzSH",  "name": "AI first",  "default": false,  "ai_share": 8000,  "creator_share": 1000,  "project_share": 1000,  "ai_floor_share": 5000,  "wallets": [    {      "address": "nTPkyRFA6CAFjF1YveCHK1ATbQgdM9mwZgikp4Wzxrxk",      "share": 1000    }  ],  "creator_choice": {    "budget": 9000,    "ai_floor": 5000,    "creator_max": 4000  },  "fee_bps": {    "ai": 6400,    "creator": 800,    "project": 800,    "platform": 2000  },  "created_at": "2026-10-07T11:30:00.000Z",  "updated_at": "2026-10-07T11:30:00.000Z"}
Its fields
  • idstringRequired

    The preset's id: fps_ and 16 characters.

  • namestringRequired

    Its name, unique in the project.

  • defaultbooleanRequired

    The project's default: what a launch or import gets when it names none.

  • ai_shareintegerRequired

    The AI's share when the creator doesn't choose.

  • creator_shareintegerRequired

    The creator's share when the creator doesn't choose.

  • project_shareintegerRequired

    The project's wallets together.

  • ai_floor_shareintegerRequired

    The least AI share its creators may choose: at least 2,500 (20% of the token's fees).

  • walletsobject[]Required

    The project's wallets, each with its share of the project's part.

    • addressstringRequired

      A wallet of the project's own.

    • shareintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

  • creator_choiceobjectRequired

    What a creator may choose at launch, for a launchpad's own page.

    • budgetintegerRequired

      The AI and creator shares together.

    • ai_floorintegerRequired

      Basis points of the project's part: 10,000 is all of it, the 80% of a token's creator fee relayfor's 20% leaves.

    • creator_maxintegerRequired

      The most a creator may take: the budget less the floor.

  • fee_bpsobjectRequired

    The preset's own split in basis points of the whole creator fee, as a route locks it: shares rounded down, the AI taking what rounding leaves.

    • aiintegerRequired

      The AI's basis points of the whole fee.

    • creatorintegerRequired

      The creator's basis points of the whole fee.

    • projectintegerRequired

      The project's wallets' basis points of the whole fee, together.

    • platformintegerRequired

      relayfor's 20%.

  • created_atstringRequired

    When it was made, in UTC.

  • updated_atstringRequired

    When it last changed, in UTC.

Errors

A 429 or 503 answer carries Retry-After: wait that many seconds, then send the same request again.

On this page