Getting Started with RSCP
Choose your role to get started with the Road Safety Certification Protocol.
For Issuers
Issuers are companies (delivery platforms, fleet operators, training providers) that certify riders after they complete road safety training. As an issuer, you create and manage digital credentials for your riders.
Why Issue RSCP Credentials?
- Demonstrate safety commitment - Show regulators and partners that your riders are trained
- Interoperable credentials - Your credentials are verified by any RSCP-compatible system
- Privacy by design - You keep full visibility while protecting rider privacy from third parties
- Reduce compliance burden - Digital credentials simplify audits and reporting
Requirements
Apply to the AutoviaTest.com to become a registered issuer
Your training program must meet minimum curriculum requirements
Use our TypeScript SDK to issue credentials programmatically
Credential Issuance Workflow
- Complete rider training - Rider completes your certified training program
- Generate credential - Create a credential with private attributes (email, phone, scores) and public attributes (name, level)
- Submit to registry - Only public attributes are submitted; private data stays with you
- Deliver to rider - Credential is delivered to the rider's wallet app
Quick Example
import { IssuerSDK } from '@rscp/issuer-sdk';
const issuer = new IssuerSDK({
issuerId: 'did:rscp:issuer:your-company',
privateKey: process.env.ISSUER_PRIVATE_KEY,
});
// Create a credential after training completion
const credential = await issuer.createCredential({
holder: {
did: 'did:key:z6MkhaXgBZDvotDkL...',
givenName: 'Rahul',
familyName: 'Kumar',
email: 'rahul@email.com', // Private
phone: '+91-9876543210', // Private
},
certification: {
level: 'GOLD',
testScore: 92, // Private
hazardScore: 88, // Private
},
validity: {
issuanceDate: new Date(),
expirationDate: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),
},
});
// Submit public record to registry
await issuer.submitToRegistry(credential);
// Deliver to rider's wallet
await issuer.deliverToWallet(credential, holderWalletEndpoint);For Verifiers
Verifiers are parties who need to check if a rider holds a valid road safety credential. This includes law enforcement, restaurant partners, building security, and platform partners.
No App Required
The simplest verification requires only a smartphone camera. Scan the QR code on the rider's credential and see instant results in your browser.
Verification Flow
Open your camera app and scan the QR code on the rider's credential
Browser opens rscp.org/v/CODE showing credential status
Name, certification level, validity period, and issuer
What You'll See
- • Full name
- • Certification level (Bronze/Silver/Gold)
- • Valid from / Valid until dates
- • Issuing organization
- • Credential status (active/revoked)
- • Email address
- • Phone number
- • Test scores
- • Hazard perception scores
- • Training session details
Selective Disclosure
For advanced integrations, riders can create selective disclosure proofs. For example, they can prove "my test score is above 80%" without revealing the actual score.
// Example selective disclosure proof
{
"disclosed": {
"givenName": "Rahul",
"level": "gold"
},
"predicates": [{
"attribute": "testScore",
"predicate": ">=",
"threshold": 80,
"satisfied": true // Cryptographically proven!
}]
}For Developers
Build RSCP-compliant applications with our open-source SDKs. Whether you're building an issuer dashboard, wallet app, or verification system, we have you covered.
Quick Start
# Install the SDK you need
npm install @rscp/issuer-sdk # For issuers
npm install @rscp/wallet-sdk # For wallet apps
npm install @rscp/verifier-sdk # For verifiersSDK Overview
Create credentials, manage revocations, submit to registry
import { IssuerSDK } from '@rscp/issuer-sdk';
const issuer = new IssuerSDK({ issuerId, privateKey });
const credential = await issuer.createCredential(data);
await issuer.submitToRegistry(credential);Store credentials, create presentations with selective disclosure
import { WalletSDK } from '@rscp/wallet-sdk';
const wallet = new WalletSDK({ secureStorage });
await wallet.storeCredential(credential);
const presentation = await wallet.createPresentation({
credential,
disclose: ['name', 'level'],
predicates: [{ attribute: 'testScore', op: '>=', value: 80 }],
});Verify credentials and presentations, check revocation status
import { VerifierSDK } from '@rscp/verifier-sdk';
const verifier = new VerifierSDK({ registryUrl });
const result = await verifier.verify(presentation);
if (result.valid) {
console.log('Disclosed:', result.attributes);
console.log('Predicates:', result.predicateResults);
}Test Environment
Use our sandbox environment for development and testing:
// Connect to sandbox
const issuer = new IssuerSDK({
issuerId: 'did:rscp:issuer:sandbox-company',
privateKey: process.env.SANDBOX_KEY,
registryUrl: 'https://sandbox.rscp.org/registry',
});For Riders
As a delivery rider or driver, your road safety credential proves that you've completed certified training. You own your credential and control what information is shared.
What is a Road Safety Credential?
Think of it like a digital certificate that proves you've completed road safety training. It's stored in a wallet app on your phone and can be verified by scanning a QR code.
Your Rights
Your credential is stored on your phone, not on a central server
Choose which information to reveal during verification
Email, phone, and test scores are never stored in the public registry
How to Get Certified
- Complete training - Your employer or platform will provide road safety training
- Pass the test - Complete the assessment with the required score
- Receive your credential - It will be delivered to your wallet app automatically
- Start using it - Show your QR code when needed
Using Your Wallet App
See all your certifications, their levels, and expiration dates
Display your QR code for quick verification by others
Choose what information to share in each verification
Credentials are protected by your phone's security features
Certification Levels
| Level | Training | Valid For |
|---|---|---|
| Bronze | 2 hours basic training | 1 year |
| Silver | 4 hours + hazard training | 1 year |
| Gold | 8 hours comprehensive | 2 years |
FAQ
Your credential can be recovered through your issuer. Contact your employer's support team to have it reissued to your new device.
Credentials are valid for 1-2 years depending on level. You'll receive a notification before expiration to complete renewal training.
Yes! Your credential is portable. If you switch platforms or have multiple employers, your certification remains valid.