addrbookFor publishers
← The evidence ledger

Evidence row 1052418

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 5e29bfe3-044e-4dca-a2c4-2b92028a50c7
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
45f0b1c9f8b89dcc6ed48125dc23a87261cd1ac433d4882fbcb8196137d568e3
Leaf
0x0f48337e4e7c6c655c1b14f212ee1cab2d84dda1137ec2a519e18556bb16c7b1

What was observed

{
  "count": 18,
  "tools": [
    {
      "description": "모든 안건을 지금 마감하고 결과를 확정한다. 공고한 마감보다 일찍 닫으면 결의가 다투어질 수 있다 — 주최자가 지시한 경우에만. manageToken 필요.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "confirm": {
            "const": true,
            "type": "boolean"
          },
          "manageToken": {
            "type": "string"
          },
          "meetingId": {
            "type": "string"
          }
        },
        "required": [
          "meetingId",
          "manageToken",
          "confirm"
        ],
        "type": "object"
      },
      "name": "close_meeting"
    },
    {
      "description": "집회 초안을 만든다. 초안은 \"확인 대기\" 상태라 아무것도 열리지 않는다 — 돌려받은 confirmUrl 을 주최자(관리인)에게 전달하면 주최자가 내용을 검토하고 체크한 뒤 휴대폰 본인인증·결제를 해야 투표가 열린다. 관리 토큰은 주최자가 받으며, 운영을 맡길지는 주최자가 정한다. 집합건물(bldg)은 agendas[].preset 에 bldg_general / bldg_bylaw / bldg_common_change 등 법정 유형을 넣고, closesAt(전자투표 마감)은 paperClosesAt(집회일) 전날까지여야 한다. roster 는 선택이며 넣을 때는 서버에 원문을 보내지 않는다: 각 사람의 hash = sha256(\"voter:\" + 이름 + \"|\" + 생년월일(YYYYMMDD) + \"|\" + 휴대폰(숫자만)) 의 16진수, 면적 의결권이면 weight(㎡). 없으면 주최자가 대시보드에서 엑셀로 올린다.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "agendas": {
            "items": {
              "properties": {
                "description": {
                  "maxLength": 2000,
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "yesno",
                    "choice"
                  ],
                  "type": "string"
                },
                "options": {
                  "description": "choice 일 때 선택지(후보)",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "preset": {
                  "description": "법정 안건 유형 키 (etc 는 생략 가능)",
                  "type": "string"
                },
                "title": {
                  "type": "string"
                }
              },
              "required": [
                "title"
              ],
              "type": "object"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "agent": {
            "description": "에이전트 이름 (기록용)",
            "type": "string"
          },
          "closesAt": {
            "description": "전자투표 마감 ISO 8601",
            "type": "string"
          },
          "declaredCount": {
            "description": "투표할 수 있는 사람 수(구분소유자 수 등)",
            "minimum": 1,
            "type": "integer"
          },
          "isAnonymous": {
            "default": true,
            "type": "boolean"
          },
          "orgType": {
            "enum": [
              "bldg",
              "apt",
              "redev",
              "union",
              "assoc",
              "coop",
              "housing",
              "school",
              "student",
              "etc"
            ],
            "type": "string"
          },
          "paperClosesAt": {
            "description": "현장·서면 접수 마감(집회일) ISO 8601. 집합건물은 closesAt 다음 날 이후",
            "type": "string"
          },
          "roster": {
            "items": {
              "properties": {
                "hash": {
                  "type": "string"
                },
                "weight": {
                  "type": "number"
                }
              },
              "required": [
                "hash"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "maxLength": 200,
            "type": "string"
          },
          "useWeighted": {
            "description": "etc 만 고른다. 법정 안건은 법이 정한다",
            "type": "boolean"
          }
        },
        "required": [
          "orgType",
          "title",
          "declaredCount",
          "agendas",
          "closesAt"
        ],
        "type": "object"
      },
      "name": "create_draft_meeting"
    },
    {
      "description": "이 안건을 전자투표로 할 수 있는가 — 법이 직접 허용 / 규약·정관 근거 필요 / 불가(전자서명 요구 등) — 와 그 근거 조문.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "name": "electronic_voting_basis"
    },
    {
      "description": "서면결의서(현장 표)를 입력한다. 한 사람 = 명부 해시 + 안건별 선택지 id. 증빙 사진(data:image/… URL)이 반드시 필요하다. 전자투표한 사람이 섞이면 묶음 전체가 거절된다. manageToken 필요.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "evidenceImageDataUrl": {
            "type": "string"
          },
          "manageToken": {
            "type": "string"
          },
          "meetingId": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "voters": {
            "items": {
              "properties": {
                "choices": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "hash": {
                  "type": "string"
                }
              },
              "required": [
                "hash",
                "choices"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "meetingId",
          "manageToken",
          "voters",
          "evidenceImageDataUrl"
        ],
        "type": "object"
      },
      "name": "enter_paper_ballots"
    },
    {
      "description": "집회의 결제 상태·안건별 집계·명부 현황. manageToken 필요.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "manageToken": {
            "type": "string"
          },
          "meetingId": {
            "type": "string"
          }
        },
        "required": [
          "meetingId",
          "manageToken"
        ],
        "type": "object"
      },
      "name": "get_dashboard"
    },
    {
      "description": "초안이 확인됐는지, 결제됐는지, 투표가 열렸는지 본다. 확인 전에는 confirmToken, 확인 뒤에는 주최자가 넘겨준 manageToken 을 token 에 넣는다.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "draftId": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "draftId",
          "token"
        ],
        "type": "object"
      },
      "name": "get_draft_status"
    },
    {
      "description": "투표 인원으로 세 갈래(AI 투표함·직접 투표함·맞춤 투표함) 요금을 계산한다. 부가세 포함 금액.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "people": {
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "people"
        ],
        "type": "object"
      },
      "name": "get_quote"
    },
    {
      "description": "집회 전체 결과보고서(안건별 표수·의결권·판정·근거·검증값). 마감 전에는 봉인(sealed). manageToken 필요.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "manageToken": {
            "type": "string"
          },
          "meetingId": {
            "type": "string"
          }
        },
        "required": [
          "meetingId",
          "manageToken"
        ],
        "type": "object"
      },
      "name": "get_report"
    },
    {
      "description": "안건 유형 하나의 의결정족수(인원·의결권), 근거 조문, 전자투표 가능 여부와 근거, 소집통지 요건, 본인확인 등급, 명부 필요 여부, 주의사항.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "description": "예: bldg_general, bldg_bylaw, redev_general, apt_rep_multi",
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "name": "get_resolution_requirement"
    },
    {
      "description": "법령 하나의 조문 원문(조·항·호)과 개정 꼬리표, 투표함이 그 조문을 어떻게 지키는지(적용 내용), 관련 안건 유형. law 에는 법령 이름(예: 집합건물의 소유 및 관리에 관한 법률) 또는 slug(condominium), article 에는 \"제38조\" 처럼. article 을 비우면 추적 조문 전부.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "article": {
            "type": "string"
          },
          "law": {
            "type": "string"
          }
        },
        "required": [
          "law"
        ],
        "type": "object"
      },
      "name": "get_statute"
    },
    {
      "description": "표 수와 의결권을 넣어 가결·부결을 판정한다. 투표함이 개표에 쓰는 함수 그대로. 집합건물은 구분소유자 수와 의결권(면적)을 모두 넣어야 두 요건이 판정된다.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "approveCount": {
            "description": "찬성 인원",
            "type": "number"
          },
          "approveWeight": {
            "type": "number"
          },
          "attendeeCount": {
            "description": "출석(투표) 인원",
            "type": "number"
          },
          "castWeight": {
            "type": "number"
          },
          "directAttendanceCount": {
            "description": "직접 출석 인원(정비사업)",
            "type": "number"
          },
          "eligibleCount": {
            "description": "재적 인원",
            "type": "number"
          },
          "eligibleWeight": {
            "description": "재적 의결권 합",
            "type": "number"
          },
          "preset": {
            "type": "string"
          }
        },
        "required": [
          "preset"
        ],
        "type": "object"
      },
      "name": "judge_resolution"
    },
    {
      "description": "추적 법령의 시행일·공포일·조문별 개정 꼬리표·투표함 반영 내용과 시행 예정 개정.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "law_changelog"
    },
    {
      "description": "투표함이 추적하는 한국 법령 목록 — 시행일·공포일·대조일·추적 조문·시행 예정 개정. 출처 국가법령정보센터.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_laws"
    },
    {
      "description": "단체 유형(집합건물 관리단·아파트·정비사업조합·노동조합·사단법인·협동조합·주택조합·학교법인·학생자치·그 밖)별 안건 유형과 정족수 요약.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "group": {
            "description": "단체 유형 키 (bldg, apt, redev, union, assoc, coop, housing, school, student, etc). 비우면 전부",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_resolution_types"
    },
    {
      "description": "소집통지를 한 날짜·방법·대상 수를 기록한다(모든 안건). manageToken 필요.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "manageToken": {
            "type": "string"
          },
          "meetingId": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "notifiedOn": {
            "description": "YYYY-MM-DD",
            "type": "string"
          },
          "recipients": {
            "type": "integer"
          }
        },
        "required": [
          "meetingId",
          "manageToken",
          "notifiedOn",
          "method"
        ],
        "type": "object"
      },
      "name": "record_notice"
    },
    {
      "description": "운영자가 대신 개설·집계하는 맞춤 투표함(1인당 300원)을 신청한다. 담당자가 연락한다. 담당자 이름·연락처가 필요하다.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "contactEmail": {
            "type": "string"
          },
          "contactName": {
            "type": "string"
          },
          "contactPhone": {
            "type": "string"
          },
          "headCount": {
            "type": "integer"
          },
          "message": {
            "maxLength": 2000,
            "type": "string"
          },
          "orgName": {
            "type": "string"
          },
          "orgType": {
            "type": "string"
          }
        },
        "required": [
          "orgName",
          "contactName",
          "contactPhone"
        ],
        "type": "object"
      },
      "name": "request_consult"
    },
    {
      "description": "질문·안건 이름·법령 이름으로 안건 유형과 법령을 찾는다. 예: \"관리규약 개정\", \"재건축 총회 정족수\", \"집합건물법\".",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "query": {
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search"
    },
    {
      "description": "선거인 명부(해시)를 모든 안건에 올린다. 원문은 보내지 않는다 — create_draft_meeting 의 hash 규칙과 같다. manageToken 필요.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "entries": {
            "items": {
              "properties": {
                "hash": {
                  "type": "string"
                },
                "weight": {
                  "type": "number"
                }
              },
              "required": [
                "hash"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "manageToken": {
            "type": "string"
          },
          "meetingId": {
            "type": "string"
          }
        },
        "required": [
          "meetingId",
          "manageToken",
          "entries"
        ],
        "type": "object"
      },
      "name": "upload_roster"
    }
  ]
}

What the leaf hashes

{"body":"45f0b1c9f8b89dcc6ed48125dc23a87261cd1ac433d4882fbcb8196137d568e3","id":1052418,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793309114212673,"prev":null,"subject":"5e29bfe3-044e-4dca-a2c4-2b92028a50c7","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (242798 rows).

  1. 0x0f48002c51770df020f0f6fd8fed0c9b9267c9b5e8993b646e514f956828f220
  2. 0x979274b34139576edcf5aaf36f27f38755bc867eb2c7b4298f938ea801f571aa
  3. 0x16c5dbc824d5bb1c0c5cfd52617319d4b82e6e46741f4c084a5ba99e21050f62
  4. 0xd1cbdac447fb4211821440cab8b30ee79bbcde6046456b751e37260a9bb34648
  5. 0x0131731239f5f0ac4c3eab3816b149155e05604d1c316d95d657628c6bc4c9d4
  6. 0x2a9cf890b15136158fede9bec12c4306a095af9d7a1f73990ef02644a00f2e82
  7. 0x6974015ad6579c13552f07f27fd156d85a1f4aa075995572dc4b8928012631da
  8. 0x336a8c847bc0434fc3d2ebf272f0e119dc898e9336c1d04205fe304096cb27d8
  9. 0xb5915feac76e6526e3bf1e9c2e7ab199f530132382816053aeb63a14b4de19db
  10. 0xf662a975fff66001a2bc54dbc978845e62dc0b428b2c27fb76c4f0467dbea526
  11. 0x3ba95e19020356daffeafc4ac0c057901bc402ca224f6a1f4ce846c8c6595a63
  12. 0x167cb457e5618956c84193ebb90fd080faba4ab44e43972c970cde45c0c57c49
  13. 0x7815c9a292a2f1e0dbdff174b5918aa320852c7e816e376aca0e3ef90e1a01e4
  14. 0x7b3add153244183458b4331b4f226a6729ff68c345cedfa75b49586e803bf98a
  15. 0x0507b989510de89f78184f7a10d971f7670a579c54df7d291a2d72f034ae74d3
  16. 0xa0a7723889a4c15b3e0bec353fa8dbcaec6c71cf35bb6c346415ad3e664df6a6
  17. 0xd76435ead496863d8b0bfab3434f54cd11da3c49d104fc4064b9cb3381567bbd
  18. 0xd56e61af23709ed9f460471e3c08400c0142ee83e1fd9057e46350d12edf9c07
Day root
0xc050555c6b023f2aefb6536efb9f0760b92c30a0d06c572b7daf63db259ea17c
Chained
0x4cde8bae2042512e1bec11650628f0293556311cc4ea74d99ffddf02b671a7d6
Published
On Arc Testnet, block 69753317: 0x9e85c340732f416e431b111fae72f7624870125f7f379af2732eb6c2ba8cf6a1

How to check it · This row as JSON