This guide walks you through uploading your assertion to Assertion DA and submitting it to your project for deployment.
Prerequisites:
What you’ll do: Authenticate, store your assertion, and submit it to your project.
Step 1: Authenticate
Before storing or submitting, authenticate with the Credible Layer:
This opens a browser window where you connect your wallet. Once approved, pcl automatically detects the authentication.
Check your status anytime:
Step 2: Store Your Assertion
Upload your assertion bytecode and source code to Assertion DA:
pcl store MyAssertionContract
If your assertion has constructor arguments:
pcl store MyAssertionContract 0xCONTRACT_ADDRESS
pcl store automatically builds your project if needed. You can also run pcl build separately to check for compilation errors.
Step 3: Submit to Your Project
If you haven’t created a project yet, do that first in the dApp.
Submit the stored assertion to your project:
pcl submit -a 'MyAssertionContract(0xCONTRACT_ADDRESS)' -p my-project
For assertions without constructor arguments:
pcl submit -a 'MyAssertionContract' -p my-project
To submit multiple assertions, use interactive mode: run pcl submit without options to select which stored assertions to submit and which project to submit them to.
Step 4: Deploy in the dApp
After submitting, complete deployment in the Credible Layer dApp:
- Navigate to your project
- Click “Deployment” tab
- Find your assertion and click “Proceed to Review”
- Select the target contract and environment (Staging or Production)
- Click “Deploy” and sign the transaction
Troubleshooting
Authentication Issues
| Error | Solution |
|---|
| ”Not authenticated” | Run pcl auth login |
| ”Authentication expired” | Run pcl auth login to refresh |
| Browser doesn’t open | Manually visit the URL shown in terminal |
Submission Issues
| Error | Solution |
|---|
| ”Project not found” | Create the project in the dApp first |
| ”Assertion not found” | Check assertion name matches exactly |
| Constructor args mismatch | Use same args format as when storing |
Next Steps