-
Notifications
You must be signed in to change notification settings - Fork 2
Docs: add manual verification process #185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
79b60d7
docs: add manual verification process
odyslam 01dac9d
docs: address manual verification review notes
odyslam 4ea5596
docs: remove future multisig mention
odyslam 44f1423
docs: recommend hardware wallets and multisigs
odyslam 283ce7d
docs: improve verification discoverability
odyslam 9b2c63b
Update credible/manual-verification.mdx
odyslam ded686e
Update credible/manual-verification.mdx
odyslam File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| --- | ||
| title: 'Manual Verification' | ||
| description: 'How to authorize a protocol admin when contracts lack owner interfaces' | ||
| --- | ||
|
|
||
| # Manual Verification | ||
|
|
||
| Manual verification is the fallback path for protocols whose contracts are immutable or do not expose an admin interface (like `owner()`). In this flow, Phylax verifies off-chain evidence that the requesting team controls the protocol and then registers the selected protocol admin in the on-chain State Oracle registry. | ||
|
|
||
| ## Definitions | ||
|
|
||
| | Term | Definition | | ||
| | --- | --- | | ||
| | Assertion Group | A smart contract that follows the Assertion Interface and is deployed as EVM bytecode. It is associated with a target smart contract (assertion adopter). | | ||
| | Protocol Admin (Manager) | The smart contract or EOA that has permission to deploy, update, and remove assertions for one or more target contracts. | | ||
| | Protocol | A group of deployed smart contracts maintained by a company, DAO, or other entity. | | ||
| | State Oracle (Registry) | The Credible Layer contract that is the source of truth for protocol admins, assertions, and the target contracts they are attached to. | | ||
|
|
||
| ## How protocol admin authority is determined | ||
|
|
||
| There are two ways a protocol admin can be authorized: | ||
|
|
||
| ### 1) Owner interfaces (automatic) | ||
|
|
||
| If the target contract exposes an `owner()` interface, the registry can verify the admin on-chain and authorize that address as the protocol admin. | ||
|
|
||
| ### 2) Manual verification (fallback) | ||
|
|
||
| When on-chain verification is not possible, Phylax can authorize a protocol team to define a protocol admin address through manual verification. This requires trust in Phylax as a verifier, since Phylax updates the registry with the chosen admin address after reviewing evidence. | ||
|
|
||
| ## Manual verification eligibility | ||
|
|
||
| A protocol must satisfy **all** of the following criteria: | ||
|
|
||
| - Control over protocol code | ||
| - Sufficient evidence that the requesting party is authorized to act for the protocol, assessed in a good-faith, case-by-case review | ||
| - Consent to sharing identity, if required | ||
|
|
||
| Manual verification is provided at Phylax's discretion and may be declined for any reason. Approval is not guaranteed. | ||
|
|
||
| ## Verification methods | ||
|
|
||
| **Control over protocol code** | ||
| - Must be able to merge PRs to the active, official repo | ||
| - Must have permissions to manage collaborators in the GitHub org | ||
| - Must be able to commit and merge a PR to a default branch | ||
|
|
||
|
|
||
| **Proof of intent and alignment** | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This still looks weird. What are you trying to do? You don't need the
odyslam marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| Phylax will look for strong public signals that the organization wants to use the Credible Layer and that the selected admin address reflects the org's intent. Non-exhaustive examples: | ||
| - Proof of control (e.g., signature) from an emergency council or admin multisig | ||
| - Posting a GitHub commit hash on the official X account | ||
| - Posting a GitHub commit hash in an official Discord | ||
| - Consent to being recorded on a video call for posterity | ||
|
|
||
| ## Manual verification will not be offered if | ||
|
|
||
| - The protocol is fully anonymous | ||
| - The team refuses to provide public proofs | ||
| - The Phylax team does not believe it is authorizing the rightful protocol maintainer/owner | ||
|
|
||
| ## After manual verification is approved | ||
|
|
||
| - The selected protocol admin address is added to the State Oracle registry | ||
| - The protocol admin is associated with a specific set of contract addresses and can deploy assertions for those contracts | ||
| - A 5-day timelock begins before the admin can add assertions, giving the protocol time to react or cancel if needed | ||
|
|
||
| ## Opt-out / Blacklist | ||
|
|
||
| **Protocols can request manual verification specifically to be blacklisted: we still verify control, but instead of adding them to the registry, we add their contracts to an opt-out registry that blocks additions from everyone except a provided escape-hatch address.** | ||
|
|
||
| - Any protocol that wants to opt out can add themselves to an opt-out registry after manual verification confirms control | ||
| - This opt-out registry prevents Phylax from adding the specified contracts to the registry (no assertions can be attached to those contracts) | ||
| - The only entity that can re-enable registration is an address provided by the dApp at the time of blacklisting. This escape hatch allows protocols to opt out of Phylax while preserving the option to opt back in later | ||
|
|
||
| ## Related docs | ||
|
|
||
| - [Ownership Verification](/credible/ownership-verification) | ||
| - [Projects](/credible/dapp-projects) | ||
| - [Credible Layer Contracts](/credible/credible-layer-contracts) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.