generated: '2026-08-16' method: generated source: openapi/*.json + conventions/gala-games-conventions.yml + errors/gala-games-problem-types.yml note: >- Gala publishes no AGENTS.md and no skill files of its own; these are generated by API Evangelist. Every step is grounded in an operationId or a path verified present in the harvested specifications — nothing is invented. The GalaConnect skill refers to endpoints by path because that specification declares no operationId on any of its 28 operations. skills: - file: gala-games-transfer-a-token.md name: Transfer a token on GalaChain description: Move a fungible or non-fungible token between wallets by signing a DTO and posting it to the gateway, with a dry run first and idempotent retries. api: openapi/gala-games-galachain-asset-token-contract-openapi.json operations: [asset_token-contract_FetchBalances, asset_token-contract_DryRun, asset_token-contract_TransferToken, asset_public-key-contract_GetObjectByKey] - file: gala-games-create-and-fill-a-swap.md name: Create and fill a token swap on GalaConnect description: Discover, accept, create and terminate peer-to-peer token swaps on GalaSwap, including the uses model that decides how granular an offer is. api: openapi/gala-games-galaconnect-openapi.json operations: [asset_token-contract_FetchTokenSwaps, asset_token-contract_FetchTokenSwapsOfferedByUser, asset_token-contract_RequestTokenSwap, asset_token-contract_BatchFillTokenSwap, asset_token-contract_TerminateTokenSwap] - file: gala-games-read-chain-state.md name: Read GalaChain state without credentials description: Query blocks, transactions, balances, allowances, bridge operations and channel inventory from the Block Explorer API — no key required. api: openapi/gala-games-block-explorer-openapi.json operations: [AppController_getHealth, CachedExplorerController_getRegisteredChannels, CachedExplorerController_getRecentBlocks, CachedExplorerController_getBlockByNumber, CachedExplorerController_getBlockHeightOnChannel, CachedExplorerController_getRecentTransactionsByChannel, CachedExplorerController_search, ExplorerController_getBalances, ExplorerController_getAllowances, ExplorerController_getBridgeOps, CachedExplorerController_getTokenMedia] - file: gala-games-quote-and-swap-on-gswap.md name: Quote and execute a DEX swap on GalaSwap description: Price a trade against GalaChain concentrated-liquidity pools, execute it through the DeFi backend or the dexv3 contract, and confirm settlement. api: openapi/gala-games-defi-backend-openapi.json operations: [TradeController_quote, TradeController_getPoolDetails, TradeController_getCompositePool, TradeController_getSlot0, TradeController_getPrice, TradeController_swap, TradeController_bundle, TradeController_transactionStatus, UserController_fetchAssets, UserController_fetchGalaBalance, asset_dexv3-contract_GetCompositePool, asset_dexv3-contract_GetSlot0, asset_dexv3-contract_DryRun, asset_dexv3-contract_BatchSubmit] shared_rules: idempotency: Every write carries a caller-supplied uniqueKey enforced at the ledger. One key per logical operation, reused across retries. UniqueTransactionConflictError means the operation already committed. authentication: secp256k1 signature over the alphabetically-sorted, deterministically-stringified request body. No bearer tokens, no OAuth, no developer API keys. response_handling: HTTP 200 does not mean success. Branch on the envelope — GalaChainResponse.Status on the gateway, BaseResponseDto.status on the DeFi backend, error/errorId on GalaConnect. concurrency: Never issue concurrent writes for the same wallet; serialization failures return HTTP 409. numbers: All quantities are BigNumber-as-string. Never JSON numbers.