- pcl installed
- Smart contracts deployed on a supported chain
- An assertion written and tested
New to the platform? See the Platform Overview to understand its features.
Step 1: Authenticate
Authenticate throughpcl:
- A login link appears in your terminal
- Open it in your browser
- Connect your wallet
- Enter the login code from the CLI

Authentication links your wallet address with your
pcl session, allowing you to manage projects that your wallet owns.Step 2: Create a Project
- Navigate to the “Projects” tab or click “Create a Project”
-
Enter project details:
- Project Name: Your protocol name
- Project Description: What your project does
- Target Chain: Where your contracts are deployed
- Click “Continue to contract selection”
-
Add contract addresses:
- Enter each contract you want to protect
- Only contracts where your wallet is authorized can be added
- The platform verifies admin access via the network’s admin verifier (often owner-based)
- Review and click “Save and publish”

Only authorized admins can create a project for a contract. See Ownership Verification for details on verification methods.
Step 3: Store and Submit Your Assertion
Usepcl to upload and submit your assertion:
Step 4: Deploy the Assertion
After submitting viapcl, complete deployment in the platform:
- Navigate to your project
- Click the “Deployment” tab
- Find your assertion and click “Proceed to Review”
- Select the target contract to protect
-
Review assertion details:
- Assertion name and parameters
- Target contract address
- Trigger conditions
-
Choose environment:
- Staging: For testing (assertions run but don’t block transactions)
- Production: For active protection (assertions block violating transactions)
- Click “Deploy” and sign the transaction

Adding an assertion is not immediate. The deployment transaction registers it in the on-chain State Oracle, and the State Oracle enforces a configured timelock before the assertion becomes staged or enforced.
The same model applies when you remove an assertion later. Removal is also scheduled through the State Oracle contracts and only takes effect after that configured timelock expires.
Step 5: Monitor Your Assertions
After deployment, manage assertions through your project dashboard:- View Active Assertions: See all assertions protecting your contracts
- Monitor Status: Check assertion execution and triggered violations
- View Incidents: View incidents that were prevented by assertions
- Update Assertions: Submit new versions as your protocol evolves
- Remove Assertions: Request removal when needed; the assertion remains active until the State Oracle timelock finishes
Troubleshooting
| Error | Solution |
|---|---|
| ”Contract ownership verification failed” | Ensure your wallet passes the admin verifier (often owner()) or request Manual Verification if available |
| ”Assertion already exists” | Use a different name or update the existing assertion |
| ”Authentication expired” | Run pcl auth login to refresh |
Recap
You’ve deployed an assertion to protect your protocol:- Authenticate: Connect your wallet via
pcl auth login - Create project: Set up your project and link contracts
- Store and submit: Upload assertion via
pcl - Deploy: Complete deployment in the platform and sign transaction
- Monitor: Track assertion status in your dashboard
Video Walkthrough
Full walkthrough from authentication to deployment:Next Steps
Write Assertions
Learn how to write effective assertions
Test Assertions
Test your assertions before deployment
Incidents
Monitor prevented violations
Ownership Verification
Understand ownership requirements

