Skip to content

Commit 7a95865

Browse files
committed
add working version
1 parent 3ff5771 commit 7a95865

File tree

21 files changed

+497
-575
lines changed

21 files changed

+497
-575
lines changed

404.html

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>404 - Page Not Found | attest.ink</title>
7+
<meta name="description" content="Page not found. The attestation you're looking for might have moved or doesn't exist.">
8+
<link rel="icon" type="image/svg+xml" href="/assets/logo/favicon.svg">
9+
<link rel="icon" type="image/x-icon" href="/assets/favicon.ico">
10+
<link rel="manifest" href="/assets/site.webmanifest">
11+
<meta name="theme-color" content="#111827">
12+
<link rel="stylesheet" href="/static/style.css">
13+
<style>
14+
.error-container {
15+
text-align: center;
16+
padding: 60px 20px;
17+
min-height: 60vh;
18+
display: flex;
19+
flex-direction: column;
20+
justify-content: center;
21+
align-items: center;
22+
}
23+
24+
.error-code {
25+
font-size: 120px;
26+
color: var(--pixel-secondary);
27+
margin: 0;
28+
line-height: 1;
29+
text-shadow: 4px 4px 0 var(--shadow);
30+
animation: glitch 2s infinite;
31+
}
32+
33+
@keyframes glitch {
34+
0%, 100% { transform: translate(0); }
35+
20% { transform: translate(-2px, 2px); }
36+
40% { transform: translate(-2px, -2px); }
37+
60% { transform: translate(2px, 2px); }
38+
80% { transform: translate(2px, -2px); }
39+
}
40+
41+
.error-message {
42+
font-size: 32px;
43+
color: var(--pixel-primary);
44+
margin: 20px 0;
45+
text-transform: uppercase;
46+
}
47+
48+
.error-description {
49+
font-size: 20px;
50+
color: var(--text-secondary);
51+
margin: 20px 0 40px;
52+
max-width: 600px;
53+
}
54+
55+
.error-actions {
56+
display: flex;
57+
gap: 16px;
58+
flex-wrap: wrap;
59+
justify-content: center;
60+
}
61+
62+
.pixel-decoration {
63+
position: absolute;
64+
width: 8px;
65+
height: 8px;
66+
background: var(--pixel-accent);
67+
animation: float 3s ease-in-out infinite;
68+
}
69+
70+
.pixel-decoration:nth-child(1) {
71+
top: 10%;
72+
left: 10%;
73+
animation-delay: 0s;
74+
}
75+
76+
.pixel-decoration:nth-child(2) {
77+
top: 20%;
78+
right: 15%;
79+
animation-delay: 0.5s;
80+
}
81+
82+
.pixel-decoration:nth-child(3) {
83+
bottom: 30%;
84+
left: 20%;
85+
animation-delay: 1s;
86+
}
87+
88+
.pixel-decoration:nth-child(4) {
89+
bottom: 20%;
90+
right: 10%;
91+
animation-delay: 1.5s;
92+
}
93+
94+
@media (max-width: 768px) {
95+
.error-code {
96+
font-size: 80px;
97+
}
98+
99+
.error-message {
100+
font-size: 24px;
101+
}
102+
103+
.error-description {
104+
font-size: 18px;
105+
padding: 0 20px;
106+
}
107+
108+
.error-actions {
109+
flex-direction: column;
110+
width: 100%;
111+
max-width: 300px;
112+
}
113+
114+
.error-actions .btn {
115+
width: 100%;
116+
}
117+
}
118+
119+
@media (max-width: 480px) {
120+
.error-code {
121+
font-size: 60px;
122+
}
123+
124+
.error-message {
125+
font-size: 20px;
126+
}
127+
}
128+
</style>
129+
<script>
130+
// Prevent theme flicker by setting theme before render
131+
(function() {
132+
const saved = localStorage.getItem('theme');
133+
let theme = 'light';
134+
if (saved) {
135+
theme = saved;
136+
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
137+
theme = 'dark';
138+
} else {
139+
const hour = new Date().getHours();
140+
if (hour >= 18 || hour < 6) {
141+
theme = 'dark';
142+
}
143+
}
144+
document.documentElement.setAttribute('data-theme', theme);
145+
})();
146+
</script>
147+
</head>
148+
<body>
149+
<button class="theme-toggle" id="theme-toggle" aria-label="Toggle theme">D</button>
150+
151+
<!-- Pixel decorations -->
152+
<div class="pixel-decoration"></div>
153+
<div class="pixel-decoration"></div>
154+
<div class="pixel-decoration"></div>
155+
<div class="pixel-decoration"></div>
156+
157+
<div class="container">
158+
<nav>
159+
<div class="nav-inner">
160+
<a href="/" class="logo">
161+
<img src="/assets/logo/circular-2-ai.svg" alt="attest.ink logo">
162+
<span>attest.ink</span>
163+
</a>
164+
<ul>
165+
<li><a href="/create/">Create</a></li>
166+
<li><a href="/verify/">Verify</a></li>
167+
<li class="dropdown">
168+
<span class="dropdown-toggle">More</span>
169+
<div class="dropdown-menu">
170+
<a href="/protocol/">Protocol</a>
171+
<a href="/showcase/">Badges</a>
172+
<a href="/examples/">Examples</a>
173+
<a href="/developers/">Developer Docs</a>
174+
<a href="https://github.com/statusdothealth/attest.ink" target="_blank">GitHub</a>
175+
</div>
176+
</li>
177+
</ul>
178+
</div>
179+
</nav>
180+
181+
<main>
182+
<div class="error-container">
183+
<h1 class="error-code">404</h1>
184+
<h2 class="error-message">Page Not Found</h2>
185+
<p class="error-description">
186+
The attestation or page you're looking for might have been moved, deleted, or doesn't exist.
187+
Don't worry, you can create a new attestation or verify an existing one.
188+
</p>
189+
190+
<div class="error-actions">
191+
<a href="/" class="btn">Go Home</a>
192+
<a href="/create/" class="btn btn-secondary">Create Attestation</a>
193+
<a href="/verify/" class="btn btn-secondary">Verify Attestation</a>
194+
</div>
195+
</div>
196+
</main>
197+
198+
</div>
199+
200+
<script src="/static/theme.js"></script>
201+
<script src="/static/global-footer.js"></script>
202+
</body>
203+
</html>

README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# attest.ink - AI Content Attestation Protocol
1+
# <img src="assets/logo/circular-2-ai.svg" alt="attest.ink" width="40" height="40" align="left"> attest.ink - AI Content Attestation Protocol
22

33
A decentralized, privacy-preserving protocol for creating verifiable attestations about AI involvement in content creation. No servers, no tracking, no blockchain - just cryptographic proof that works everywhere.
44

55
![AI Attestation Badge](https://attest.ink/assets/badges/ai-assisted.svg)
66

7-
## 🚀 Overview
7+
## Overview
88

99
attest.ink is an open-source protocol that enables transparent disclosure of AI involvement in content creation through:
1010

@@ -14,7 +14,7 @@ attest.ink is an open-source protocol that enables transparent disclosure of AI
1414
- **Privacy-First**: Keep prompts private while proving AI involvement
1515
- **Universal Compatibility**: Integrate with any platform or content type
1616

17-
## Key Features
17+
## Key Features
1818

1919
### For Content Creators
2020
- **Simple Creation**: Generate attestations in seconds at [attest.ink/create](https://attest.ink/create/)
@@ -36,7 +36,7 @@ attest.ink is an open-source protocol that enables transparent disclosure of AI
3636
- **Signature Validation**: Verify digital signatures when present
3737
- **Offline Verification**: Download and verify attestations locally
3838

39-
## 🛠️ Quick Start
39+
## Quick Start
4040

4141
### 1. Create an Attestation
4242

@@ -81,7 +81,7 @@ Click any attestation badge or visit [attest.ink/verify](https://attest.ink/veri
8181
- Digital signatures (if present)
8282
- Timestamp and metadata
8383

84-
## 📋 Attestation Schema
84+
## Attestation Schema
8585

8686
### Version 2.0 (Current)
8787
```json
@@ -131,7 +131,7 @@ Click any attestation badge or visit [attest.ink/verify](https://attest.ink/veri
131131
- **assisted**: Human and AI collaborated on the content
132132
- **edited**: AI refined or improved human-created content
133133

134-
## 🎨 Badge Gallery
134+
## Badge Gallery
135135

136136
### Badge Styles
137137

@@ -176,7 +176,7 @@ Over 100 AI models across multiple providers:
176176

177177
View the complete gallery at [attest.ink/showcase](https://attest.ink/showcase/)
178178

179-
## 🏗️ Technical Architecture
179+
## Technical Architecture
180180

181181
### Project Structure
182182
```
@@ -237,7 +237,7 @@ const url = AttestInk.getBadgeUrl('claude-3-opus');
237237
AttestInk.renderBadges();
238238
```
239239

240-
## 🔧 Development
240+
## Development
241241

242242
### Local Development
243243
```bash
@@ -268,7 +268,7 @@ To deploy elsewhere:
268268
3. Configure your domain
269269
4. No server configuration needed
270270

271-
## 🤝 Contributing
271+
## Contributing
272272

273273
We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md).
274274

@@ -288,7 +288,7 @@ We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.
288288
6. Push to your fork
289289
7. Open a Pull Request
290290

291-
## 📖 Documentation
291+
## Documentation
292292

293293
### Core Documentation
294294
- [Protocol Specification](https://attest.ink/protocol/) - Technical protocol details
@@ -325,7 +325,7 @@ const AIBadge = ({ attestationUrl }) => (
325325
}
326326
```
327327

328-
## 🔐 Security & Privacy
328+
## Security & Privacy
329329

330330
### Security Features
331331
- **Content Integrity**: SHA-256 hashes ensure content hasn't been modified
@@ -339,7 +339,7 @@ const AIBadge = ({ attestationUrl }) => (
339339
- **No Account Required**: Create attestations anonymously
340340
- **Data Portability**: Export and backup all attestations
341341

342-
## 🌍 Use Cases
342+
## Use Cases
343343

344344
### Academic Papers
345345
- Disclose AI assistance in research
@@ -361,7 +361,7 @@ const AIBadge = ({ attestationUrl }) => (
361361
- Protect artistic integrity
362362
- Enable proper crediting
363363

364-
## 📊 Statistics
364+
## Statistics
365365

366366
- **100+** Supported AI models
367367
- **15+** AI providers
@@ -370,7 +370,7 @@ const AIBadge = ({ attestationUrl }) => (
370370
- **3** Attestation roles
371371
- **0** Servers required
372372

373-
## 🚦 Roadmap
373+
## Roadmap
374374

375375
### Planned Features
376376
- [ ] Browser extension for one-click attestation
@@ -387,7 +387,7 @@ const AIBadge = ({ attestationUrl }) => (
387387
- WebAuthn support for hardware key signatures
388388
- Multi-language interface translations
389389

390-
## FAQ
390+
## FAQ
391391

392392
**Q: Do I need a blockchain wallet?**
393393
A: No, digital signatures are optional. You can create attestations without any wallet.
@@ -404,18 +404,18 @@ A: Yes, completely free and open source under MIT license.
404404
**Q: Can I self-host this?**
405405
A: Yes, it's just static files. Host anywhere that serves HTML.
406406

407-
## 📜 License
407+
## License
408408

409409
MIT License - see [LICENSE](LICENSE) file for details.
410410

411-
## 🙏 Acknowledgments
411+
## Acknowledgments
412412

413413
- Created by [@autophage](https://github.com/autophage) and contributors
414414
- Built as a public good for the AI community
415415
- Supported by [0x42 Research](https://0x42r.io/)
416416
- Special thanks to all contributors and early adopters
417417

418-
## 📞 Contact
418+
## Contact
419419

420420
- **Email**: [email protected]
421421
- **GitHub**: [github.com/statusdothealth/attest.ink](https://github.com/statusdothealth/attest.ink)

0 commit comments

Comments
 (0)