{"signature": "0x8d3ddc7303e1e53f6d2e952eebff978473abb1832053db128216db14907714302a40a473941d2dd6ae68b0d44f5e5455654ff44f14232095348d836256b700651b", "application": {"round": "0xb91b59c91b09d127d269e53019f2420e8c2c7ce7", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "3IXMuux1UYgHbrzqkPJzKiBkLVGQGZY11EPIFI/rEGfHY0+RxYo6/vl4NN/Teaq/", "encryptedSymmetricKey": "7356dd29cb71dd02caf76df17871cbb25910636a1de732c9754db7b8e8f5300031c772cbf1b0d342eebfb5d4e6a44903efd30a9cf774ea5d1030ff18238c4c12fe2db6f97824750cb743d529ac8d778351369ae569a189d22a54512274449a8fd0e2e593438c490361c643bbb2bf2dad852645abacafa038bcc95654c934e5830000000000000020c855d810072a1edc4314b8a2f7d867bd2438835bf3156f56a18a398175fc27d1830a2782bf9766f468349dc37c4f66b6"}}, {"type": "short-answer", "answer": "@kristoferkristofer", "hidden": true, "question": "Telegram Handle", "questionId": 1}, {"type": "short-answer", "answer": "https://github.com/c-atts", "hidden": true, "question": "Project GitHub Repo", "questionId": 2}, {"type": "short-answer", "answer": "https://t.me/c/2048755618/1", "hidden": true, "question": "Link to your Public Group Chat", "questionId": 3}, {"type": "short-answer", "answer": "https://builder.gitcoin.co/#/chains/42161/registry/0x/projects/0x1aeef6017a648aa54fa27a65664ecb26c34e113c813b05e8d3f16b84cc45c323", "hidden": true, "question": "Have you participated in a previous Gitcoin Grants Round? If so, please name the rounds or link the builder profile associated with previous rounds.", "questionId": 4}, {"type": "paragraph", "answer": "C\u2013ATTS allows you to turn *any* onchain data into Ethereum Attestation Service attestations. Combine, bridge, transform attestations or create new types of attestations. EAS is the place where data meets to mingle, the place where liberated onchain data can be used to support governance processes, DeFi and much more. ", "hidden": true, "question": "How does your project contribute to the growth of the OSS ecosystem? Please provide specific examples of how your application enhances or expands the current ecosystem.", "questionId": 5}, {"type": "paragraph", "answer": "C\u2013ATTS is a fully onchain service that spans a number of blockchains. The recipes that are executed to create attestations are run in smart contracts on the ICP blockchain. Attestattions can be created on any EVM compatible chain. The IC smart contract acts as an oracle , fetching data from offchain API endpoint to then process the data using custom user defined logic in a secure sandbox in the smart contract canister.", "hidden": true, "question": "What features or use cases does your dApp/App present? How is it differentiated?", "questionId": 6}, {"type": "paragraph", "answer": "C\u2013ATTS is continuously evolving, adding support for more offchain data sources as well as for more EVM chains. In addition to that, we would like to start looking at zk attestations \u2013 the ability to provably attest to something without having to reveal the data supporting the attestation.", "hidden": true, "question": "What are your plans for further development, and how will the grant funds be used to achieve these goals?", "questionId": 7}, {"type": "paragraph", "answer": "0xe498539Cad0E4325b88d6F6a1B89af7e4C8dF404, 11155111\n0x15a9a0f3bf24f9ff438f18f83ecc8b7cb2e15f9a, 10\n0x839ADFdFd2B038C3e4429abe54ac4DBB620a0BD1, 8453\n0x5601FE396f901442b1EAcAE5844431B7A4e2587D, 42161", "hidden": true, "question": "For any project deploying smart contracts on blockchain networks, please list all your deployer addresses and their corresponding blockchain networks. Use this format for each entry: [deployer_address], [chain_id]\u2014for example, 0x123abc..., 42161 (This represents a deployer address on the Arbitrum network). Please include a separate line for each unique deployer address and blockchain combination.", "questionId": 8}], "project": {"id": "0x1aeef6017a648aa54fa27a65664ecb26c34e113c813b05e8d3f16b84cc45c323", "title": "C\u2013ATTS, Composite Attestations", "logoImg": "bafkreiestd54wa6bilkk5nm6ujwmktzlykdw53nerqupyj32g4khuunqbu", "metaPtr": {"pointer": "bafkreifaxmnmvsmfqbiygr7ciewzyb7ljykupaiwhsgaebpyrjjw3lb4zm", "protocol": "undefined"}, "website": "https://catts.run", "bannerImg": "bafkreihax5nfhcxy7gvqwflonmc7g33xita6d64scfallzcedfnyq2pube", "createdAt": 1712733382777, "userGithub": "kristoferlund", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..Ni0YNDhXMm6kYKkyj7hGoq63nljfw5989gtD2BU-J08mGCerhQ4_jnMGA2HzBZMEKfqBarDSqUdNXpfgEvFDDw", "type": "Ed25519Signature2018", "created": "2024-04-10T07:18:37.940Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-04-10T07:18:37.940Z", "expirationDate": "2024-07-09T07:18:37.940Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xa32aECda752cF4EF89956e83d60C04835d4FA867", "hash": "v0.0.0:/8ZzB3vgfWDOv3OdxOYQb5s+8/GnTwz0KeVCUlefkgw=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#c-atts#9698363"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9.._L2H4sfAy_YUf6qFa40rTFg5csVLfHhOiisUSIv-JGL3p1zamYuJgalP-7qylJ3a1HKzl7qPwEf5l_2Jgv3FCA", "type": "Ed25519Signature2018", "created": "2024-04-10T07:18:51.767Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-04-10T07:18:51.767Z", "expirationDate": "2024-07-09T07:18:51.767Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xa32aECda752cF4EF89956e83d60C04835d4FA867", "hash": "v0.0.0:3Uv97O9W/OPCoFvVUzH1W27qWSqeKHD3G8Dd92PlVto=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#c_atts"}}}, "description": "Composite attestations are a new type of attestation combining data from multiple sources to form a unified and verifiable credential.\n\nThe [Ethereum Attestation Service](https://attest.org) (EAS) is an infrastructure public good for making attestations onchain or offchain about anything. Attestations can represent identity, reputation, knowledge, and much more. EAS is a tokenless and free service that is available on mainnet, several L2s, and various testnets. EAS is a great service! It is tokenless and free for anyone to use. This means it is being used. A lot!\n\nThere is a universe of attestation data out there. EAS provides an API that allows you to query that data which makes integration into websites and apps easy.\n\nLet\u2019s say I, as an app, want to offer membership to users that meet certain criteria. I my backend, I can use the EAS API to query all attestations that are relevant to my use case. Then, I write some custom logic to process the data and let the outcome of that logic determine if a user is eligible for membership. Easy!\n\nBut, what if I need to show a proof of the outcome of my logic? What if I need to create an attestation that says \u201cThis user is eligible for membership\u201d? I can of course easily create that attestation. But, without knowledge of the data I processed or about the processing logic I ran on the data, how can anyone verify that the attestation I created is correct?\n\nWouldn\u2019t it be great if there was a way to create attestations based on the result of custom queries and processing logic and have the result of that logic be independently verifiable? That\u2019s where **C\u2013ATTS**, the Composite Attestations Engine comes in.\n\nCATTS allows for the creation of **composite attestations** based on custom queries and processing logic. Running on the Internet Computer (ICP) as a smart contract canister, it leverages data from existing attestations via the EAS GraphQL API, ensuring that the creation and verification of attestations are both reliable and transparent. The processing logic is defined as a piece of arbitrary JavaScript code, which is executed securely within the canister environment. The engine also provides a receipt for each run, detailing the settings used, which aids in verifying the correctness of the composite attestations.\n\n## Planned features\n- Custom queries: Fetch data from the EAS GraphQL API using custom queries.\n- Custom processing logic: Define custom processing logic to create composite attestations based on the result of the queries.\n- Secure execution: The processing logic is executed securely within the canister environment.\n- Receipts: A receipt is created for each run, detailing the settings used, which aids in verifying the correctness of the composite attestations.\n- Chain agnostic: Run queries on one chain or on multiple chains.\n- Verifiable: The result of the processing logic is independently verifiable.\n- Open: The engine is open source and free to use. Anyone can create and run recipes.\n- Cost effective: Attestation runs can be simulated before they are run. This ensures that the cost of running the canister is minimized.\n\n## Future features\n- Advanced settings:\n  - Allow query chain settings to be overridden on a per run and per query basis.\n  - Allow users to \u201cclaim\u201d their composite attestations:\n- Transfers cost of creating attestations to the user.\n  - Allow the user to claim an attestation using multiple addresses.\n- Even more chain agnostic:\n  - Allow the creation of attestations on multiple chains.\n  - Allow querying other attestation services, not just EAS.\n- ZK attestations:\n  - Allow the creation of zero knowledge attestations.", "lastUpdated": 0, "projectGithub": "c-atts", "projectTwitter": "c_atts"}, "recipient": "0xdC81d807F0e1A638DDd5CBF37f1320D86D0dE30C"}}