{
  "schemaVersion": "agf-intent-examples-v1",
  "description": "Intent examples only, not signed transactions. Replace address by the player own official wallet; never reuse another player address.",
  "apiBase": "/api/agf/v1",
  "templates": {
    "mintA": {
      "action": "mintA",
      "address": "<own official BSC wallet>",
      "shares": "1",
      "ref": "<optional verified inviter.ai>",
      "slippageBps": 100
    },
    "mintBCurve": {
      "action": "mintBCurve",
      "address": "<own official BSC wallet>",
      "shares": "1",
      "slippageBps": 100
    },
    "mintBCrit": {
      "action": "mintBCrit",
      "address": "<own official BSC wallet>",
      "shares": "1",
      "slippageBps": 100
    },
    "claimA": {
      "action": "claimA",
      "address": "<own official BSC wallet>",
      "ids": [
        "0"
      ]
    },
    "claimB": {
      "action": "claimB",
      "address": "<own official BSC wallet>",
      "ids": [
        "0"
      ]
    },
    "settleCrit": {
      "action": "settleCrit",
      "address": "<own official BSC wallet>",
      "positionId": "0"
    },
    "withdrawLP": {
      "action": "withdrawLP",
      "address": "<own official BSC wallet>",
      "ids": [
        "0"
      ],
      "slippageBps": 100
    }
  },
  "rules": [
    "Use actual position IDs from account; example0 is not evidence that a position exists.",
    "Empty optional ref must be omitted; placeholders are never submitted.",
    "Check live state and all user-specific preconditions; prepare returns unsigned transaction only.",
    "Show principal, minimum outputs, LP/reward clocks, Gas and wallet risk preview; explicit confirmation before execution.",
    "On ambiguous broadcast, reconcile hash/order/nonce before retry; never mint twice because the website timed out."
  ]
}
