{"id":20060606,"url":"https://github.com/oasisprotocol/kmaas","last_synced_at":"2025-06-23T15:36:40.491Z","repository":{"id":259492717,"uuid":"852883116","full_name":"oasisprotocol/kmaas","owner":"oasisprotocol","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-03T11:06:10.000Z","size":160,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-02T10:14:18.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oasisprotocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-09-05T15:36:45.000Z","updated_at":"2024-10-24T15:54:56.000Z","dependencies_parsed_at":"2024-10-26T00:38:14.864Z","dependency_job_id":"a12c8eca-7953-4835-93b8-52ae02c469ac","html_url":"https://github.com/oasisprotocol/kmaas","commit_stats":null,"previous_names":["oasisprotocol/kmaas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oasisprotocol/kmaas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasisprotocol%2Fkmaas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasisprotocol%2Fkmaas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasisprotocol%2Fkmaas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasisprotocol%2Fkmaas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oasisprotocol","download_url":"https://codeload.github.com/oasisprotocol/kmaas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasisprotocol%2Fkmaas/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261505454,"owners_count":23169040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-11-13T13:15:55.497Z","updated_at":"2025-06-23T15:36:40.431Z","avatar_url":"https://github.com/oasisprotocol.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Oasis Key Manager as a Service\n\nThis repository holds the base contracts for Oasis Key Manager as a Service. This service functions\nas a wrapper around the native Oasis decentralized key manager to enable dApps and users to easily\nmaintain signing and symmetric keys on-chain confidentially. This means dApps can confidentially store \nuser information with a decentralized root of trust or interact with user accounts on-chain without needing users\nto manually set up a wallet themselves.\n\n### Contracts\n\n#### AccountBase.sol\nContains the abstract contracts `AccountFactoryBase` and `AccountBase` to be implemented by\nderived contracts. \n\n#### Account.sol\nAn implementation of `AccountBase` - it's primary functionality is to maintain a private/public keypair\non-chain confidentially. Using this keypair, it can sign digests and transactions to be submitted on the keypair's\nbehalf. If funded appropriately, it can also be used as an on-chain signer to enable gasless transactions on Oasis Sapphire.\nThe account has one `controller` with indefinite access to the account who can then grant access to other accounts\nfor a finite duration.\n\nThis file also contains an `AccountFactory` which is an ERC-1167 lightweight clone factory to cheaply deploy clones of\nthe `Account` contract.\n\n#### AccountWithSymKey.sol\n`AccountWithSymKey` is a derived contract of `Account` that maintains a set of symmetric keys that enable on-chain encryption / decryption. These \nkeys can also be retrieved for encryption / decryption in an off-chain setting. \n\n#### Validator.sol\nThis is a contract to make interfacing with KMaaS accounts easier. If set to the `controller` of a KMaaS account or granted temporary access,\nit can forward calls made to it after a user authenticates with previously set credentials (e.g. passwords). This allows users to authenticate\nto dApps using mechanisms that they are familiar with, and maintains a mapping of KMaaS accounts to credentials to enable an application to maintain\none validator for all KMaaS accounts they interact with.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foasisprotocol%2Fkmaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foasisprotocol%2Fkmaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foasisprotocol%2Fkmaas/lists"}