{"id":28639370,"url":"https://github.com/interlay/gelato-raas-op-starter","last_synced_at":"2026-01-30T22:40:30.103Z","repository":{"id":210942959,"uuid":"713360087","full_name":"interlay/gelato-raas-op-starter","owner":"interlay","description":"This starter helps to quick start developing on OpTest Please visit the public website and the Block explorer","archived":false,"fork":false,"pushed_at":"2023-11-01T16:24:27.000Z","size":354,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T19:41:29.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"gelatodigital/gelato-raas-op-starter","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/interlay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-02T11:12:17.000Z","updated_at":"2023-11-02T11:12:17.000Z","dependencies_parsed_at":"2025-06-12T19:40:27.134Z","dependency_job_id":null,"html_url":"https://github.com/interlay/gelato-raas-op-starter","commit_stats":null,"previous_names":["interlay/gelato-raas-op-starter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/interlay/gelato-raas-op-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interlay%2Fgelato-raas-op-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interlay%2Fgelato-raas-op-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interlay%2Fgelato-raas-op-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interlay%2Fgelato-raas-op-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/interlay","download_url":"https://codeload.github.com/interlay/gelato-raas-op-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interlay%2Fgelato-raas-op-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28921557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T22:32:35.345Z","status":"ssl_error","status_checked_at":"2026-01-30T22:32:31.927Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-12T19:40:18.352Z","updated_at":"2026-01-30T22:40:30.098Z","avatar_url":"https://github.com/interlay.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Gelato Raas Starter-Kit\n\nThis starter helps to quick start developing on OpTest\nPlease visit the public [website](https://raas.gelato.network/rollups/details/public/optestnet) and the [Block explorer](https://blockscout.op-testnet.gelato.digital)\n\n## Funding\nYou would need Sepolia test Eth. Please go to one of these faucets and grab some eth:\n\n- [Alchemy Faucet](https://sepoliafaucet.com/)\n- [Infura Faucet](https://www.infura.io/faucet/sepolia)\n- [pow Faucet](https://sepolia-faucet.pk910.de/)\n\nOnce you have Sepolia Eth you will have to bridge to OpTest eth. Please login in on Sepolia chain and brigde the required amount, it will take 8-10 minuts to confirm.\n\n\n\n## Getting Started\n\n1. Install project dependencies:\n```\nyarn install\n```\nin our package.json we have already included gelato-raasprotocol-kit\nthe \n2. Create a `.env` file with your private config:\n```\ncp .env.example .env\n```\nYou will need to input your Private Key `PK` and `GELATO_RELAY_API_KEY` for sponsored transactions, you an get it at [https://relay.gelato.network](https://relay.gelato.network)\n\n\n\n## Account Abstraction (AA)\n\nAs part of the Gelato Raas AA offerings, we have deployed a custom safe-sdk creating following packages\n\n| Package| SDK |\n| --- | ----------- |\n| Safe Protocol Kit | [gelato-raas-protocol-kit](https://www.npmjs.com/package/gelato-raas-protocol-kit)|\n| Safe AA Kit | [gelato-raas-account-abstraction-kit](https://www.npmjs.com/package/gelato-raas-account-abstraction-kit)|\n| Safe Relay Kit | [gelato-raas-relay-kit](https://www.npmjs.com/package/gelato-raas-relay-kit)|\n\nIn the [Raas AA UI starter Kit](https://github.com/gelatodigital/gelato-raas-op-ui-starter) we showcase how to implement AA with web3Auth for social login, Safe as smart contract wallet and Gelato Relay for Gasless transactions.\nA live demo on zKatana can be seen here:\n [https://gelato-raas-op-ui.web.app/](https://gelato-raas-op-ui.web.app/)\n \nHere we are going to show the two different ways to send Gasless Transactions through a Safe, either sponsoring the gas with [1Balance](https://docs.gelato.network/developer-services/1balance) or paying with the Safe balance (SyncFee) \n\nIn both examples we are going to `increment()`the counter on this simple contract deployed on OpTest [https://blockscout.op-testnet.gelato.digital/address/0xA47789e8C1caC47Bd891e33C97cB3C6722037282](https://blockscout.op-testnet.gelato.digital/address/0xA47789e8C1caC47Bd891e33C97cB3C6722037282)\n\n### Using 1Balance\n\n```typescript\nconst safeAccountAbstraction = new AccountAbstraction(signer);\n  const sdkConfig: AccountAbstractionConfig = {\n    relayPack,\n  };\n  await safeAccountAbstraction.init(sdkConfig);\n\n  // Create a transaction object\n  const txConfig = {\n    TO: targetAddress,\n    DATA:counterContract.interface.encodeFunctionData(\"increment\", []),\n    // Options:\n    GAS_LIMIT: gasLimit,\n    VALUE:\"0\"\n  };\n\n  const predictedSafeAddress = await safeAccountAbstraction.getSafeAddress();\n  console.log({ predictedSafeAddress });\n\n  const isSafeDeployed = await safeAccountAbstraction.isSafeDeployed();\n  console.log({ isSafeDeployed });\n\n  const safeTransactions: MetaTransactionData[] = [\n    {\n      to: txConfig.TO,\n      data: txConfig.DATA,\n      value: txConfig.VALUE,\n      operation: OperationType.Call,\n    },\n  ];\n  const options: MetaTransactionOptions = {\n    gasLimit: txConfig.GAS_LIMIT,\n    isSponsored: true,\n  };\n\n  const response = await safeAccountAbstraction.relayTransaction(\n    safeTransactions,\n    options\n  );\n  console.log(`https://relay.gelato.digital/tasks/status/${response} `);\n```\n**Output**\n```shell\n/Users/javiermac/Documents/GELATO/20-RAAS/gelato-raas-starter/src/aa-safe-gasless\n{ predictedSafeAddress: '0xf35EAc5DA7d808264a9c7B1C19E2946201320522' }\n{ isSafeDeployed: true }\n```\n\n### Using  SyncFee  \nRemember to fund your Safe as the gas fees will be deducted from your safe balance\n\n```typescript\n\n  const gasLimit = \"10000000\";\n  \n  const safeAccountAbstraction = new AccountAbstraction(signer);\n  const sdkConfig: AccountAbstractionConfig = {\n    relayPack,\n  };\n  await safeAccountAbstraction.init(sdkConfig);\n\n  const txConfig = {\n    TO: targetAddress,\n    DATA: counterContract.interface.encodeFunctionData(\"increment\", []),,\n    VALUE: \"0\",\n    // Options:\n    GAS_LIMIT: gasLimit,\n    GAS_TOKEN: ethers.constants.AddressZero,\n  };\n\n  const predictedSafeAddress = await safeAccountAbstraction.getSafeAddress();\n  console.log({ predictedSafeAddress });\n\n  const isSafeDeployed = await safeAccountAbstraction.isSafeDeployed();\n  console.log({ isSafeDeployed });\n\n  const safeTransactions: MetaTransactionData[] = [\n    {\n      to: txConfig.TO,\n      data: txConfig.DATA,\n      value: txConfig.VALUE,\n      operation: OperationType.Call,\n    },\n  ];\n  const options: MetaTransactionOptions = {\n    gasLimit: txConfig.GAS_LIMIT,\n    gasToken: txConfig.GAS_TOKEN,\n    isSponsored: false,\n  };\n\n  const response = await safeAccountAbstraction.relayTransaction(\n    safeTransactions,\n    options\n  );\n  console.log(`https://relay.gelato.digital/tasks/status/${response} `);\n```\n\n  **Output**\n  ```shell\n$ ts-node src/aa-safe-gasless/aaSyncFee.ts\n/Users/javiermac/Documents/GELATO/20-RAAS/gelato-raas-starter/src/aa-safe-gasless\n{ predictedSafeAddress: '0xf35EAc5DA7d808264a9c7B1C19E2946201320522' }\n{ isSafeDeployed: true }\nhttps://relay.gelato.digital/tasks/status/0xf5ec5234b97a42a3fa32a1593dc34e44130b6801d9fff9ad1246f65cda0f8ecc \n✨  Done in 24.41s.\n```\n\n## Working with Safes\n\nWe have deployed and verified the the Safe contracts and also we forked the safe sdk to be able to test in OpTest. \nThe forked safe-sdk is published under the package  **gelato-raas-protocol-kit@1.3.1**. The relay-kit and account.abstraction-kit will be published very soon.\n\n\n\n### Create a Safe\nCode can be seen [here](./src/safe/create-safe.ts#L19) \n\n```shell\nyarn create-safe\n```\n\n```shell\nyarn run v1.22.19\n$ ts-node src/create-safe.ts\nNetwork:  { chainId: 42069, name: 'unknown' }\nSafe created with address:  0xf35EAc5DA7d808264a9c7B1C19E2946201320522\n✨  Done in 13.27s.\n```\n\n### Increment counter\nWe have deployed a [SimpleCounter](https://blockscout.op-testnet.gelato.digital/address/0xA47789e8C1caC47Bd891e33C97cB3C6722037282) contract  where we are going to increment the counter through a safe transaciton.\nHere the [code](./src/safe/increment-counter.ts#L35) \n\n```shell\nyarn increment-counter\n```\n\n```shell\n$ ts-node src/increment-counter.ts\nTxHash:  0xce9271aba30a6e68a36f3ce75690ea63e2258d7d9a1d2bb69d58b10ae4fd70d7\n✨  Done in 15.47s.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterlay%2Fgelato-raas-op-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finterlay%2Fgelato-raas-op-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterlay%2Fgelato-raas-op-starter/lists"}