{
  "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v1.schema.json",
  "context": {
    "contract": {
      "deployments": [
        {
          "chainId": 11155111,
          "address": "0xF957cDA1f676B9EAE65Ab99982CAa3a31A193CB7"
        }
      ],
      "abi": [
        {
          "name": "heartbeat",
          "type": "function",
          "inputs": [],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "name": "claim",
          "type": "function",
          "inputs": [
            {"name": "_worldIdNullifier", "type": "bytes32"}
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "name": "cancel",
          "type": "function",
          "inputs": [],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "name": "updateBeneficiary",
          "type": "function",
          "inputs": [
            {"name": "_newBeneficiary", "type": "address"},
            {"name": "_newWorldIdNullifier", "type": "bytes32"},
            {"name": "_newENS", "type": "string"}
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "name": "extendHeartbeat",
          "type": "function",
          "inputs": [
            {"name": "_additionalSeconds", "type": "uint256"}
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        }
      ]
    }
  },
  "metadata": {
    "owner": "DeadSwitch",
    "info": {
      "legalName": "DeadSwitch — Decentralized Crypto Inheritance",
      "url": "https://deadswitch.online"
    }
  },
  "display": {
    "formats": {
      "heartbeat()": {
        "intent": "Send heartbeat — prove you are alive",
        "fields": [],
        "required": []
      },
      "claim(bytes32)": {
        "intent": "Claim inheritance from vault",
        "fields": [
          {
            "path": "_worldIdNullifier",
            "label": "World ID Proof",
            "format": "raw"
          }
        ],
        "required": ["_worldIdNullifier"]
      },
      "cancel()": {
        "intent": "Cancel vault and withdraw all funds",
        "fields": [],
        "required": []
      },
      "updateBeneficiary(address,bytes32,string)": {
        "intent": "Update vault beneficiary",
        "fields": [
          {
            "path": "_newBeneficiary",
            "label": "New Beneficiary",
            "format": "addressName",
            "params": {
              "types": ["eoa", "contract"]
            }
          },
          {
            "path": "_newWorldIdNullifier",
            "label": "World ID Proof",
            "format": "raw"
          },
          {
            "path": "_newENS",
            "label": "ENS Name",
            "format": "raw"
          }
        ],
        "required": ["_newBeneficiary", "_newWorldIdNullifier"]
      },
      "extendHeartbeat(uint256)": {
        "intent": "Extend heartbeat deadline",
        "fields": [
          {
            "path": "_additionalSeconds",
            "label": "Additional time",
            "format": "duration"
          }
        ],
        "required": ["_additionalSeconds"]
      }
    }
  }
}
