{
  "name": "Recla",
  "chain": {
    "name": "Robinhood Chain",
    "id": 4663,
    "rpc": "https://rpc.mainnet.chain.robinhood.com",
    "explorer": "https://robinhoodchain.blockscout.com"
  },
  "contracts": {
    "ReclaSourceRegistry": {
      "address": "0x9a5be91f9a1415d9c2e3cacdd26c7bd7adb1b2e7",
      "deployedBlock": 101518913,
      "status": "deployed",
      "abi": [
        {
          "name": "KIND_MERKLE",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "KIND_VESTING",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "KIND_REFUND",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "KIND_ESCROW",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "KIND_OTHER",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "MAX_REASON",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "MAX_URL_LENGTH",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "MAX_LABEL_LENGTH",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "MAX_PAGE",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "STANCE_NONE",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "STANCE_ATTEST",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "STANCE_FLAG",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint8"
            }
          ]
        },
        {
          "name": "register",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "address",
              "name": "source"
            },
            {
              "type": "uint8",
              "name": "kind"
            },
            {
              "type": "string",
              "name": "rulesUrl"
            },
            {
              "type": "bytes32",
              "name": "rulesHash"
            },
            {
              "type": "string",
              "name": "label"
            }
          ],
          "outputs": [
            {
              "type": "uint256",
              "name": "id"
            }
          ]
        },
        {
          "name": "attest",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            }
          ],
          "outputs": []
        },
        {
          "name": "flag",
          "type": "function",
          "stateMutability": "nonpayable",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            },
            {
              "type": "uint8",
              "name": "reason"
            }
          ],
          "outputs": []
        },
        {
          "name": "entryCount",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "attestTotal",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "flagTotal",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "getEntry",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            }
          ],
          "outputs": [
            {
              "type": "tuple",
              "name": "v",
              "components": [
                {
                  "type": "uint256",
                  "name": "id"
                },
                {
                  "type": "address",
                  "name": "source"
                },
                {
                  "type": "uint8",
                  "name": "kind"
                },
                {
                  "type": "address",
                  "name": "registrant"
                },
                {
                  "type": "uint64",
                  "name": "registeredBlock"
                },
                {
                  "type": "uint64",
                  "name": "registeredAt"
                },
                {
                  "type": "uint32",
                  "name": "attestCount"
                },
                {
                  "type": "uint32",
                  "name": "flagCount"
                },
                {
                  "type": "bytes32",
                  "name": "rulesHash"
                },
                {
                  "type": "string",
                  "name": "rulesUrl"
                },
                {
                  "type": "string",
                  "name": "label"
                }
              ]
            }
          ]
        },
        {
          "name": "entries",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "uint256",
              "name": "fromId"
            },
            {
              "type": "uint256",
              "name": "limit"
            }
          ],
          "outputs": [
            {
              "type": "tuple[]",
              "name": "out",
              "components": [
                {
                  "type": "uint256",
                  "name": "id"
                },
                {
                  "type": "address",
                  "name": "source"
                },
                {
                  "type": "uint8",
                  "name": "kind"
                },
                {
                  "type": "address",
                  "name": "registrant"
                },
                {
                  "type": "uint64",
                  "name": "registeredBlock"
                },
                {
                  "type": "uint64",
                  "name": "registeredAt"
                },
                {
                  "type": "uint32",
                  "name": "attestCount"
                },
                {
                  "type": "uint32",
                  "name": "flagCount"
                },
                {
                  "type": "bytes32",
                  "name": "rulesHash"
                },
                {
                  "type": "string",
                  "name": "rulesUrl"
                },
                {
                  "type": "string",
                  "name": "label"
                }
              ]
            }
          ]
        },
        {
          "name": "entryCountForSource",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "source"
            }
          ],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "entryIdsForSource",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "source"
            },
            {
              "type": "uint256",
              "name": "offset"
            },
            {
              "type": "uint256",
              "name": "limit"
            }
          ],
          "outputs": [
            {
              "type": "uint256[]"
            }
          ]
        },
        {
          "name": "entryCountOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "registrant"
            }
          ],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "entryIdsOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "registrant"
            },
            {
              "type": "uint256",
              "name": "offset"
            },
            {
              "type": "uint256",
              "name": "limit"
            }
          ],
          "outputs": [
            {
              "type": "uint256[]"
            }
          ]
        },
        {
          "name": "entryIdOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "address",
              "name": "registrant"
            },
            {
              "type": "address",
              "name": "source"
            }
          ],
          "outputs": [
            {
              "type": "uint256"
            }
          ]
        },
        {
          "name": "stanceOf",
          "type": "function",
          "stateMutability": "view",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            },
            {
              "type": "address",
              "name": "wallet"
            }
          ],
          "outputs": [
            {
              "type": "uint8",
              "name": "stance"
            },
            {
              "type": "uint8",
              "name": "reason"
            }
          ]
        },
        {
          "name": "chainBlock",
          "type": "function",
          "stateMutability": "view",
          "inputs": [],
          "outputs": [
            {
              "type": "uint64"
            }
          ]
        },
        {
          "name": "SourceRegistered",
          "type": "event",
          "inputs": [
            {
              "type": "uint256",
              "name": "id",
              "indexed": true
            },
            {
              "type": "address",
              "name": "source",
              "indexed": true
            },
            {
              "type": "address",
              "name": "registrant",
              "indexed": true
            },
            {
              "type": "uint8",
              "name": "kind"
            },
            {
              "type": "bytes32",
              "name": "rulesHash"
            },
            {
              "type": "string",
              "name": "rulesUrl"
            },
            {
              "type": "string",
              "name": "label"
            },
            {
              "type": "uint64",
              "name": "chainBlock"
            }
          ]
        },
        {
          "name": "Attested",
          "type": "event",
          "inputs": [
            {
              "type": "uint256",
              "name": "id",
              "indexed": true
            },
            {
              "type": "address",
              "name": "wallet",
              "indexed": true
            },
            {
              "type": "uint32",
              "name": "attestCount"
            },
            {
              "type": "uint64",
              "name": "chainBlock"
            }
          ]
        },
        {
          "name": "Flagged",
          "type": "event",
          "inputs": [
            {
              "type": "uint256",
              "name": "id",
              "indexed": true
            },
            {
              "type": "address",
              "name": "wallet",
              "indexed": true
            },
            {
              "type": "uint8",
              "name": "reason"
            },
            {
              "type": "uint32",
              "name": "flagCount"
            },
            {
              "type": "uint64",
              "name": "chainBlock"
            }
          ]
        },
        {
          "name": "NotAContract",
          "type": "error",
          "inputs": [
            {
              "type": "address",
              "name": "source"
            }
          ]
        },
        {
          "name": "BadKind",
          "type": "error",
          "inputs": [
            {
              "type": "uint8",
              "name": "kind"
            }
          ]
        },
        {
          "name": "BadUrl",
          "type": "error",
          "inputs": []
        },
        {
          "name": "BadLabel",
          "type": "error",
          "inputs": []
        },
        {
          "name": "BadRulesHash",
          "type": "error",
          "inputs": []
        },
        {
          "name": "AlreadyRegistered",
          "type": "error",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            }
          ]
        },
        {
          "name": "UnknownEntry",
          "type": "error",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            }
          ]
        },
        {
          "name": "OwnEntry",
          "type": "error",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            }
          ]
        },
        {
          "name": "AlreadyResponded",
          "type": "error",
          "inputs": [
            {
              "type": "uint256",
              "name": "id"
            },
            {
              "type": "uint8",
              "name": "stance"
            }
          ]
        },
        {
          "name": "BadReason",
          "type": "error",
          "inputs": [
            {
              "type": "uint8",
              "name": "reason"
            }
          ]
        }
      ]
    }
  },
  "builtInSources": [
    {
      "name": "Pons creator fee escrow",
      "address": "0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e",
      "contract": "PonsV2FeeEscrow",
      "views": [
        "balanceOf(address)",
        "balanceOfToken(address,address)"
      ],
      "claims": [
        "claim()",
        "claimToken(address)"
      ]
    },
    {
      "name": "HoodLock token locks",
      "address": "0xD0f7d8c6e9f6D80c297bEbe4F7fD1B9C8125C32F",
      "contract": "RobinhoodLocker",
      "views": [
        "locksByOwner(address)",
        "getLock(uint256)",
        "isUnlocked(uint256)",
        "timeRemaining(uint256)"
      ],
      "claims": [
        "withdraw(uint256)"
      ]
    }
  ],
  "notes": "Kinds: 1 Merkle, 2 vesting/lock, 3 refund, 4 fee escrow, 5 other. Flag reasons 1-5. No owner, no fees, never holds funds."
}