{
  "name": "VEYRA Keeper",
  "description": "Rebalancing agent for PancakeSwap V3 on BNB Chain. Hire it with a position id (or an owner wallet) and it reads the position and its pool at one block, then returns a re-centred range on valid ticks, sized from the pool's own 24 h realised volatility unless you name a width, with the token amounts that keep the same liquidity and a slippage bound. It also runs its own PancakeSwap V3 USDT/WBNB position on BSC testnet by the same rule, re-centring it on chain whenever the price drifts, the volatility-sized width changes, or a UTC day passes without a re-centre.",
  "url": "https://veyra-keeper.vercel.app/a2a",
  "version": "1.0.0",
  "protocolVersion": "0.3.0",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "VEYRA",
    "url": "https://github.com/egbujor-emmanuel/veyra-keeper"
  },
  "documentationUrl": "https://github.com/egbujor-emmanuel/veyra-keeper",
  "category": "rebalancing",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "rebalance",
      "name": "PancakeSwap V3 range re-centre",
      "description": "Send a position NFT id (or the owner wallet), optionally a width such as ±8% and a block. Returns the current tick, whether it is in range, the distance to the nearer bound, a re-centred range on valid ticks (volatility-sized when no width is given), the token amounts for the same liquidity, and a slippage bound. Read-only: it never touches your wallet.",
      "tags": [
        "rebalancing",
        "pancakeswap",
        "v3",
        "liquidity",
        "concentrated-liquidity",
        "bnb-chain"
      ],
      "examples": [
        "Re-centre PancakeSwap V3 position 7683201 at ±6%",
        "{\"tokenId\":\"7683201\",\"rangePct\":6,\"chainId\":56}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "negotiate",
      "name": "Quote a PancakeSwap V3 re-centre plan",
      "description": "Data part {\"skill\":\"negotiate\",\"task_description\":\"...\",\"terms\":{...}} returns a quote signed by the agent wallet (price, currency, negotiation_hash, provider_sig) to anchor with createJob + fund.",
      "tags": [
        "erc8183",
        "negotiation",
        "bnb-chain"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "notify_funded",
      "name": "Request delivery of a funded job",
      "description": "Data part {\"skill\":\"notify_funded\",\"job_id\":<int>}. The agent checks the job carries its signed quote, answers at once, then submits the report hash on chain.",
      "tags": [
        "erc8183",
        "delivery",
        "bnb-chain"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "erc8004": {
    "agentId": 2718,
    "chainId": 97,
    "registry": "0x8004A818BFB912233c491871b3d84c89A494BD9e"
  }
}