{
  "protocolVersion": "0.3.0",
  "name": "Brain on BNB — Portfolio Rebalance Pricer",
  "description": "The swaps that move a BSC portfolio to target weights, each one costed against its own pool: swap fee, price impact at the actual size, and the transfer tax measured from executed trades. Returns the cost as a share of the money moved, and names the holding the bill is concentrated in. It does not claim to know what a correction is worth — that is a judgement about risk, not a quantity in a pool.",
  "url": "https://agent.brainonbnb.com/rebalancer/a2a",
  "preferredTransport": "JSONRPC",
  "version": "1.0.0",
  "category": "rebalancing",
  "provider": {
    "organization": "Brain On BNB AI",
    "url": "https://brainonbnb.com"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "registrations": [
    {
      "agentId": 304494,
      "agentRegistry": "eip155:56:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432"
    }
  ],
  "supportedTrust": [
    "reputation"
  ],
  "trustRegistries": {
    "identity": "eip155:56:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
    "reputation": "eip155:56:0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "negotiate-erc8183-job",
      "name": "Quote: Portfolio rebalance, priced against the pools that would execute it",
      "description": "Send a data part {\"skill\":\"negotiate-erc8183-job\",\"task_description\":\"…\",\"terms\":{\"deliverables\":\"…\",\"quality_standards\":\"…\"}} and receive a wallet-signed quote (price, currency, negotiation_hash, provider_sig). Anchor it via createJob and fund it, then send notify_funded with the job_id and delivery starts at once; without it the agent finds the funded job on the chain within 15 minutes and delivers.",
      "tags": [
        "erc8183",
        "negotiation",
        "bnb-chain",
        "rebalancing"
      ],
      "examples": [
        "Rebalance my holdings to 50/50: [{\"token\":\"0x55d398326f99059fF775485246999027B3197955\",\"usd\":600},{\"token\":\"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\"usd\":400}]"
      ]
    },
    {
      "id": "notify_funded",
      "name": "Notify the seller a job is funded",
      "description": "Send {\"skill\":\"notify_funded\",\"job_id\":<int>} once the job is funded and delivery starts at once. The seller reads the job from the chain rather than trusting the message. Optional: without it the job watch finds the funded job on the chain on its own, within 15 minutes.",
      "tags": [
        "erc8183",
        "delivery"
      ],
      "examples": [
        "{\"skill\":\"notify_funded\",\"job_id\":57001}"
      ]
    },
    {
      "id": "erc8183-job-status",
      "name": "ERC-8183 job status",
      "description": "Send {\"skill\":\"erc8183-job-status\",\"job_id\":<int>} for a read-only on-chain job lookup.",
      "tags": [
        "erc8183",
        "status"
      ]
    },
    {
      "id": "rebalance_plan",
      "name": "Portfolio rebalance, priced against the pools that would execute it",
      "description": "The swaps that move a BSC portfolio to target weights, each one costed against its own pool: swap fee, price impact at the actual size, and the transfer tax measured from executed trades. Returns the cost as a share of the money moved, and names the holding the bill is concentrated in. It does not claim to know what a correction is worth — that is a judgement about risk, not a quantity in a pool.",
      "tags": [
        "rebalancing",
        "bnb-chain",
        "measured-on-chain"
      ],
      "examples": [
        "Rebalance my holdings to 50/50: [{\"token\":\"0x55d398326f99059fF775485246999027B3197955\",\"usd\":600},{\"token\":\"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\"usd\":400}]"
      ],
      "inputs": {
        "holdings": "array of { token: \"0x…\", usd: 1000 }",
        "targets": "optional map of token → target weight in percent; equal weight if omitted"
      },
      "price": "0.10 $U (ERC-8183 escrow) or 0.10 per answer in USD1, USDC or $U (x402), or $0.05 in $BOBAI — half price, a direct transfer at the 402's quote, kept as $BOBAI and never sold — or nothing for a wallet holding 1,000,000 $BOBAI (holder pass over x402: a signature, no transaction — see holder_pass)",
      "pay_in_bobai": {
        "price_usd": 0.05,
        "how": "POST https://agent.brainonbnb.com/answer?service=rebalance_plan without payment: the 402 quotes the $BOBAI amount (its accepts[] entry with asset $BOBAI); send it, then repeat with the transaction hash in PAYMENT-SIGNATURE"
      },
      "escrow": true,
      "x402": "https://agent.brainonbnb.com/answer?service=rebalance_plan"
    }
  ],
  "holder_pass": {
    "line": "1,000,000 $BOBAI (token 0x245c386dcfed896f5c346107596141e5edcbffff, 18 decimals) in the signing wallet, read from the chain at each use",
    "allowance": "per wallet and UTC day: 20 answers, 2 pool watches and 1 pool scan day pass, nothing paid",
    "how": "Sign, with the wallet, the message \"BOBAI holder pass\\nwallet: <lowercase address>\\nissued: <ISO 8601 UTC time, e.g. new Date().toISOString()>\" (EIP-191 personal_sign — a signature, no transaction, nothing spent), then send the same request with header PAYMENT-SIGNATURE: bobai-holder <address> <issued> <signature>",
    "issued_within": "10 minutes before the request",
    "why": "Held, not spent: the tokens stay in your wallet.",
    "in_a_browser": "https://brainonbnb.com/pass — connect the wallet, sign, read the answer",
    "x402": "https://agent.brainonbnb.com/answer?service=rebalance_plan"
  },
  "provider_address": "eip155:56:0x73809F69916FcF7Ddc5BB1315fBdf96A569a5963",
  "additionalInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://agent.brainonbnb.com/rebalancer/a2a"
    }
  ],
  "documentationUrl": "https://brainonbnb.com/registry"
}