Digital Signatures¶
Self provides a secure digital agreement signing workflow that allows users to cryptographically sign documents. This workflow ensures document integrity, non-repudiation, and tamper-proof signatures that can be verified independently. The digital signing process is designed to be used in a variety of scenarios, such as:
- Legal contract signing for business applications
- Terms of service acceptance for web and mobile platforms
- Document approval workflows in enterprise systems
- Regulatory compliance documentation
- Financial agreement signing
- Healthcare consent forms
Try Digital Signatures¶
Experience digital signatures in action with our demo applications. Each app demonstrates real-world document signing workflows with Self SDK.
Platform | Quick Install | Source Code |
---|---|---|
Mobile - Android | Download from Play Store | View Source |
Mobile - iOS | Download from App Store | View Source |
Server - Golang | docker run -it ghcr.io/joinself/self-sdk-demo:go | View Source |
Server - Java | docker run -it ghcr.io/joinself/self-sdk-demo:java | View Source |
Quick Start¶
- Start a server - Use the Docker links above to run a Golang or Java server
- Install mobile app - Download the Android or iOS app using the links above
- Register Self account - Open the mobile app and follow the registration prompts
- Connect to server - Enter the server identifier into the mobile app to establish connection
- Test document signing - Follow the prompts in the mobile app to sign a document
Each application includes complete document signing workflows with real cryptographic signatures, verification, and audit trails.
How to build a digital agreement signing workflow¶
You can build a secure digital agreement signing workflow with Self using verification requests and responses. Let's break down the process into steps:
1. Server: Verification Request¶
The server can send a verification request that contains the document details and signing requirements.
2. Client: Handle Verification Request¶
You need to listen to the verification request in the account's callback and then check the incoming message for its type and details. If the request is for document signing, display the document content to the user for review and signature.
You can find the full example at https://github.com/joinself/self-sdk-examples/blob/main/android/credential/src/main/java/com/joinself/example/MainActivity.kt
3. Server: Processing Signature Response¶
After receiving the verification response, we need to process the signature. This involves validating the response and checking the signature status.
Security Considerations¶
When implementing digital agreement signing, consider these important security aspects:
Document Integrity¶
- Always use cryptographic hashes (SHA-256 or stronger) to ensure document integrity
- Store the original document hash with the signature record
- Verify document hash before displaying to users
Non-Repudiation¶
- Each signature is cryptographically linked to the signer's Self identity
- Signature records include timestamps and metadata for audit trails
- Digital signatures cannot be forged or denied by the signer
Legal Validity¶
- Self's digital signatures meet legal standards for electronic signatures in many jurisdictions
- Maintain comprehensive audit logs for compliance requirements
- Consider jurisdiction-specific requirements for digital signature validity
Best Practices¶
- Implement signature expiration policies based on your use case
- Store signature records in immutable audit logs
- Provide clear consent mechanisms for users
- Include document version control in your signing workflow
Conclusion¶
This example demonstrates how to build a comprehensive digital agreement signing workflow with Self. We've seen how to send verification requests for document signing, handle the signing process on mobile clients, validate signature responses, and maintain audit trails for compliance.
The Self SDK provides a secure, legally-compliant foundation for digital document signing that ensures:
- Identity verification: Signers are authenticated using their Self digital identity
- Document integrity: Cryptographic hashes prevent document tampering
- Non-repudiation: Signatures cannot be denied or forged
- Audit compliance: Comprehensive logging for regulatory requirements
For further details and advanced use cases, refer to the Essentials section or browse our examples repository for working implementations.