Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions web/src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import type React from "react";
import { motion } from "framer-motion";
import { Button } from "@/components/ui/button";
import Aurora from "@/components/Aurora";

Check warning on line 6 in web/src/app/page.tsx

View workflow job for this annotation

GitHub Actions / build

'Aurora' is defined but never used
import UseCasesCarousel from "@/components/UseCasesCarousel";

import Image from "next/image";

Check warning on line 9 in web/src/app/page.tsx

View workflow job for this annotation

GitHub Actions / build

'Image' is defined but never used
import ScrollProgress from "@/components/ScrollProgress";
import HowItWorks from "@/components/HowItWorks";

Expand All @@ -14,7 +14,7 @@
import ValueProposition from "@/components/ValueProposition";
import ValuePropositionDetails from "@/components/ValueDetails";
import ValueDetailsExtended from "@/components/ValueDetailsExtended";
import { TextAnimate } from "@/components/ui/text-animate";

Check warning on line 17 in web/src/app/page.tsx

View workflow job for this annotation

GitHub Actions / build

'TextAnimate' is defined but never used
import Footer from "@/components/Footer";
import { Particles } from "@/components/ui/particles";
import { ShineBorder } from "@/components/ui/shine-border";
Expand All @@ -22,7 +22,7 @@

import AnimatedActa from "@/components/AnimatedActa";
import WaitlistForm from "@/components/WaitlistForm";
import FlipCredential from "@/components/FlipCredential";

Check warning on line 25 in web/src/app/page.tsx

View workflow job for this annotation

GitHub Actions / build

'FlipCredential' is defined but never used
import HeroSubtitle from "@/components/HeroSubtitle";

const fadeInUp = {
Expand Down Expand Up @@ -59,7 +59,7 @@
<div className="pointer-events-none absolute inset-0 z-0">
{/* Logo difuminado */}
<div className="absolute inset-0 flex items-center justify-center">
<img

Check warning on line 62 in web/src/app/page.tsx

View workflow job for this annotation

GitHub Actions / build

Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element
src="/Acta-logo.png"
alt="ACTA Logo Background"
className="w-96 h-96 object-contain opacity-30 blur-[3px] scale-220"
Expand Down Expand Up @@ -91,14 +91,14 @@
className="bg-[#1a1a1a] text-white hover:bg-[#2a2a2a] rounded-2xl h-14 px-8 text-lg font-semibold shadow-lg transition-all focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[#404040]/40 w-full"
>
<a
href="//demo.acta.build"
href="//dapp.acta.build"
onClick={() =>
ph?.capture("clicked_try_demo", {
location: "landing_page",
})
}
>
Try our Demo!
Try our dApp!
</a>
</Button>
</div>
Expand Down
6 changes: 3 additions & 3 deletions web/src/components/HowItWorks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,10 @@ export default function HowItWorks() {
icon: <Globe className="h-5 w-5" />,
title: "Issuer emits credential",
description:
"Issuer calls our API or use our dAppp. We canonicalize and hash the payload.",
"Issuer calls the API/SDK; ACTA encrypts the payload and anchors it on-chain.",
bullets: [
"Template → VC JSON (no volatile fields).",
"Content Secure and protected against tampering.",
"Canonical VC JSON.",
"Public on-chain anchor for verification (Active / Revoked / Expired)",
"We return verify link + QR code.",
],
snippet: `POST /v1/credentials
Expand Down
88 changes: 25 additions & 63 deletions web/src/components/UseCasesCarousel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
BadgeCheck,
Briefcase,
Bug,
Cpu,

Check warning on line 9 in web/src/components/UseCasesCarousel.tsx

View workflow job for this annotation

GitHub Actions / build

'Cpu' is defined but never used
Database,

Check warning on line 10 in web/src/components/UseCasesCarousel.tsx

View workflow job for this annotation

GitHub Actions / build

'Database' is defined but never used
FileCheck2,
FileSignature,

Check warning on line 12 in web/src/components/UseCasesCarousel.tsx

View workflow job for this annotation

GitHub Actions / build

'FileSignature' is defined but never used
Fingerprint,
Flag,
GraduationCap,
Expand All @@ -27,98 +27,60 @@
// Data
// ---------------------------------------------
const cases = [
{
Icon: HeartHandshake,
title: "Donation Delivered",
desc: "Donation processed and delivered.",
},
{
Icon: Fingerprint,
title: "Identity Proof Linked",
desc: "Links verified account/DID (basic).",
},
{
Icon: Cpu,
title: "Model Provenance",
desc: "AI: signed and traceable weights/training.",
},
{
Icon: FileCheck2,
title: "Escrow Completed",
desc: "Prove an escrow settled successfully.",
desc: "Verifiable proof that an escrow or gig was delivered and settled — zero disputes.",
},
{
Icon: BadgeCheck,
title: "Grant Delivered",
desc: "Attest deliveries tied to grants.",
},
{
Icon: LockKeyhole,
title: "KYC Verified",
desc: "Share-only-the-proof, not the PII.",
Icon: Bug,
title: "Task / Contribution Delivered",
desc: "Credential for completed tasks or contributions, building real cross-platform reputation.",
},
{
Icon: UsersRound,
title: "Participation Badge",
desc: "Events, hackathons, courses.",
title: "Contributor Reputation",
desc: "A permanent, verifiable record of user performance in your platform.",
},
{
Icon: Receipt,
title: "Invoice Paid",
desc: "Verifiable proof of paid invoice.",
Icon: BadgeCheck,
title: "Crowdfunding Deliverable",
desc: "Proof that a funded milestone or community-backed deliverable was shipped.",
},
{
Icon: Flag,
title: "Milestone Completed",
desc: "Milestone delivered and approved with tx/date.",
title: "Startup Milestone Shipped",
desc: "Roadmap items delivered and approved — timestamped and verifiable.",
},
{
Icon: FileSignature,
title: "Contract Signed / NDA",
desc: "Signed document hash + status.",
Icon: HeartHandshake,
title: "Impact / Donation Proof",
desc: "Transparent, verifiable proof of where donations went and what was delivered.",
},
{
Icon: Bug,
title: "Bug Bounty Paid",
desc: "Bounty payment confirmed, no disputes.",
Icon: Receipt,
title: "Payment Proof",
desc: "Credential showing a payout or invoice was actually completed.",
},
{
Icon: Briefcase,
title: "Employment Verified",
desc: "Proof of employment/role without exposing PII.",
},
{
Icon: GraduationCap,
title: "Certification Earned",
desc: "Course or exam passed (expirable).",
title: "Role / Membership Verified",
desc: "Attest real roles, positions, or memberships — without exposing raw PII.",
},
{
Icon: ShieldCheck,
title: "Release Attestation",
desc: "Published version checksums/signatures.",
},
{
Icon: Database,
title: "Data Snapshot",
desc: "Dataset/log integrity with public hash.",
},
{
Icon: PackageCheck,
title: "Supply Checkpoint",
desc: "Batch scan and status at each stage.",
},
{
Icon: Truck,
title: "Delivery Confirmed",
desc: "Delivery received with who/when/where.",
desc: "Verifiable proof that your startup shipped a specific version or build.",
},
{
Icon: Leaf,
title: "Carbon Credit Retired",
desc: "CO₂ retirement/offset certificate.",
Icon: BadgeCheck,
title: "Participation Badge",
desc: "Issue badges for cohorts, hackathons, programs, contributors, power-users and more.",
},
];



// ---------------------------------------------
// Card
// ---------------------------------------------
Expand Down
14 changes: 7 additions & 7 deletions web/src/components/ValueDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ export default function ValueDetails() {
icon={<Webhook className="w-5 h-5 text-white/80" />}
title="For issuers (startups / platforms)"
bullets={[
"Integrate in hours with API/SDK and templates.",
"Integrate in minutes with API/SDK and templates.",
"Public state to reduce disputes and fraud.",
"Webhooks to automate lifecycle: issued/revoked/expired.",
"Tamper-proof lifecycle: verifiable state for every credential, publicly auditable.",
]}
badge="Build fast"
/>
Expand All @@ -100,8 +100,8 @@ export default function ValueDetails() {
title="For holders (end users)"
bullets={[
"Share a link/QR without exposing your data.",
"If revoked or expired, verifiers see it immediately.",
"Portable across apps and devices.",
"Share only what you need, nothing more.",
"Your data stays encrypted in your personal Vault, only you can access it.",
]}
badge="Own your proof"
/>
Expand All @@ -112,9 +112,9 @@ export default function ValueDetails() {
icon={<CheckCircle2 className="w-5 h-5 text-white/80" />}
title="For verifiers (partners / third parties)"
bullets={[
"No account required: open link or drop-in widget.",
"Objective verification against the blockchain.",
"Clear outcomes: Active · Revoked · Expired.",
"No account needed. Verify via link or QR code",
"Cryptographic verification directly against Soroban (on-chain)",
"Deterministic outcomes: Active · Revoked · Expired",
]}
badge="Verify instantly"
/>
Expand Down
33 changes: 14 additions & 19 deletions web/src/components/ValueDetailsExtended.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,29 @@ export default function ValueDetailsExtended() {
value: "inhouse",
icon: <Wrench className="w-4 h-4" />,
title: "Build in-house",
pain: "Expensive, slow; maintain on-chain, security & public verification.",
win: "Acta ships it all: API/SDK, anchoring, public verification.",
pain: "Pain: Expensive, slow, and requires deep expertise to build DID, encryption, Vaults, on-chain anchoring, and public verification..",
win: "ACTA: Ships the full stack — DID:pkh, issuer API/SDK, encrypted Vault, Soroban anchoring, and instant on-chain verification.",
},
{
value: "pdf",
icon: <FileText className="w-4 h-4" />,
title: "PDFs / e-sign",
pain: "Hard for third parties to verify; no live state.",
win: "Live status + objective, public verification.",
pain: "Pain: Easy to forge, hard to verify, and no live status (no revocation, no updates).",
win: "ACTA: Cryptographic credentials with live on-chain status and public, objective verification.",
},
{
value: "onchain",
icon: <Database className="w-4 h-4" />,
title: "Store everything on-chain",
pain: "Costly, slow, exposes PII.",
win: "Hash on-chain; encrypted data off-chain (privacy + low cost).",
title: "Web2 storage",
pain: "Pain: Centralized servers hold unencrypted PII, easy to breach, modify, or lose. If the company dies, your credential dies.",
win: "ACTA: Encrypted Vaults on-chain, even if ACTA disappears your credentials will remain verifiable forever thanks to Soroban.",
},
{
value: "noanchor",
icon: <Unlink className="w-4 h-4" />,
title: "VCs without anchoring",
pain: "Depend 100% on issuer; little public traceability.",
win: "Public anchoring on Stellar: anyone can verify.",
pain: "Pain: Rely entirely on the issuer’s backend; no public proof of authenticity or revocation.",
win: "ACTA: Anchored on Soroban public, tamper-proof verification that never depends on the issuer.",
},
].map(a => (
<Accordion key={a.value} type="single" collapsible>
Expand Down Expand Up @@ -100,23 +100,18 @@ export default function ValueDetailsExtended() {
<Info className="mt-1 h-6 w-6 text-white/70 flex-shrink-0" />
<div className="space-y-3">
<p className="font-semibold text-white text-base">
&ldquo;Zero databases&rdquo; — what we mean
&ldquo;Zero databases architecture&rdquo;
</p>
<p className="text-white/70 leading-relaxed">
You don&apos;t need to run a database for credentials. Acta
manages encrypted storage and on-chain state; your app can be
stateless (store only the{" "}
<code className="bg-white/10 px-1.5 py-0.5 rounded text-white">
credentialId
</code>
).
You don’t need to store or manage credential data.
ACTA keeps the encrypted payload on-chain and manages the full lifecycle on Soroban.
</p>
<div className="flex flex-wrap gap-2 pt-2">
<Badge className="bg-white/10 text-white border-white/20">
Hash on-chain
No backend needed
</Badge>
<Badge className="bg-white/10 text-white border-white/20">
Data off-chain
Data on-chain
</Badge>
<Badge className="bg-white/10 text-white border-white/20">
Verifiable by anyone
Expand Down
Loading