Redline
Privacy-first threat disclosure on Arkiv. Public metadata stays queryable; private evidence is encrypted before it reaches Braga.
Submission proof
- Theme
- Privacy
- Network
- Braga
- Entities
- 3 types
- Storage
- Arkiv entities
Core flow
report, guard, access, recover
01
Guard ->
Check whether a target has an active report
02
Report ->
Create a ThreatReport and grant evidence access
03
Access ->
Review and decrypt granted evidence as a recipient wallet
04
Recover ->
Clear local state and recover Arkiv entities from Braga
Demo flow
- Check a target in Guard
- Create a ThreatReport in Report
- Check the same target again
- Grant evidence access
- Decrypt as recipient
- Recover entity by key
Show developer proof
- App
- Redline
- Phase
- 8, Submission packaging
- Current proof
- Report, guard, access, and recover on Arkiv Braga
- Project attribute key
- project
- Project attribute value
- REDLINE_V1
- Entity schema
- SecurityProfile, ThreatReport, AccessGrant
- Chain
- Braga
- SDK detected/configured
- yes
- Public client
- read-only
- Writer client
- browser wallet (connected) + demo Braga fallback
- Writes
- SecurityProfile, ThreatReport, AccessGrant
- Evidence
- AES-GCM-256, key in localStorage
- Grant flow
- RSA-OAEP wrapped key stored in AccessGrant payload
- AccessGrant expiry
- 60s demo or 5min standard; expiresInSeconds + expiresAt stored as Arkiv attributes; query filtering removes expired grants; countdown in UI
- Expiry limitation
- Expiry stops future access through Arkiv. It cannot remove plaintext already decrypted, copied, or cached by the recipient.
Honest demo limits
Recovery can recover Arkiv entities and encrypted payloads, not browser-local private keys or raw AES keys. Expiry blocks future access through Arkiv; it cannot remove plaintext already seen.
Create SecurityProfile
Create the wallet public key profile recipients need before access grants can be issued.
Wallet
Address: not connected
Chain ID: -
Braga: -
Encryption key
Public key: not generated
Write with connected wallet (preferred)
The connected wallet signs createEntity. Arkiv owner/creator should match the connected wallet address.
Write with demo Braga writer (fallback)
Server-side writer key signs createEntity. Connected wallet is only an indexed attribute, not the Arkiv owner/creator. Use only if the connected wallet path fails.