Merge pull request #96 from alloynetworks/editorial-redesign

Redesign of website - major change
This commit is contained in:
Thomas Silkjær
2026-04-20 12:36:38 +02:00
committed by GitHub
91 changed files with 14145 additions and 2691 deletions

240
DEVELOPMENT.md Normal file
View File

@@ -0,0 +1,240 @@
# Development Guide
Reference documentation for working on the Xahau website codebase. See [README.md](README.md) for quick-start instructions.
---
## Editorial Component System
Marketing pages (About, Features, Connect, Contest, Home, Roadmap) use a custom editorial component system — **not** Markdown/MDX. Each page is a self-contained `.astro` component inside `src/components/`.
### Component map
| URL | Component(s) |
| :-- | :----------- |
| `/` | `IndexLayout.astro``XahauHome.astro` |
| `/about` | `XahauAbout.astro` / `XahauAboutEs.astro` / `XahauAboutJa.astro` |
| `/features` | `XahauFeatures.astro` / `XahauFeaturesEs.astro` / `XahauFeaturesJa.astro` |
| `/connect` | `XahauConnect.astro` |
| `/contest` | `XahauContest.astro` / `XahauContestEs.astro` / `XahauContestJa.astro` |
| `/roadmap` | `XahauRoadmap.astro` |
| `/ecosystem` | `XahauEcosystem.astro` |
| `/fraud-report` | `FraudReportPage.astro` |
Each component lives in `src/components/` and is imported by a thin page wrapper in `src/pages/` (and `src/pages/es/`, `src/pages/ja/`).
### Design tokens
All editorial components share the same CSS custom properties, defined at the top of each component's `<style>` block:
| Token | Value | Usage |
| :---- | :---- | :---- |
| `--ink` | `#0f2328` | Primary text, dark headings |
| `--dim` | `#2d3e44` | Secondary body text |
| `--mute` | `#556068` | Captions, labels, muted text |
| `--grn2` | `#007a28` | Green accent — CTAs, labels, pip dots |
| `--teal2` | `#006f87` | Teal accent — statistics, resource links |
| `--grn-hi` | `#00c940` | Highlight green (gradient text) |
| `--teal-hi` | `#00c4e8` | Highlight teal (gradient text, stat values) |
| `--border` | `#e4edef` | All border and separator colours |
| `--hover-bg` | `#f4f6f7` | Hover background for interactive rows |
Do not introduce one-off hex values. Either use these tokens or extend the set in `src/styles/global.css`.
The outer white card used by every editorial component:
```css
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
box-shadow: 0 2px 4px rgba(0,0,0,0.04), 0 20px 64px -24px rgba(15,35,40,0.13);
```
### Component anatomy
Each component is divided into **acts** — thematic sections introduced by a monospaced act-label with a coloured pip dot:
```html
<p class="xc-act-label">
<span class="act-pip pip-grn"></span>Introduction
</p>
```
Alternate `.pip-grn` (green) and `.pip-teal` (teal) across acts to create visual rhythm. Within each act, section labels use the `.xc-lbl` / `.lbl-grn` / `.lbl-teal` pattern:
```html
<span class="xc-lbl lbl-teal">Judges Panel</span>
```
---
## JSON Data Files
### `src/data/home.json`
Controls the statistics tiles on the home page (`XahauHome.astro`).
```json
{
"stats": [
{
"value": "22M+",
"label": { "en": "Ledgers closed", "es": "Ledgers cerrados", "ja": "閉鎖済みレジャー" },
"theme": "dark",
"col": 5
}
]
}
```
| Field | Type | Description |
| :---- | :--- | :---------- |
| `value` | string | Large number displayed on the tile |
| `label` | object | Translated label keyed by locale (`en`, `es`, `ja`) |
| `theme` | `"dark"` \| `"light"` | `dark` = ink background with teal value; `light` = white background |
| `col` | number | Column span within the 9-column grid |
**Grid rule:** `col` values for each visual row must sum to **9**. Current layout: row 1 = 5 + 4, row 2 = 3 + 3 + 3.
---
### `src/data/about.json`
Drives `XahauAbout.astro` (and ES/JA variants). Top-level structure:
```json
{
"meta": {
"videoId": "4pruN6sWJho",
"launched": "October 2023",
"accounts": "100k+",
"settlement": "~4s"
},
"content": {
"en": { "title": "...", "subtitle": "...", "chips": [], "intro": {}, "acts": [] },
"es": { ... },
"ja": { ... }
}
}
```
Each locale object contains `title`, `subtitle`, `chips[]`, `intro` (label + paragraphs), and `acts[]` (the three thematic acts: Network, Protocol, Currency), each with headings, paragraphs, and graphic keys mapping to SVGs in `src/assets/enterprise/`.
---
### `src/data/features.json`
Drives `XahauFeatures.astro` (and ES/JA variants). The `content` object is keyed by locale. Each locale has `title`, `subtitle`, `chips[]`, and `features[]`:
```json
{
"id": "hooks",
"label": "Programmability",
"type": "protocol",
"graphic": "hooks",
"heading": "Hooks: Account-Level Smart Contract Logic",
"paragraphs": ["...", "..."]
}
```
| Field | Description |
| :---- | :---------- |
| `id` | Unique slug (used for anchor links) |
| `label` | Short label shown in the sidebar nav |
| `type` | Visual category tag: `"protocol"`, `"finance"`, or `"infrastructure"` |
| `graphic` | Key mapping to an SVG in `src/assets/enterprise/` |
| `heading` | Full section heading |
| `paragraphs` | Array of body paragraph strings |
---
### `src/data/connect.json`
Drives `XahauConnect.astro`. Add an object to `events[]` to publish a new event. The component automatically separates upcoming from past events by comparing `date` to today.
```json
{
"events": [
{
"id": "unique-slug",
"date": "2026-06-15",
"time": "16:00",
"timezone": "CET",
"dateLabel": { "en": "...", "es": "...", "ja": "..." },
"title": { "en": "...", "es": "...", "ja": "..." },
"location": {
"name": "Venue Name",
"address": "Full address",
"mapsUrl": "https://maps.google.com/..."
},
"speakers": [],
"registration": {
"url": "https://...",
"label": { "en": "Register to attend", "es": "...", "ja": "..." }
}
}
]
}
```
---
### `src/data/roadmap.json`
Drives `XahauRoadmap.astro`. This is the most structured file — it contains the full roadmap quarter grid.
**Window configuration** (`meta.window`):
| `mode` | Behaviour |
| :----- | :-------- |
| `"auto"` | Displays the current quarter + next 5 quarters, recalculated at build time |
| `"manual"` | Pins the view to the quarter containing the ISO date in `start` |
Each roadmap item:
```json
{
"id": "hooks-js",
"quarter": "2026-Q2",
"status": "in-progress",
"title": { "en": "Hooks JS Support", "es": "Soporte JS para Hooks" },
"description": { "en": "...", "es": "..." }
}
```
Valid `status` values: `"done"`, `"in-progress"`, `"planned"`, `"research"`.
---
### `src/data/ecosystem.json`
Drives `XahauEcosystem.astro`. Contains the ecosystem project list with logos, categories, and external links. Logo image files go in `src/assets/ecosystem-logos/`.
---
## Header & Footer
The **Header** is a React component (`src/components/Header.jsx`, mounted with `client:load`) to support interactive dropdowns and the mobile menu. The nav link structure is defined in the `navLinks` array near the top of the file — edit there to add, remove, or rename nav items.
The **Footer** is a plain Astro component (`src/components/Footer.astro`). Translations are inlined in a `translations` object at the top of the file (EN, ES, JA). Column structure and link destinations are in the template below.
---
## Linting & Formatting
The project uses [Biome](https://biomejs.dev) v2.4 for both formatting and linting.
```bash
npm run check # auto-fix formatting (run before committing)
npm run ci # CI lint — exits non-zero on errors, no auto-fix
```
**Biome overrides** (see `biome.jsonc`):
- **All `**/*.astro` files:** `noUnusedVariables` and `useJsxKeyInIterable` are suppressed. Both are false positives — Biome cannot track variable usage across Astro's frontmatter/template boundary, and cannot detect server-render context where `key` props are unnecessary.
- **`src/components/XahauRoadmap.astro` only:** Three rules are suppressed for pre-existing CSS patterns that cannot be safely refactored:
- `noImportantStyles``!important` is used intentionally in print media query overrides
- `noImportantInKeyframe``!important` appears inside a `@keyframes` block for animation reset
- `noDescendingSpecificity` — theme modifier selectors (`.xroadmap.theme-light .xr-roll.status-live`) intentionally override base selectors at lower specificity
New components are still checked by all three rules.

View File

@@ -1,40 +1,67 @@
# Xahau website and documentation
# Xahau Website
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/Xahau/xahau-web/tree/main)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/Xahau/xahau-web/tree/main)
## Project Structure
Built with [Astro](https://astro.build), [Tailwind CSS](https://tailwindcss.com), and [React](https://react.dev). Editorial pages use a hand-coded component system; documentation lives under `src/content/docs/` and is powered by [Starlight](https://starlight.astro.build).
Inside the project, these are the most relevant folders for collaboration
```text
/
├── public/
├── src/
│ └── assets/
│ └── ecosystem-logos/
│ └── content/
│ └── docs/
│ └── docs/
│ └── pages/
│ └── schemas/
```
The project is using `.mdx` files for content, which combines markdown with JSX. When editing content, look at the existing files for reference on how various elements are used, such as `LinkButton`, `LinkCard`, `Aside` etc.
---
## Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :---------------- | :-------------------------------------------- |
| `npm install` | Install dependencies |
| `npm run dev` | Start local dev server at `localhost:4321` |
| `npm run build` | Build production site to `./dist/` |
| `npm run preview` | Preview production build locally |
| `npm run check` | Auto-fix formatting with Biome |
| `npm run ci` | Biome lint check (CI — no auto-fix) |
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
---
## Standards for Formatting Contributions
## Project Structure
When contributing, please adhere to the standards defined in "[contributing.md](contributing.md)".
```
/
├── public/ Static assets (fonts, favicons)
├── src/
│ ├── assets/ SVGs, images, gem PNGs
│ ├── components/ Astro & React components
│ ├── content/docs/ Starlight documentation (Markdown/MDX)
│ ├── data/ JSON data files — edit these to update content
│ ├── i18n/ Translation keys for the home page
│ ├── layouts/ Page-level layout wrappers
│ ├── pages/ URL routes (en = root, es/, ja/)
│ └── styles/ Global CSS and Tailwind theme tokens
├── biome.jsonc Linter/formatter config (Biome 2.4)
└── astro.config.mjs Astro config (i18n, integrations)
```
---
## Localization
The site supports three locales: English (root `/`), Spanish (`/es/`), and Japanese (`/ja/`). Each editorial page has a dedicated component per locale — e.g. `XahauAbout.astro`, `XahauAboutEs.astro`, `XahauAboutJa.astro` — with a thin `.astro` page wrapper in `src/pages/` for each.
---
## Updating Content
Most editorial page content is stored in JSON files under `src/data/`. **Edit the JSON to change what's rendered — no component code changes needed.** See [DEVELOPMENT.md](DEVELOPMENT.md) for the full schema of each file.
| File | Controls |
| :--- | :------- |
| `src/data/home.json` | Statistics tiles on the home page |
| `src/data/about.json` | All copy and section structure on the About page |
| `src/data/features.json` | Feature cards and body copy on the Features page |
| `src/data/connect.json` | Events list on the Connect page |
| `src/data/roadmap.json` | Roadmap items and quarter window |
| `src/data/ecosystem.json` | Ecosystem project list |
---
## Further Reading
- [DEVELOPMENT.md](DEVELOPMENT.md) — editorial component system, design tokens, JSON schemas, Biome config
- [CONTRIBUTING.md](CONTRIBUTING.md) — code style and pull request guidelines

View File

@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.3/schema.json",
"$schema": "https://biomejs.dev/schemas/2.4.12/schema.json",
"vcs": {
"enabled": false,
"clientKind": "git",
@@ -62,5 +62,38 @@
"organizeImports": "on"
}
}
}
},
"overrides": [
{
// Biome false positives in .astro files:
// - noUnusedVariables cannot track usage across the frontmatter/template boundary
// - useJsxKeyInIterable does not apply to server-rendered Astro components
"includes": ["**/*.astro"],
"linter": {
"rules": {
"correctness": {
"noUnusedVariables": "off",
"useJsxKeyInIterable": "off"
}
}
}
},
{
// Pre-existing CSS patterns in XahauRoadmap.astro that cannot be refactored without risk
"includes": ["src/components/XahauRoadmap.astro"],
"linter": {
"rules": {
"suspicious": {
"noImportantInKeyframe": "off"
},
"style": {
"noDescendingSpecificity": "off"
},
"complexity": {
"noImportantStyles": "off"
}
}
}
}
]
}

1239
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,6 @@
},
"dependencies": {
"@astrojs/mdx": "^4.3.0",
"@astrojs/node": "^9.4.4",
"@astrojs/react": "^4.3.0",
"@astrojs/starlight": "^0.34.4",
"@astrojs/starlight-tailwind": "^4.0.1",
@@ -29,6 +28,6 @@
"vanilla-cookieconsent": "^3.1.0"
},
"devDependencies": {
"@biomejs/biome": "^2.3.3"
"@biomejs/biome": "^2.4.12"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,17 @@
<svg width="188" height="76" viewBox="0 0 188 76" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M112.04 0.109974C111.99 0.0999742 111.94 0.109974 111.89 0.109974C111.85 0.109974 111.81 0.109974 111.76 0.109974V0.119974C104.24 0.209974 97.32 4.02997 93.21 8.23997C95.77 11.43 97.66 15.16 98.7 19.23C100.86 15.34 106.44 10.95 112 11.18C120.35 11.27 127.27 18.06 127.27 26.42V26.52C127.22 34.9 120.41 41.66 112.03 41.66C103.64 41.66 96.84 34.9 96.79 26.52V26.42C96.79 20.38 94.75 14.82 91.33 10.38C86.53 4.12997 78.98 0.109974 70.49 0.109974C55.97 0.109974 44.21 11.86 44.17 26.37V26.52C44.2 33.76 47.15 40.32 51.91 45.06C56.67 49.8 65.37 53.92 73.29 52.79V52.73C79.45 51.97 84.95 49.09 89.04 44.83C86.45 41.66 84.52 37.95 83.44 33.89C81.29 37.85 77.43 40.75 72.84 41.6V41.67C63.04 43.08 55.29 34.77 55.24 26.52C55.27 22.34 56.98 18.55 59.74 15.81C62.49 13.07 66.28 11.38 70.48 11.38C78.9 11.38 85.72 18 85.72 26.42V26.43C85.72 26.46 85.72 26.5 85.72 26.53C85.74 32.62 87.83 38.23 91.33 42.68C96.14 48.81 103.63 52.75 112.03 52.75C126.56 52.75 138.35 41.17 138.35 26.63V26.43C138.36 11.98 126.45 0.259974 112.04 0.109974Z" fill="#00AEEF"/>
<path d="M44.88 44.99C42.28 41.82 40.34 38.09 39.26 34.01C37.1 37.98 33.23 40.73 28.64 41.59C27.91 41.69 27.17 41.75 26.41 41.75C22.2 41.75 18.39 40.05 15.63 37.3C12.87 34.55 11.15 30.75 11.12 26.55C11.18 18.27 18.94 9.92 28.79 11.34C28.94 11.36 29.09 11.38 29.24 11.41C33.27 12.48 36.63 15.01 38.59 18.52C39.67 14.54 41.61 10.9 44.21 7.8C40 3.53 34.31 0.66 27.95 0V0.05V0.06C21.82 -0.39 15.37 2.09 10.74 5.44C9.64 6.24 8.64 7.08 7.77 7.94C2.99 12.71 0.03 19.29 0 26.56V26.71C0 26.95 0 27.18 0.01 27.42V27.43C0.42 41.66 12.08 53.07 26.41 53.07C27.16 53.07 27.9 53.04 28.63 52.98V52.99C35 52.31 40.68 49.37 44.88 44.99Z" fill="#00AEEF"/>
<path d="M165.4 0.190002C152.9 0.190002 142.78 10.36 142.78 22.93C142.78 23.4 142.8 23.88 142.83 24.34V70.6L144.94 72.53V36.05H144.99C145.12 35.66 145.49 35.38 145.94 35.38C146.39 35.38 146.76 35.66 146.89 36.05H146.93C146.93 36.06 146.94 36.07 146.94 36.07V75.12H147.04L149.15 73.04L152.7 68.79V66.78L150.97 65.24L151.93 62.94V61.21L150.68 60.63L150.59 57.37L151.93 56.12V53.44L150.2 52.19V50L153.56 47.98V42.3C157.01 44.43 161.06 45.66 165.4 45.66C177.88 45.66 188 35.47 188 22.92C188 10.36 177.87 0.190002 165.4 0.190002ZM165.4 36.33C158.03 36.33 152.06 30.34 152.06 22.93C152.06 15.52 158.03 9.5 165.4 9.5C172.76 9.5 178.72 15.51 178.72 22.92C178.72 30.33 172.76 36.33 165.4 36.33Z" fill="#00AEEF"/>
<path d="M0.190002 57.3301C1.01 57.1701 2.69 57.05 4.25 57.05C6.17 57.05 7.35 57.2301 8.36 57.8101C9.33 58.3101 10.03 59.2301 10.03 60.4501C10.03 61.6501 9.31 62.77 7.74 63.34V63.3801C9.33 63.8001 10.51 64.96 10.51 66.71C10.51 67.93 9.93 68.8901 9.07 69.5801C8.06 70.3601 6.37 70.8001 3.6 70.8001C2.05 70.8001 0.900002 70.7 0.200002 70.6V57.3301H0.190002ZM3.3 62.5H4.33C5.98 62.5 6.87 61.84 6.87 60.84C6.87 59.82 6.07 59.28 4.64 59.28C3.96 59.28 3.57 59.3201 3.3 59.3601V62.5V62.5ZM3.3 68.49C3.61 68.53 3.98 68.53 4.52 68.53C5.94 68.53 7.2 68.01 7.2 66.59C7.2 65.23 5.94 64.6901 4.37 64.6901H3.3V68.49Z" fill="#00AEEF"/>
<path d="M18.34 70.65L18.15 69.67H18.09C17.43 70.45 16.4 70.87 15.2 70.87C13.16 70.87 11.94 69.43 11.94 67.86C11.94 65.32 14.29 64.09 17.86 64.11V63.97C17.86 63.45 17.57 62.71 16.02 62.71C14.99 62.71 13.89 63.05 13.23 63.45L12.65 61.49C13.35 61.11 14.73 60.63 16.57 60.63C19.93 60.63 21.01 62.55 21.01 64.86V68.27C21.01 69.21 21.05 70.11 21.15 70.65H18.34V70.65ZM17.97 66.02C16.32 66 15.04 66.38 15.04 67.56C15.04 68.34 15.58 68.72 16.28 68.72C17.06 68.72 17.7 68.22 17.91 67.6C17.95 67.44 17.97 67.26 17.97 67.08V66.02V66.02Z" fill="#00AEEF"/>
<path d="M23.5 63.98C23.5 62.76 23.46 61.72 23.42 60.85H26.14L26.28 62.19H26.34C26.75 61.57 27.78 60.63 29.46 60.63C31.52 60.63 33.07 61.95 33.07 64.84V70.65H29.93V65.22C29.93 63.96 29.48 63.1 28.34 63.1C27.47 63.1 26.96 63.68 26.75 64.24C26.67 64.42 26.63 64.72 26.63 65V70.65H23.5V63.98Z" fill="#00AEEF"/>
<path d="M38.72 64.9801H38.76C38.99 64.5801 39.23 64.1801 39.48 63.8001L41.52 60.8601H45.3L41.69 64.8301L45.82 70.6601H41.96L39.53 66.6301L38.73 67.59V70.6601H35.59V56.4301H38.73V64.9801H38.72Z" fill="#00AEEF"/>
<path d="M60.9 65.64C60.9 69.23 58.28 70.87 55.58 70.87C52.63 70.87 50.36 68.99 50.36 65.82C50.36 62.65 52.51 60.63 55.75 60.63C58.84 60.63 60.9 62.7 60.9 65.64ZM53.6 65.74C53.6 67.42 54.32 68.69 55.66 68.69C56.88 68.69 57.66 67.51 57.66 65.74C57.66 64.28 57.08 62.79 55.66 62.79C54.16 62.8 53.6 64.3 53.6 65.74Z" fill="#00AEEF"/>
<path d="M63.19 70.65V63.1H61.87V60.86H63.19V60.48C63.19 59.3 63.56 58 64.47 57.19C65.25 56.47 66.35 56.21 67.26 56.21C67.96 56.21 68.5 56.29 68.93 56.41L68.81 58.75C68.54 58.67 68.21 58.61 67.8 58.61C66.77 58.61 66.34 59.39 66.34 60.35V60.85H68.36V63.09H66.36V70.64H63.19V70.65Z" fill="#00AEEF"/>
<path d="M86.88 63.7601C86.88 68.1901 84.11 70.8701 80.05 70.8701C75.92 70.8701 73.51 67.8401 73.51 64.0001C73.51 59.9501 76.17 56.9301 80.28 56.9301C84.55 56.9301 86.88 60.0301 86.88 63.7601ZM76.83 63.9401C76.83 66.5801 78.11 68.4501 80.21 68.4501C82.34 68.4501 83.55 66.4901 83.55 63.8601C83.55 61.4401 82.35 59.3501 80.19 59.3501C78.07 59.3501 76.83 61.3101 76.83 63.9401Z" fill="#00AEEF"/>
<path d="M88.9 64.08C88.9 62.64 88.86 61.7 88.82 60.85H91.52L91.62 62.65H91.7C92.22 61.23 93.45 60.63 94.42 60.63C94.71 60.63 94.85 60.63 95.08 60.67V63.54C94.85 63.5 94.58 63.46 94.23 63.46C93.07 63.46 92.29 64.06 92.08 65C92.04 65.2 92.02 65.44 92.02 65.68V70.65H88.9V64.08Z" fill="#00AEEF"/>
<path d="M106.56 65.64C106.56 69.23 103.94 70.87 101.24 70.87C98.29 70.87 96.02 68.99 96.02 65.82C96.02 62.65 98.17 60.63 101.41 60.63C104.49 60.63 106.56 62.7 106.56 65.64ZM99.25 65.74C99.25 67.42 99.97 68.69 101.31 68.69C102.53 68.69 103.31 67.51 103.31 65.74C103.31 64.28 102.73 62.79 101.31 62.79C99.81 62.8 99.25 64.3 99.25 65.74Z" fill="#00AEEF"/>
<path d="M108.5 63.98C108.5 62.76 108.46 61.72 108.42 60.85H111.06L111.2 62.17H111.26C111.69 61.55 112.58 60.63 114.31 60.63C115.61 60.63 116.64 61.27 117.08 62.29H117.12C117.49 61.79 117.95 61.39 118.42 61.11C118.98 60.79 119.6 60.63 120.34 60.63C122.28 60.63 123.74 61.95 123.74 64.88V70.65H120.69V65.32C120.69 63.9 120.22 63.08 119.2 63.08C118.48 63.08 117.96 63.56 117.76 64.14C117.68 64.36 117.64 64.68 117.64 64.92V70.65H114.59V65.16C114.59 63.92 114.14 63.08 113.15 63.08C112.35 63.08 111.87 63.68 111.69 64.18C111.59 64.42 111.57 64.7 111.57 64.94V70.65H108.52V63.98H108.5Z" fill="#00AEEF"/>
<path d="M129.48 58.13C129.48 58.97 128.82 59.65 127.79 59.65C126.8 59.65 126.14 58.97 126.16 58.13C126.14 57.25 126.8 56.59 127.81 56.59C128.82 56.59 129.46 57.25 129.48 58.13ZM126.24 70.65V60.85H129.38V70.65H126.24Z" fill="#00AEEF"/>
<path d="M137.63 70.65L137.44 69.67H137.38C136.72 70.45 135.69 70.87 134.49 70.87C132.45 70.87 131.23 69.43 131.23 67.86C131.23 65.32 133.58 64.09 137.15 64.11V63.97C137.15 63.45 136.86 62.71 135.31 62.71C134.28 62.71 133.18 63.05 132.52 63.45L131.94 61.49C132.64 61.11 134.02 60.63 135.86 60.63C139.22 60.63 140.3 62.55 140.3 64.86V68.27C140.3 69.21 140.34 70.11 140.44 70.65H137.63V70.65ZM137.25 66.02C135.6 66 134.32 66.38 134.32 67.56C134.32 68.34 134.86 68.72 135.56 68.72C136.34 68.72 136.98 68.22 137.19 67.6C137.23 67.44 137.25 67.26 137.25 67.08V66.02Z" fill="#00AEEF"/>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -0,0 +1,57 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 80" width="160" height="80" fill="none">
<defs>
<linearGradient id="bgGrad" x1="0" y1="0" x2="160" y2="80" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#0b1f26"/>
<stop offset="100%" stop-color="#003d50"/>
</linearGradient>
<linearGradient id="ringGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#00c4e8"/>
<stop offset="100%" stop-color="#00c940"/>
</linearGradient>
<radialGradient id="glowCore" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#00c4e8" stop-opacity="0.35"/>
<stop offset="100%" stop-color="#00c4e8" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Dark background -->
<rect width="160" height="80" rx="10" fill="url(#bgGrad)"/>
<!-- Glow halo behind central icon -->
<circle cx="80" cy="38" r="28" fill="url(#glowCore)"/>
<!-- Outer dashed ring -->
<circle cx="80" cy="38" r="26" stroke="url(#ringGrad)" stroke-width="1.2" stroke-dasharray="5 3" opacity="0.6"/>
<!-- Middle ring -->
<circle cx="80" cy="38" r="19" stroke="#00c4e8" stroke-width="0.8" stroke-dasharray="2 4" opacity="0.4"/>
<!-- Central megaphone / broadcast icon -->
<!-- Body of megaphone -->
<path d="M68 33 L75 33 L85 25 L85 51 L75 43 L68 43 Z"
fill="none"
stroke="url(#ringGrad)"
stroke-width="1.6"
stroke-linejoin="round"
stroke-linecap="round"/>
<!-- Sound waves -->
<path d="M88 32 Q92 38 88 44" stroke="#00c940" stroke-width="1.5" stroke-linecap="round" fill="none"/>
<path d="M91 28 Q97 38 91 48" stroke="#00c940" stroke-width="1.2" stroke-linecap="round" fill="none" opacity="0.6"/>
<!-- Three sparkle dots -->
<circle cx="65" cy="22" r="1.5" fill="#00c4e8" opacity="0.9"/>
<circle cx="95" cy="20" r="1" fill="#00c940" opacity="0.7"/>
<circle cx="62" cy="53" r="1" fill="#00c4e8" opacity="0.6"/>
<!-- Bottom label pill -->
<rect x="30" y="62" width="100" height="13" rx="6.5" fill="#00c4e8" fill-opacity="0.12" stroke="#00c4e8" stroke-opacity="0.3" stroke-width="0.8"/>
<text
x="80" y="72"
text-anchor="middle"
font-family="ui-monospace, 'SF Mono', monospace"
font-size="7.5"
font-weight="700"
letter-spacing="0.18em"
fill="#00c4e8"
>COMING SOON</text>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,9 @@
<svg width="983" height="220" viewBox="0 0 983 220" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M184.073 156.081H160.739C176.582 139.606 187.518 118.338 190.388 95.0894C196.817 42.7084 159.476 0 107.095 0C54.7143 0 7.15531 42.7084 0.7261 95.0894C-5.73181 147.499 31.6093 189.92 83.9901 189.92H130.602L128.191 210.873C127.387 215.982 130.889 220 135.969 220C138.667 220 141.336 218.651 143.231 216.785L188.637 168.968C189.986 167.361 190.79 165.753 191.048 163.859C191.593 159.554 188.35 156.081 184.073 156.081ZM88.0371 156.081C55.8049 156.081 32.9583 128.671 36.9765 95.0894C41.2818 61.2498 70.8447 33.8395 103.077 33.8395C135.309 33.8395 158.156 61.2498 154.109 95.0894C149.803 128.671 120.269 156.081 88.0371 156.081Z" fill="#012169"/>
<path d="M340.067 52.9264L324.482 179.444C323.679 185.357 318.311 189.921 312.657 189.921C309.701 189.921 307.003 188.859 305.396 186.706L292.509 171.666C280.138 183.75 264.036 189.921 248.71 189.921C222.103 189.921 198.481 171.379 203.045 132.689H203.303L212.172 52.8977H246.557L237.688 125.973C234.732 149.623 247.906 160.903 262.4 160.903C276.895 160.903 293.57 149.078 296.527 126.26L305.396 52.9264H340.039H340.067Z" fill="#012169"/>
<path d="M474.135 179.731C473.59 185.385 468.481 189.949 462.855 189.949C459.641 189.949 456.943 188.342 455.335 185.931L443.797 168.738C431.168 182.716 413.718 189.949 396.784 189.949C366.417 189.949 337.945 167.102 343.599 120.634C348.421 82.4892 383.093 51.8643 420.979 51.8643C458.866 51.8643 486.247 82.4892 481.425 120.634V120.892L474.164 179.731H474.135ZM447.012 120.605C449.71 99.9112 436.277 83.0058 417.191 83.0058C398.104 83.0058 380.653 99.9399 377.955 120.605C375.544 141.299 388.977 158.205 408.035 158.205C427.093 158.205 444.314 141.558 446.983 120.864V120.605H447.012Z" fill="#012169"/>
<path d="M590.462 115.783H590.204C593.16 92.1329 580.273 80.8531 565.75 80.8531C551.227 80.8531 534.58 92.6782 531.623 115.783L522.496 188.858H488.111L503.696 62.3403C504.5 56.7148 509.609 51.8642 515.522 51.8642C518.478 51.8642 520.889 52.9548 522.783 55.0788L535.67 70.1186C548.041 58.0351 564.142 51.8354 579.469 51.8354C605.789 51.8354 629.697 70.3769 624.876 109.067L615.748 188.858H581.364L590.491 115.783H590.462Z" fill="#012169"/>
<path d="M699.241 189.662C656.533 189.662 645.253 176.488 649.529 141.3L656.504 84.3551H641.722C637.417 84.3551 634.203 80.8535 634.748 76.5769C635.006 74.7113 635.81 73.0753 637.159 71.468L682.565 23.6506C684.459 21.7563 687.129 20.436 689.827 20.436C694.936 20.436 698.437 24.4543 697.605 29.5632L694.907 52.9266H728.488L724.47 84.3551H690.889L684.718 135.932C682.565 153.67 688.478 159.583 724.212 160.099L720.71 188.83C712.932 189.375 705.67 189.634 699.212 189.634L699.241 189.662Z" fill="#012169"/>
<path d="M868.493 120.893C863.93 159.037 829.258 189.921 791.113 189.921C752.968 189.921 726.104 159.037 730.667 120.893C735.231 82.7477 769.902 52.1228 808.047 52.1228C846.192 52.1228 873.057 82.7477 868.493 120.893ZM834.108 120.893C836.519 100.198 823.374 83.2931 804.287 83.2931C785.201 83.2931 767.75 100.227 765.052 120.893C762.641 141.587 775.786 158.492 794.873 158.492C813.96 158.492 831.41 141.558 834.108 120.893Z" fill="#012169"/>
<path d="M974.093 156.339L970.075 188.858H861.008L862.902 173.819L928.457 85.4455H877.942L881.702 52.9263H982.704L980.809 67.9661L917.407 156.339H974.093Z" fill="#012169"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,117 @@
<svg viewBox="0 0 400 380" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="bg-n" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#e2f6e9"/>
<stop offset="100%" stop-color="#f0faf3"/>
</radialGradient>
<radialGradient id="hub-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#00c940" stop-opacity="0.28"/>
<stop offset="100%" stop-color="#00c940" stop-opacity="0"/>
</radialGradient>
<filter id="hub-f" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="6"/>
</filter>
<filter id="node-f" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="3"/>
</filter>
</defs>
<!-- Background circle -->
<circle cx="200" cy="190" r="188" fill="url(#bg-n)"/>
<!-- Outer orbit ring -->
<circle cx="200" cy="190" r="165" stroke="#007a28" stroke-width="0.6" opacity="0.08" fill="none"/>
<!-- Mid orbit ring (dashed) -->
<circle cx="200" cy="190" r="132" stroke="#007a28" stroke-width="0.6" opacity="0.13" fill="none" stroke-dasharray="4 6"/>
<!-- Six spokes -->
<line x1="200" y1="190" x2="200" y2="58" stroke="#00c940" stroke-width="1.4" opacity="0.3"/>
<line x1="200" y1="190" x2="314" y2="124" stroke="#00c940" stroke-width="1.4" opacity="0.3"/>
<line x1="200" y1="190" x2="314" y2="256" stroke="#00c940" stroke-width="1.4" opacity="0.3"/>
<line x1="200" y1="190" x2="200" y2="322" stroke="#00c940" stroke-width="1.4" opacity="0.3"/>
<line x1="200" y1="190" x2="86" y2="256" stroke="#00c940" stroke-width="1.4" opacity="0.3"/>
<line x1="200" y1="190" x2="86" y2="124" stroke="#00c940" stroke-width="1.4" opacity="0.3"/>
<!-- Midpoint accent dots on spokes -->
<circle cx="200" cy="124" r="2.8" fill="#00c940" opacity="0.45"/>
<circle cx="257" cy="157" r="2.8" fill="#00c940" opacity="0.45"/>
<circle cx="257" cy="223" r="2.8" fill="#00c940" opacity="0.45"/>
<circle cx="200" cy="256" r="2.8" fill="#00c940" opacity="0.45"/>
<circle cx="143" cy="223" r="2.8" fill="#00c940" opacity="0.45"/>
<circle cx="143" cy="157" r="2.8" fill="#00c940" opacity="0.45"/>
<!-- Subtle arc cross-connections between adjacent nodes -->
<path d="M200,58 Q257,124 314,124" stroke="#007a28" stroke-width="0.7" opacity="0.15" fill="none" stroke-dasharray="3 5"/>
<path d="M314,124 Q314,190 314,256" stroke="#007a28" stroke-width="0.7" opacity="0.15" fill="none" stroke-dasharray="3 5"/>
<path d="M314,256 Q257,322 200,322" stroke="#007a28" stroke-width="0.7" opacity="0.15" fill="none" stroke-dasharray="3 5"/>
<path d="M200,322 Q143,256 86,256" stroke="#007a28" stroke-width="0.7" opacity="0.15" fill="none" stroke-dasharray="3 5"/>
<path d="M86,256 Q86,190 86,124" stroke="#007a28" stroke-width="0.7" opacity="0.15" fill="none" stroke-dasharray="3 5"/>
<path d="M86,124 Q143,58 200,58" stroke="#007a28" stroke-width="0.7" opacity="0.15" fill="none" stroke-dasharray="3 5"/>
<!-- Outer node glows -->
<circle cx="200" cy="58" r="24" fill="#00c940" opacity="0.07" filter="url(#node-f)"/>
<circle cx="314" cy="124" r="24" fill="#00c940" opacity="0.07" filter="url(#node-f)"/>
<circle cx="314" cy="256" r="24" fill="#00c940" opacity="0.07" filter="url(#node-f)"/>
<circle cx="200" cy="322" r="24" fill="#00c940" opacity="0.07" filter="url(#node-f)"/>
<circle cx="86" cy="256" r="24" fill="#00c940" opacity="0.07" filter="url(#node-f)"/>
<circle cx="86" cy="124" r="24" fill="#00c940" opacity="0.07" filter="url(#node-f)"/>
<!-- Outer nodes: dark shell + inner ring + centre dot -->
<circle cx="200" cy="58" r="22" fill="#0c2312" stroke="#1a6630" stroke-width="1.5"/>
<circle cx="200" cy="58" r="12" fill="none" stroke="#00c940" stroke-width="1" opacity="0.35"/>
<circle cx="200" cy="58" r="4" fill="#00c940" opacity="0.65"/>
<circle cx="314" cy="124" r="22" fill="#0c2312" stroke="#1a6630" stroke-width="1.5"/>
<circle cx="314" cy="124" r="12" fill="none" stroke="#00c940" stroke-width="1" opacity="0.35"/>
<circle cx="314" cy="124" r="4" fill="#00c940" opacity="0.65"/>
<circle cx="314" cy="256" r="22" fill="#0c2312" stroke="#1a6630" stroke-width="1.5"/>
<circle cx="314" cy="256" r="12" fill="none" stroke="#00c940" stroke-width="1" opacity="0.35"/>
<circle cx="314" cy="256" r="4" fill="#00c940" opacity="0.65"/>
<circle cx="200" cy="322" r="22" fill="#0c2312" stroke="#1a6630" stroke-width="1.5"/>
<circle cx="200" cy="322" r="12" fill="none" stroke="#00c940" stroke-width="1" opacity="0.35"/>
<circle cx="200" cy="322" r="4" fill="#00c940" opacity="0.65"/>
<circle cx="86" cy="256" r="22" fill="#0c2312" stroke="#1a6630" stroke-width="1.5"/>
<circle cx="86" cy="256" r="12" fill="none" stroke="#00c940" stroke-width="1" opacity="0.35"/>
<circle cx="86" cy="256" r="4" fill="#00c940" opacity="0.65"/>
<circle cx="86" cy="124" r="22" fill="#0c2312" stroke="#1a6630" stroke-width="1.5"/>
<circle cx="86" cy="124" r="12" fill="none" stroke="#00c940" stroke-width="1" opacity="0.35"/>
<circle cx="86" cy="124" r="4" fill="#00c940" opacity="0.65"/>
<!-- Hub glow layer -->
<circle cx="200" cy="190" r="80" fill="url(#hub-glow)" filter="url(#hub-f)"/>
<!-- Central hub -->
<circle cx="200" cy="190" r="54" fill="#0e2820" stroke="#007a28" stroke-width="2"/>
<circle cx="200" cy="190" r="46" fill="#0a1e18"/>
<!-- Hub inner radial marks (no text) -->
<line x1="200" y1="152" x2="200" y2="164" stroke="#00c940" stroke-width="1.5" opacity="0.55"/>
<line x1="200" y1="216" x2="200" y2="228" stroke="#00c940" stroke-width="1.5" opacity="0.55"/>
<line x1="158" y1="190" x2="170" y2="190" stroke="#00c940" stroke-width="1.5" opacity="0.55"/>
<line x1="230" y1="190" x2="242" y2="190" stroke="#00c940" stroke-width="1.5" opacity="0.55"/>
<line x1="170" y1="162" x2="179" y2="171" stroke="#00c940" stroke-width="1.2" opacity="0.35"/>
<line x1="221" y1="209" x2="230" y2="218" stroke="#00c940" stroke-width="1.2" opacity="0.35"/>
<line x1="230" y1="162" x2="221" y2="171" stroke="#00c940" stroke-width="1.2" opacity="0.35"/>
<line x1="179" y1="209" x2="170" y2="218" stroke="#00c940" stroke-width="1.2" opacity="0.35"/>
<!-- Hub centre -->
<circle cx="200" cy="190" r="9" fill="#00c940" opacity="0.6"/>
<circle cx="200" cy="190" r="4" fill="#00c940"/>
<!-- Decorative tick marks on outer orbit -->
<circle cx="365" cy="190" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="343" cy="272" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="282" cy="333" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="200" cy="355" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="118" cy="333" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="57" cy="272" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="35" cy="190" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="57" cy="108" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="118" cy="47" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="200" cy="25" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="282" cy="47" r="2" fill="#00c940" opacity="0.25"/>
<circle cx="343" cy="108" r="2" fill="#00c940" opacity="0.25"/>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -0,0 +1,98 @@
<svg viewBox="0 0 400 380" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="bg-p" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#ddf2f7"/>
<stop offset="100%" stop-color="#edf8fc"/>
</radialGradient>
<filter id="card-shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="4" stdDeviation="10" flood-color="#002a36" flood-opacity="0.22"/>
</filter>
<filter id="hook-glow" x="-30%" y="-30%" width="160%" height="160%">
<feDropShadow dx="0" dy="0" stdDeviation="8" flood-color="#00c4e8" flood-opacity="0.4"/>
</filter>
</defs>
<!-- Background -->
<rect width="400" height="380" rx="28" fill="url(#bg-p)"/>
<!-- ══ Stage 1: Transaction block ══ -->
<rect x="28" y="140" width="88" height="100" rx="16"
fill="#091e26" stroke="#1e5060" stroke-width="1.5"
filter="url(#card-shadow)"/>
<!-- Three horizontal rule lines — suggests a list/ledger entry -->
<line x1="48" y1="172" x2="96" y2="172" stroke="#1e7090" stroke-width="2.5" stroke-linecap="round" opacity="0.9"/>
<line x1="48" y1="190" x2="96" y2="190" stroke="#1e7090" stroke-width="2.5" stroke-linecap="round" opacity="0.7"/>
<line x1="48" y1="208" x2="80" y2="208" stroke="#1e7090" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
<!-- ══ Arrow 1 → 2 ══ -->
<line x1="124" y1="190" x2="144" y2="190" stroke="#00c4e8" stroke-width="2" opacity="0.5"/>
<polygon points="148,190 141,185 141,195" fill="#00c4e8" opacity="0.5"/>
<!-- ══ Stage 2: Hook intercept block (taller, glowing border) ══ -->
<rect x="152" y="118" width="96" height="144" rx="20"
fill="#091e26" stroke="#00c4e8" stroke-width="2.5"
filter="url(#hook-glow)"/>
<!-- Corner bracket: top-left -->
<path d="M152,148 L152,118 L182,118"
stroke="#00c4e8" stroke-width="2" fill="none" opacity="0.55" stroke-linecap="round" stroke-linejoin="round"/>
<!-- Corner bracket: bottom-right -->
<path d="M218,232 L248,232 L248,202"
stroke="#00c4e8" stroke-width="2" fill="none" opacity="0.55" stroke-linecap="round" stroke-linejoin="round"/>
<!-- Hook shape: a J-curve path (no text) -->
<path d="M188,142 L188,208 Q188,224 204,224 L220,224"
stroke="#00c4e8" stroke-width="3.5" fill="none"
stroke-linecap="round" stroke-linejoin="round" opacity="0.9"/>
<!-- Small capture arc above the hook -->
<path d="M178,148 Q200,132 222,148"
stroke="#00c4e8" stroke-width="2" fill="none"
stroke-linecap="round" opacity="0.4"/>
<!-- ══ Arrow 2 → 3 ══ -->
<line x1="256" y1="190" x2="270" y2="190" stroke="#00c4e8" stroke-width="2" opacity="0.5"/>
<polygon points="274,190 267,185 267,195" fill="#00c4e8" opacity="0.5"/>
<!-- ══ Stage 3: Consensus cluster ══ -->
<!-- Background dashed ring -->
<circle cx="326" cy="190" r="62"
stroke="#006f87" stroke-width="0.8" opacity="0.18" fill="none" stroke-dasharray="3 5"/>
<!-- Mesh lines between validator positions -->
<!-- Hexagon positions (r=50): top, top-right, bot-right, bot, bot-left, top-left -->
<!-- top (326, 140) -->
<!-- tr (373, 165) -->
<!-- br (373, 215) -->
<!-- bot (326, 240) -->
<!-- bl (279, 215) -->
<!-- tl (279, 165) -->
<line x1="326" y1="140" x2="373" y2="165" stroke="#006f87" stroke-width="0.9" opacity="0.38"/>
<line x1="373" y1="165" x2="373" y2="215" stroke="#006f87" stroke-width="0.9" opacity="0.38"/>
<line x1="373" y1="215" x2="326" y2="240" stroke="#006f87" stroke-width="0.9" opacity="0.38"/>
<line x1="326" y1="240" x2="279" y2="215" stroke="#006f87" stroke-width="0.9" opacity="0.38"/>
<line x1="279" y1="215" x2="279" y2="165" stroke="#006f87" stroke-width="0.9" opacity="0.38"/>
<line x1="279" y1="165" x2="326" y2="140" stroke="#006f87" stroke-width="0.9" opacity="0.38"/>
<!-- Cross-mesh (skip connections) -->
<line x1="326" y1="140" x2="373" y2="215" stroke="#006f87" stroke-width="0.5" opacity="0.18"/>
<line x1="373" y1="165" x2="279" y2="215" stroke="#006f87" stroke-width="0.5" opacity="0.18"/>
<line x1="326" y1="240" x2="279" y2="165" stroke="#006f87" stroke-width="0.5" opacity="0.18"/>
<!-- Validator nodes: 4 confirmed (bright filled inner), 2 pending (dim) -->
<!-- Confirmed nodes -->
<circle cx="326" cy="140" r="15" fill="#0d2228" stroke="#00c4e8" stroke-width="1.8"/>
<circle cx="326" cy="140" r="6" fill="#00c4e8" opacity="0.85"/>
<circle cx="373" cy="165" r="15" fill="#0d2228" stroke="#00c4e8" stroke-width="1.8"/>
<circle cx="373" cy="165" r="6" fill="#00c4e8" opacity="0.85"/>
<circle cx="373" cy="215" r="15" fill="#0d2228" stroke="#00c4e8" stroke-width="1.8"/>
<circle cx="373" cy="215" r="6" fill="#00c4e8" opacity="0.85"/>
<circle cx="326" cy="240" r="15" fill="#0d2228" stroke="#00c4e8" stroke-width="1.8"/>
<circle cx="326" cy="240" r="6" fill="#00c4e8" opacity="0.85"/>
<!-- Pending nodes (dimmer border, small muted dot) -->
<circle cx="279" cy="215" r="15" fill="#091820" stroke="#1e4a56" stroke-width="1.5"/>
<circle cx="279" cy="215" r="4" fill="#1e4a56" opacity="0.6"/>
<circle cx="279" cy="165" r="15" fill="#091820" stroke="#1e4a56" stroke-width="1.5"/>
<circle cx="279" cy="165" r="4" fill="#1e4a56" opacity="0.6"/>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1,65 @@
<svg viewBox="0 0 400 380" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="bg-x" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#e8e2f9"/>
<stop offset="100%" stop-color="#f3f0fd"/>
</radialGradient>
<radialGradient id="icon-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#4010b0" stop-opacity="0.18"/>
<stop offset="100%" stop-color="#4010b0" stop-opacity="0"/>
</radialGradient>
<filter id="icon-shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="8" stdDeviation="20" flood-color="#1a0060" flood-opacity="0.38"/>
</filter>
<filter id="glow-f" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="14"/>
</filter>
</defs>
<!-- Background circle -->
<circle cx="200" cy="190" r="192" fill="url(#bg-x)"/>
<!-- Ambient glow behind icon -->
<circle cx="200" cy="190" r="110" fill="url(#icon-glow)" filter="url(#glow-f)"/>
<!-- Ellipse coin rings (three orbital planes) -->
<ellipse cx="200" cy="190" rx="170" ry="34" fill="none" stroke="#6020c0" stroke-width="1.4" opacity="0.22"/>
<ellipse cx="200" cy="190" rx="138" ry="26" fill="none" stroke="#6020c0" stroke-width="1.2" opacity="0.16"/>
<ellipse cx="200" cy="190" rx="106" ry="19" fill="none" stroke="#6020c0" stroke-width="1" opacity="0.11"/>
<!-- Orbital accent dots on outer ring -->
<circle cx="30" cy="190" r="4.5" fill="#6020c0" opacity="0.3"/>
<circle cx="370" cy="190" r="4.5" fill="#6020c0" opacity="0.3"/>
<circle cx="96" cy="160" r="3" fill="#6020c0" opacity="0.2"/>
<circle cx="304" cy="160" r="3" fill="#6020c0" opacity="0.2"/>
<circle cx="96" cy="220" r="3" fill="#6020c0" opacity="0.2"/>
<circle cx="304" cy="220" r="3" fill="#6020c0" opacity="0.2"/>
<!-- Mid-ring accent dots -->
<circle cx="62" cy="190" r="3" fill="#8040e0" opacity="0.18"/>
<circle cx="338" cy="190" r="3" fill="#8040e0" opacity="0.18"/>
<!-- Corner ambient dots (subtle visual weight at corners) -->
<circle cx="52" cy="72" r="6" fill="#5010a0" opacity="0.1"/>
<circle cx="348" cy="72" r="6" fill="#5010a0" opacity="0.1"/>
<circle cx="52" cy="308" r="6" fill="#5010a0" opacity="0.1"/>
<circle cx="348" cy="308" r="6" fill="#5010a0" opacity="0.1"/>
<!-- Official Xahau icon — centred, no text -->
<svg x="88" y="78" width="224" height="224" viewBox="0 0 180 180"
filter="url(#icon-shadow)">
<defs>
<clipPath id="ic">
<rect width="180" height="180" fill="white"/>
</clipPath>
</defs>
<g clip-path="url(#ic)">
<rect width="180" height="180" rx="40" fill="#0E0143"/>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M97.9191 125.747L106.355 138H137.482L127.298 123.21L97.9191 125.747ZM87.9795 111.309L87.8937 111.184L72.1277 138H42.078L72.9362 89.3546L41 43H72.1277L90.0497 69.1419L105.411 43H135.461L105.007 90.8369L116.936 108.161L88.0408 111.205L87.9795 111.309Z"
fill="white"/>
<path d="M167.632 104.614C169.337 105.392 169.535 107.671 167.988 108.715L143.979 124.925C142.432 125.969 140.301 124.996 140.143 123.173L137.688 94.8819C137.53 93.059 139.464 91.7535 141.169 92.5319L167.632 104.614Z"
fill="#F7F7F7"/>
</g>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,98 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" fill="none">
<defs>
<radialGradient id="c-bg" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#f0e8ff"/>
<stop offset="100%" stop-color="#e0d0ff"/>
</radialGradient>
<radialGradient id="c-center" cx="42%" cy="36%" r="65%">
<stop offset="0%" stop-color="#3a0a9a"/>
<stop offset="100%" stop-color="#1a0550"/>
</radialGradient>
<radialGradient id="c-voted" cx="45%" cy="38%" r="65%">
<stop offset="0%" stop-color="#6020c0"/>
<stop offset="100%" stop-color="#300880"/>
</radialGradient>
<radialGradient id="c-pending" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#2a0870"/>
<stop offset="100%" stop-color="#140440"/>
</radialGradient>
<filter id="c-glow" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="4" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
<filter id="c-glow-sm" x="-30%" y="-30%" width="160%" height="160%">
<feGaussianBlur stdDeviation="2.5" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<circle cx="200" cy="200" r="195" fill="url(#c-bg)"/>
<circle cx="200" cy="200" r="174" fill="none" stroke="#8040e0" stroke-width="1" stroke-opacity="0.1"/>
<circle cx="200" cy="200" r="162" fill="none" stroke="#8040e0" stroke-width="1" stroke-opacity="0.15"/>
<circle cx="200" cy="200" r="152" fill="none" stroke="#8040e0" stroke-width="1" stroke-opacity="0.18"/>
<line x1="200.0" y1="54.0" x2="346.0" y2="200.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.18"/>
<line x1="200.0" y1="54.0" x2="303.2" y2="303.2" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="200.0" y1="54.0" x2="96.8" y2="303.2" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="200.0" y1="54.0" x2="54.0" y2="200.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="200.0" y1="54.0" x2="96.8" y2="96.8" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="303.2" y1="96.8" x2="303.2" y2="303.2" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.18"/>
<line x1="303.2" y1="96.8" x2="200.0" y2="346.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="303.2" y1="96.8" x2="54.0" y2="200.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="303.2" y1="96.8" x2="96.8" y2="96.8" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="346.0" y1="200.0" x2="200.0" y2="346.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.18"/>
<line x1="346.0" y1="200.0" x2="96.8" y2="303.2" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="346.0" y1="200.0" x2="96.8" y2="96.8" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="303.2" y1="303.2" x2="96.8" y2="303.2" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.18"/>
<line x1="303.2" y1="303.2" x2="54.0" y2="200.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="200.0" y1="346.0" x2="54.0" y2="200.0" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.18"/>
<line x1="200.0" y1="346.0" x2="96.8" y2="96.8" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.1"/>
<line x1="96.8" y1="303.2" x2="96.8" y2="96.8" stroke="#7030c8" stroke-width="0.8" stroke-opacity="0.18"/>
<line x1="200" y1="200" x2="200.0" y2="54.0" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="303.2" y2="96.8" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="346.0" y2="200.0" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="303.2" y2="303.2" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="200.0" y2="346.0" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="96.8" y2="303.2" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="54.0" y2="200.0" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<line x1="200" y1="200" x2="96.8" y2="96.8" stroke="#8040d0" stroke-width="1.2" stroke-opacity="0.22" stroke-dasharray="5 5"/>
<circle cx="200.0" cy="54.0" r="30" fill="#9050e0" fill-opacity="0.22"/>
<circle cx="200.0" cy="54.0" r="20" fill="url(#c-voted)" stroke="#c080ff" stroke-width="2.5" filter="url(#c-glow-sm)"/>
<polyline points="193.0,55.0 198.0,61.0 208.0,48.0" stroke="#e0b8ff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="200.0" y="35.5" text-anchor="middle" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·A</text>
<circle cx="303.2" cy="96.8" r="30" fill="#9050e0" fill-opacity="0.22"/>
<circle cx="303.2" cy="96.8" r="20" fill="url(#c-voted)" stroke="#c080ff" stroke-width="2.5" filter="url(#c-glow-sm)"/>
<polyline points="296.2,97.8 301.2,103.8 311.2,90.8" stroke="#e0b8ff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="318.8" y="84.7" text-anchor="start" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·B</text>
<circle cx="346.0" cy="200.0" r="30" fill="#9050e0" fill-opacity="0.22"/>
<circle cx="346.0" cy="200.0" r="20" fill="url(#c-voted)" stroke="#c080ff" stroke-width="2.5" filter="url(#c-glow-sm)"/>
<polyline points="339.0,201.0 344.0,207.0 354.0,194.0" stroke="#e0b8ff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="368.0" y="203.5" text-anchor="start" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·C</text>
<circle cx="303.2" cy="303.2" r="30" fill="#9050e0" fill-opacity="0.22"/>
<circle cx="303.2" cy="303.2" r="20" fill="url(#c-voted)" stroke="#c080ff" stroke-width="2.5" filter="url(#c-glow-sm)"/>
<polyline points="296.2,304.2 301.2,310.2 311.2,297.2" stroke="#e0b8ff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="318.8" y="322.3" text-anchor="start" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·D</text>
<circle cx="200.0" cy="346.0" r="30" fill="#5020a0" fill-opacity="0.12"/>
<circle cx="200.0" cy="346.0" r="20" fill="url(#c-pending)" stroke="#7040b0" stroke-width="1.5" filter="url(#c-glow-sm)"/>
<circle cx="200.0" cy="346.0" r="4.5" fill="#8050c0"/>
<text x="200.0" y="371.5" text-anchor="middle" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·E</text>
<circle cx="96.8" cy="303.2" r="30" fill="#9050e0" fill-opacity="0.22"/>
<circle cx="96.8" cy="303.2" r="20" fill="url(#c-voted)" stroke="#c080ff" stroke-width="2.5" filter="url(#c-glow-sm)"/>
<polyline points="89.8,304.2 94.8,310.2 104.8,297.2" stroke="#e0b8ff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="81.2" y="322.3" text-anchor="end" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·F</text>
<circle cx="54.0" cy="200.0" r="30" fill="#9050e0" fill-opacity="0.22"/>
<circle cx="54.0" cy="200.0" r="20" fill="url(#c-voted)" stroke="#c080ff" stroke-width="2.5" filter="url(#c-glow-sm)"/>
<polyline points="47.0,201.0 52.0,207.0 62.0,194.0" stroke="#e0b8ff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="32.0" y="203.5" text-anchor="end" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·G</text>
<circle cx="96.8" cy="96.8" r="30" fill="#5020a0" fill-opacity="0.12"/>
<circle cx="96.8" cy="96.8" r="20" fill="url(#c-pending)" stroke="#7040b0" stroke-width="1.5" filter="url(#c-glow-sm)"/>
<circle cx="96.8" cy="96.8" r="4.5" fill="#8050c0"/>
<text x="81.2" y="84.7" text-anchor="end" font-family="ui-monospace,monospace" font-size="8.5" font-weight="700" fill="#7040b0" letter-spacing="0.08em">GOV·H</text>
<circle cx="200" cy="200" r="85" fill="#9040e0" fill-opacity="0.1"/>
<circle cx="200" cy="200" r="52" fill="url(#c-center)" stroke="#c080ff" stroke-width="3.5" filter="url(#c-glow)"/>
<circle cx="200" cy="200" r="44" fill="none" stroke="#c080ff" stroke-width="0.8" stroke-opacity="0.3"/>
<circle cx="200" cy="200" r="64" stroke="#c080ff" stroke-width="0.7" stroke-opacity="0.25" fill="none"/>
<path d="M 200.0,136.0 A 64,64 0 1,1 136.0,200.0" stroke="#d8a0ff" stroke-width="4" stroke-linecap="round" fill="none" filter="url(#c-glow-sm)"/>
<polyline points="183.0,204.0 197.0,218.0 221.0,184.0" stroke="#e8c8ff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" filter="url(#c-glow)"/>
<text x="200" y="188" text-anchor="middle" font-family="ui-monospace,monospace" font-size="13" font-weight="800" fill="#f0d8ff" letter-spacing="0.05em">6 / 8</text>
<text x="200" y="206" text-anchor="middle" font-family="system-ui,sans-serif" font-size="9.5" font-weight="700" fill="#c898f8" letter-spacing="0.06em">CONSENSUS</text>
<text x="200" y="220" text-anchor="middle" font-family="system-ui,sans-serif" font-size="8.5" font-weight="500" fill="#a070e0" letter-spacing="0.08em" opacity="0.85">VALIDATORS</text>
</svg>

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,97 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 415" width="400" height="415" fill="none">
<defs>
<radialGradient id="ocean" cx="42%" cy="36%" r="65%">
<stop offset="0%" stop-color="#bde8f4"/>
<stop offset="55%" stop-color="#8acfe8"/>
<stop offset="100%" stop-color="#5ab8d6"/>
</radialGradient>
<filter id="land-sh">
<feDropShadow dx="1" dy="2" stdDeviation="2.5" flood-color="#006080" flood-opacity="0.3"/>
</filter>
<clipPath id="gclip"><circle cx="200" cy="205" r="148"/></clipPath>
<linearGradient id="arc-a" gradientUnits="userSpaceOnUse" x1="80" y1="180" x2="320" y2="220">
<stop offset="0%" stop-color="#007bab" stop-opacity="0.9"/>
<stop offset="100%" stop-color="#00bcd4" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="arc-b" gradientUnits="userSpaceOnUse" x1="130" y1="100" x2="300" y2="290">
<stop offset="0%" stop-color="#009688" stop-opacity="0.9"/>
<stop offset="100%" stop-color="#26c6da" stop-opacity="0.6"/>
</linearGradient>
</defs>
<circle cx="200" cy="205" r="162" fill="none" stroke="#5ab8d6" stroke-width="8" stroke-opacity="0.12"/>
<circle cx="200" cy="205" r="155" fill="none" stroke="#5ab8d6" stroke-width="3" stroke-opacity="0.18"/>
<circle cx="200" cy="205" r="148" fill="url(#ocean)"/>
<path d="M 135.3,338.1 L 137.2,339.0 L 139.4,339.8 L 141.7,340.6 L 144.2,341.4 L 146.8,342.1 L 149.5,342.8 L 152.4,343.5 L 155.5,344.1 L 158.6,344.7 L 161.9,345.2 L 165.3,345.7 L 168.7,346.2 L 172.3,346.6 L 175.9,346.9 L 179.6,347.2 L 183.4,347.5 L 187.2,347.7 L 191.0,347.8 L 194.8,347.9 L 198.7,348.0 L 202.6,347.9 L 206.4,347.9 L 210.3,347.8 L 214.1,347.6 L 217.9,347.4 L 221.6,347.1 L 225.3,346.8 L 228.9,346.4 L 232.4,346.0 L 235.9,345.6 L 239.2,345.0 L 242.4,344.5 L 245.6,343.9 L 248.5,343.3 L 251.4,342.6 L 254.1,341.9 L 256.7,341.1 L 259.1,340.3 L 261.3,339.5 L 263.4,338.7 L 265.3,337.8" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 74.2,282.8 L 75.6,284.5 L 77.4,286.2 L 79.6,287.8 L 82.0,289.4 L 84.8,291.0 L 87.9,292.6 L 91.3,294.1 L 95.0,295.5 L 99.0,296.9 L 103.3,298.2 L 107.8,299.5 L 112.6,300.7 L 117.6,301.9 L 122.9,303.0 L 128.3,304.0 L 134.0,304.9 L 139.8,305.8 L 145.8,306.5 L 152.0,307.2 L 158.3,307.8 L 164.7,308.4 L 171.2,308.8 L 177.7,309.1 L 184.4,309.4 L 191.1,309.6 L 197.8,309.6 L 204.5,309.6 L 211.2,309.5 L 217.8,309.3 L 224.5,309.0 L 231.0,308.7 L 237.5,308.2 L 243.8,307.7 L 250.1,307.0 L 256.2,306.3 L 262.1,305.5 L 267.9,304.6 L 273.5,303.7 L 278.9,302.6 L 284.1,301.5 L 289.0,300.3 L 293.7,299.1 L 298.2,297.8 L 302.4,296.4 L 306.3,295.0 L 309.9,293.6 L 313.2,292.1 L 316.2,290.5 L 318.8,288.9 L 321.2,287.3 L 323.2,285.6 L 324.9,283.9 L 326.2,282.2" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 52.1,206.3 L 52.6,208.3 L 53.4,210.3 L 54.7,212.3 L 56.4,214.3 L 58.5,216.2 L 60.9,218.1 L 63.8,220.0 L 67.0,221.8 L 70.6,223.6 L 74.5,225.3 L 78.8,227.0 L 83.4,228.6 L 88.3,230.1 L 93.5,231.6 L 99.1,233.0 L 104.9,234.3 L 110.9,235.6 L 117.2,236.8 L 123.8,237.8 L 130.5,238.8 L 137.5,239.7 L 144.6,240.5 L 151.8,241.2 L 159.2,241.8 L 166.7,242.3 L 174.3,242.7 L 182.0,243.0 L 189.7,243.2 L 197.4,243.3 L 205.2,243.3 L 212.9,243.2 L 220.6,242.9 L 228.2,242.6 L 235.8,242.2 L 243.3,241.6 L 250.6,241.0 L 257.8,240.3 L 264.9,239.4 L 271.8,238.5 L 278.4,237.5 L 284.9,236.4 L 291.1,235.2 L 297.1,233.9 L 302.8,232.6 L 308.2,231.1 L 313.4,229.6 L 318.2,228.1 L 322.7,226.4 L 326.9,224.7 L 330.7,223.0 L 334.1,221.2 L 337.2,219.3 L 339.9,217.5 L 342.3,215.6 L 344.2,213.6 L 345.8,211.7 L 346.9,209.7 L 347.6,207.7 L 348.0,205.7" stroke="#2a8bad" stroke-width="0.8" stroke-opacity="0.35" fill="none" clip-path="url(#gclip)"/>
<path d="M 72.8,129.5 L 72.1,131.2 L 71.8,132.9 L 71.9,134.7 L 72.3,136.4 L 73.1,138.1 L 74.2,139.9 L 75.6,141.5 L 77.4,143.2 L 79.6,144.9 L 82.0,146.5 L 84.8,148.1 L 87.9,149.6 L 91.3,151.1 L 95.0,152.5 L 99.0,153.9 L 103.3,155.3 L 107.8,156.6 L 112.6,157.8 L 117.6,158.9 L 122.9,160.0 L 128.3,161.0 L 134.0,162.0 L 139.8,162.8 L 145.8,163.6 L 152.0,164.3 L 158.3,164.9 L 164.7,165.4 L 171.2,165.8 L 177.7,166.2 L 184.4,166.4 L 191.1,166.6 L 197.8,166.7 L 204.5,166.7 L 211.2,166.6 L 217.8,166.4 L 224.5,166.1 L 231.0,165.7 L 237.5,165.2 L 243.8,164.7 L 250.1,164.1 L 256.2,163.3 L 262.1,162.5 L 267.9,161.7 L 273.5,160.7 L 278.9,159.7 L 284.1,158.6 L 289.0,157.4 L 293.7,156.1 L 298.2,154.8 L 302.4,153.5 L 306.3,152.1 L 309.9,150.6 L 313.2,149.1 L 316.2,147.5 L 318.8,145.9 L 321.2,144.3 L 323.2,142.7 L 324.9,141.0 L 326.2,139.3 L 327.2,137.6 L 327.9,135.8 L 328.2,134.1 L 328.1,132.4 L 327.7,130.6 L 326.9,128.9" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 132.9,73.1 L 131.4,74.0 L 130.0,75.0 L 128.9,75.9 L 127.9,76.9 L 127.1,77.9 L 126.6,78.9 L 126.2,79.9 L 126.0,80.9 L 126.0,81.9 L 126.3,82.9 L 126.7,83.9 L 127.4,84.9 L 128.2,85.8 L 129.2,86.8 L 130.5,87.7 L 131.9,88.7 L 133.5,89.6 L 135.3,90.5 L 137.2,91.3 L 139.4,92.2 L 141.7,93.0 L 144.2,93.8 L 146.8,94.5 L 149.5,95.2 L 152.4,95.9 L 155.5,96.5 L 158.6,97.1 L 161.9,97.6 L 165.3,98.1 L 168.7,98.6 L 172.3,99.0 L 175.9,99.3 L 179.6,99.6 L 183.4,99.9 L 187.2,100.1 L 191.0,100.2 L 194.8,100.3 L 198.7,100.3 L 202.6,100.3 L 206.4,100.3 L 210.3,100.2 L 214.1,100.0 L 217.9,99.8 L 221.6,99.5 L 225.3,99.2 L 228.9,98.8 L 232.4,98.4 L 235.9,97.9 L 239.2,97.4 L 242.4,96.9 L 245.6,96.3 L 248.5,95.7 L 251.4,95.0 L 254.1,94.3 L 256.7,93.5 L 259.1,92.7 L 261.3,91.9 L 263.4,91.1 L 265.3,90.2 L 267.1,89.3 L 268.6,88.4 L 270.0,87.4 L 271.1,86.5 L 272.1,85.5 L 272.9,84.5 L 273.4,83.5 L 273.8,82.5 L 274.0,81.5 L 274.0,80.5 L 273.7,79.5 L 273.3,78.5 L 272.6,77.5 L 271.8,76.6 L 270.8,75.6 L 269.5,74.6 L 268.1,73.7 L 266.5,72.8" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 253.0,66.9 L 249.0,65.5 L 245.0,64.3 L 240.9,63.2 L 236.7,62.4 L 232.5,61.7 L 228.2,61.1 L 223.9,60.8 L 219.6,60.6 L 215.3,60.6 L 210.9,60.8" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 218.0,58.2 L 215.6,58.1 L 213.3,58.2 L 210.9,58.5 L 208.5,59.0 L 206.1,59.6" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 198.7,57.0 L 198.8,57.1 L 199.0,57.4 L 199.2,57.8 L 199.4,58.4 L 199.5,59.3" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 177.1,58.8 L 179.7,58.5 L 182.4,58.4 L 185.0,58.5 L 187.7,58.7 L 190.4,59.1 L 193.2,59.8" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 136.6,71.2 L 140.7,69.5 L 144.8,67.8 L 148.9,66.4 L 153.2,65.1 L 157.5,64.0 L 161.8,63.0 L 166.2,62.3 L 170.6,61.7 L 175.1,61.2 L 179.6,61.0 L 184.1,60.9 L 188.6,61.0" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 53.2,223.7 L 52.7,218.8 L 52.3,213.8 L 52.1,208.8 L 52.1,203.8 L 52.3,198.9 L 52.7,193.9 L 53.2,188.9 L 53.9,184.0 L 54.8,179.0 L 55.9,174.1 L 57.1,169.3 L 58.6,164.5 L 60.1,159.7 L 61.9,155.0 L 63.8,150.4 L 65.9,145.8 L 68.2,141.3 L 70.6,136.9 L 73.2,132.5 L 76.0,128.3 L 78.8,124.1 L 81.9,120.0 L 85.1,116.1 L 88.4,112.2 L 91.8,108.5 L 95.4,104.9 L 99.1,101.4 L 103.0,98.0 L 106.9,94.7 L 111.0,91.6 L 115.2,88.7 L 119.4,85.8 L 123.8,83.2 L 128.3,80.6 L 132.9,78.2 L 137.5,76.0 L 142.2,73.9 L 147.0,72.0 L 151.8,70.3 L 156.8,68.7 L 161.7,67.3 L 166.7,66.0 L 171.8,64.9 L 176.9,64.0 L 182.0,63.3 L 187.1,62.7" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 143.0,341.6 L 139.2,339.9 L 135.4,338.0 L 131.6,335.9 L 128.0,333.7 L 124.5,331.4 L 121.0,328.9 L 117.7,326.2 L 114.4,323.4 L 111.3,320.4 L 108.2,317.3 L 105.3,314.1 L 102.5,310.7 L 99.8,307.2 L 97.2,303.6 L 94.7,299.9 L 92.4,296.0 L 90.2,292.1 L 88.2,288.0 L 86.2,283.8 L 84.5,279.5 L 82.8,275.2 L 81.3,270.7 L 80.0,266.2 L 78.8,261.6 L 77.7,256.9 L 76.8,252.2 L 76.0,247.4 L 75.4,242.6 L 75.0,237.7 L 74.7,232.8 L 74.5,227.8 L 74.5,222.8 L 74.7,217.8 L 75.0,212.8 L 75.4,207.7 L 76.0,202.7 L 76.8,197.6 L 77.7,192.6 L 78.8,187.6 L 80.0,182.6 L 81.3,177.7 L 82.8,172.7 L 84.5,167.8 L 86.2,163.0 L 88.2,158.2 L 90.2,153.4 L 92.4,148.8 L 94.7,144.2 L 97.2,139.6 L 99.8,135.2 L 102.5,130.8 L 105.3,126.5 L 108.2,122.3 L 111.3,118.3 L 114.4,114.3 L 117.7,110.4 L 121.0,106.7 L 124.5,103.0 L 128.0,99.5 L 131.6,96.2 L 135.4,92.9 L 139.2,89.8 L 143.0,86.8 L 147.0,84.0 L 151.0,81.3 L 155.0,78.8 L 159.1,76.4 L 163.3,74.2 L 167.5,72.2 L 171.8,70.3 L 176.1,68.5 L 180.4,67.0 L 184.7,65.6 L 189.1,64.4" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 179.7,351.6 L 177.4,351.2 L 175.1,350.6 L 172.9,349.8 L 170.6,348.9 L 168.5,347.7 L 166.3,346.4 L 164.2,345.0 L 162.2,343.3 L 160.1,341.5 L 158.2,339.5 L 156.3,337.4 L 154.4,335.1 L 152.6,332.6 L 150.9,330.0 L 149.2,327.2 L 147.6,324.3 L 146.0,321.3 L 144.5,318.0 L 143.1,314.7 L 141.7,311.2 L 140.4,307.6 L 139.2,303.9 L 138.1,300.0 L 137.0,296.1 L 136.0,292.0 L 135.1,287.8 L 134.3,283.5 L 133.6,279.1 L 132.9,274.7 L 132.3,270.1 L 131.8,265.5 L 131.4,260.8 L 131.0,256.0 L 130.8,251.2 L 130.6,246.3 L 130.5,241.3 L 130.5,236.3 L 130.6,231.3 L 130.8,226.2 L 131.0,221.1 L 131.4,216.0 L 131.8,210.9 L 132.3,205.8 L 132.9,200.7 L 133.6,195.5 L 134.3,190.4 L 135.1,185.3 L 136.0,180.3 L 137.0,175.2 L 138.1,170.2 L 139.2,165.3 L 140.4,160.4 L 141.7,155.5 L 143.1,150.7 L 144.5,146.0 L 146.0,141.3 L 147.6,136.7 L 149.2,132.2 L 150.9,127.8 L 152.6,123.5 L 154.4,119.3 L 156.3,115.2 L 158.2,111.2 L 160.1,107.3 L 162.2,103.5 L 164.2,99.9 L 166.3,96.4 L 168.5,93.0 L 170.6,89.7 L 172.9,86.6 L 175.1,83.7 L 177.4,80.8 L 179.7,78.2 L 182.0,75.7 L 184.4,73.3 L 186.7,71.1 L 189.1,69.1 L 191.5,67.2 L 193.9,65.5" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 201.5,352.9 L 201.7,352.6 L 201.9,352.2 L 202.0,351.6 L 202.2,350.7 L 202.3,349.8 L 202.5,348.6 L 202.7,347.3 L 202.8,345.7 L 203.0,344.1 L 203.1,342.2 L 203.3,340.2 L 203.4,338.0 L 203.5,335.7 L 203.7,333.2 L 203.8,330.5 L 203.9,327.7 L 204.0,324.7 L 204.1,321.6 L 204.2,318.4 L 204.3,315.0 L 204.4,311.4 L 204.5,307.8 L 204.6,304.0 L 204.7,300.1 L 204.8,296.1 L 204.8,292.0 L 204.9,287.7 L 204.9,283.4 L 205.0,279.0 L 205.0,274.5 L 205.1,269.9 L 205.1,265.2 L 205.1,260.4 L 205.1,255.6 L 205.2,250.7 L 205.2,245.8 L 205.2,240.8 L 205.2,235.7 L 205.1,230.7 L 205.1,225.6 L 205.1,220.4 L 205.1,215.3 L 205.0,210.1 L 205.0,205.0 L 204.9,199.8 L 204.9,194.7 L 204.8,189.5 L 204.8,184.4 L 204.7,179.3 L 204.6,174.2 L 204.5,169.2 L 204.4,164.2 L 204.3,159.2 L 204.2,154.4 L 204.1,149.5 L 204.0,144.8 L 203.9,140.1 L 203.8,135.5 L 203.7,131.0 L 203.5,126.6 L 203.4,122.2 L 203.3,118.0 L 203.1,113.9 L 203.0,109.9 L 202.8,106.0 L 202.7,102.2 L 202.5,98.5 L 202.3,95.0 L 202.2,91.6 L 202.0,88.4 L 201.9,85.3 L 201.7,82.3 L 201.5,79.5 L 201.3,76.8 L 201.2,74.3 L 201.0,72.0 L 200.8,69.8 L 200.6,67.8 L 200.5,65.9" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 225.5,350.7 L 228.1,350.1 L 230.6,349.3 L 233.1,348.3 L 235.6,347.1 L 238.0,345.8 L 240.4,344.3 L 242.7,342.6 L 245.0,340.7 L 247.2,338.7 L 249.4,336.5 L 251.5,334.2 L 253.5,331.7 L 255.5,329.1 L 257.4,326.3 L 259.2,323.3 L 261.0,320.2 L 262.6,317.0 L 264.2,313.6 L 265.8,310.1 L 267.2,306.5 L 268.6,302.7 L 269.9,298.8 L 271.1,294.9 L 272.2,290.8 L 273.2,286.6 L 274.2,282.3 L 275.0,277.9 L 275.8,273.4 L 276.4,268.8 L 277.0,264.2 L 277.5,259.4 L 277.8,254.7 L 278.1,249.8 L 278.3,244.9 L 278.4,240.0 L 278.4,235.0 L 278.3,230.0 L 278.1,224.9 L 277.8,219.8 L 277.5,214.7 L 277.0,209.6 L 276.4,204.5 L 275.8,199.4 L 275.0,194.3 L 274.2,189.2 L 273.2,184.1 L 272.2,179.0 L 271.1,174.0 L 269.9,169.0 L 268.6,164.1 L 267.2,159.2 L 265.8,154.4 L 264.2,149.6 L 262.6,144.9 L 261.0,140.3 L 259.2,135.7 L 257.4,131.3 L 255.5,126.9 L 253.5,122.6 L 251.5,118.4 L 249.4,114.3 L 247.2,110.4 L 245.0,106.5 L 242.7,102.8 L 240.4,99.2 L 238.0,95.7 L 235.6,92.4 L 233.1,89.2 L 230.6,86.1 L 228.1,83.2 L 225.5,80.4 L 222.9,77.8 L 220.3,75.3 L 217.6,73.0 L 215.0,70.9 L 212.3,68.9 L 209.6,67.1 L 206.8,65.4" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 267.3,336.8 L 271.2,334.7 L 275.0,332.4 L 278.6,330.0 L 282.2,327.4 L 285.7,324.7 L 289.1,321.8 L 292.4,318.8 L 295.6,315.6 L 298.6,312.4 L 301.6,308.9 L 304.4,305.4 L 307.0,301.7 L 309.6,297.9 L 312.0,294.0 L 314.3,290.0 L 316.4,285.9 L 318.4,281.7 L 320.3,277.4 L 322.0,273.0 L 323.6,268.5 L 325.0,264.0 L 326.2,259.4 L 327.3,254.7 L 328.3,249.9 L 329.1,245.1 L 329.7,240.3 L 330.2,235.4 L 330.5,230.4 L 330.7,225.5 L 330.7,220.5 L 330.5,215.5 L 330.2,210.5 L 329.7,205.4 L 329.1,200.4 L 328.3,195.4 L 327.3,190.4 L 326.2,185.4 L 325.0,180.4 L 323.6,175.5 L 322.0,170.6 L 320.3,165.7 L 318.4,160.9 L 316.4,156.1 L 314.3,151.4 L 312.0,146.8 L 309.6,142.2 L 307.0,137.7 L 304.4,133.3 L 301.6,129.0 L 298.6,124.8 L 295.6,120.7 L 292.4,116.6 L 289.1,112.7 L 285.7,108.9 L 282.2,105.2 L 278.6,101.7 L 275.0,98.2 L 271.2,94.9 L 267.3,91.7 L 263.4,88.7 L 259.3,85.8 L 255.2,83.0 L 251.1,80.4 L 246.8,78.0 L 242.5,75.7 L 238.2,73.5 L 233.8,71.6 L 229.4,69.8 L 224.9,68.1 L 220.4,66.6 L 215.9,65.3 L 211.4,64.2" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 346.1,181.3 L 345.2,176.4 L 344.1,171.5 L 342.9,166.7 L 341.4,161.9 L 339.9,157.2 L 338.1,152.5 L 336.2,147.9 L 334.1,143.4 L 331.8,138.9 L 329.4,134.5 L 326.8,130.2 L 324.0,126.0 L 321.2,121.9 L 318.1,117.9 L 314.9,114.0 L 311.6,110.2 L 308.2,106.5 L 304.6,103.0 L 300.9,99.5 L 297.0,96.2 L 293.1,93.1 L 289.0,90.0 L 284.8,87.1 L 280.6,84.4 L 276.2,81.8 L 271.7,79.3 L 267.1,77.0 L 262.5,74.9 L 257.8,72.9 L 253.0,71.1 L 248.2,69.4 L 243.2,67.9 L 238.3,66.6 L 233.3,65.4 L 228.2,64.4 L 223.1,63.6 L 218.0,62.9 L 212.9,62.5" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 253.0,66.9 L 249.0,65.5 L 245.0,64.3 L 240.9,63.2 L 236.7,62.4 L 232.5,61.7 L 228.2,61.1 L 223.9,60.8 L 219.6,60.6 L 215.3,60.6 L 210.9,60.8" stroke="#2a8bad" stroke-width="0.5" stroke-opacity="0.18" fill="none" clip-path="url(#gclip)"/>
<path d="M 92.6,135.2 L 95.9,132.9 L 112.2,139.4 L 131.6,156.5 L 144.6,181.4 L 152.4,189.9 L 162.7,208.9 L 179.9,212.4 L 182.2,217.6 L 166.7,237.3 L 154.4,251.3 L 145.6,267.1 L 148.0,299.4 L 141.8,306.0 L 136.8,312.2 L 121.6,310.2 L 115.1,299.6 L 104.7,284.1 L 98.2,272.2 L 94.1,246.4 L 88.7,242.5 L 86.9,219.6 L 79.4,211.9 L 69.8,210.5 L 65.3,208.1 L 63.2,198.7 L 61.3,180.0 L 66.5,163.0 L 78.4,147.2 L 91.0,136.8 Z" fill="#1a6b40" stroke="#2eaa60" stroke-width="2" stroke-linejoin="round" clip-path="url(#gclip)" filter="url(#land-sh)"/>
<path d="M 90.6,133.6 L 102.0,116.5 L 108.7,119.9 L 118.4,123.4 L 127.3,121.0 L 128.6,123.7 L 120.5,139.1 L 133.1,141.7 L 145.0,134.0 L 141.7,133.5 L 131.4,141.4 L 135.0,137.1 L 130.4,129.0 L 133.9,122.5 L 133.9,113.2 L 145.4,104.7 L 153.9,100.2 L 159.7,97.3 L 168.7,89.5 L 172.4,81.7 L 167.5,80.7 L 147.8,88.6 L 137.4,96.0 L 126.3,106.2 L 121.1,109.3 L 113.5,108.5 L 112.6,113.5 L 102.7,116.9 L 98.8,120.5 L 92.4,134.6 L 90.6,133.6 Z" fill="#2e6090" stroke="#4a90bb" stroke-width="1.5" stroke-linejoin="round" clip-path="url(#gclip)" filter="url(#land-sh)"/>
<path d="M 141.7,133.5 L 155.7,147.3 L 157.6,147.5 L 153.5,156.9 L 147.4,166.3 L 174.2,158.6 L 171.8,146.3 L 173.4,137.0 L 184.7,137.5 L 203.3,120.1 L 231.8,108.3 L 249.5,95.4 L 280.7,94.7 L 294.2,98.9 L 302.0,110.0 L 307.8,122.2 L 314.6,133.2 L 304.8,130.2 L 311.8,144.0 L 320.5,162.7 L 315.1,170.8 L 309.6,178.3 L 309.0,189.3 L 304.8,206.4 L 306.4,226.6 L 298.7,220.9 L 295.6,208.6 L 291.4,193.8 L 276.7,180.9 L 272.2,179.0 L 270.5,171.5 L 282.2,164.2 L 280.7,159.3 L 241.0,150.1 L 230.3,136.7 L 203.8,137.8 L 191.9,147.1 L 184.7,137.5 L 173.4,137.0 L 141.7,133.5 Z" fill="#1e5e88" stroke="#3a85b8" stroke-width="1.5" stroke-linejoin="round" clip-path="url(#gclip)" filter="url(#land-sh)"/>
<path d="M 147.4,166.3 L 153.1,184.8 L 162.7,208.9 L 180.0,207.2 L 200.0,184.4 L 197.7,176.8 L 195.4,176.7 L 183.5,181.6 L 177.7,166.2 L 176.1,161.1 L 161.6,157.7 L 147.4,166.3 Z" fill="#2a8050" stroke="#38b870" stroke-width="1.5" stroke-linejoin="round" clip-path="url(#gclip)" filter="url(#land-sh)"/>
<path d="M 218.5,176.4 L 223.7,183.9 L 224.2,191.6 L 239.4,203.6 L 247.7,221.0 L 250.1,220.7 L 254.6,215.2 L 254.0,207.4 L 267.4,187.6 L 268.6,182.2 L 276.2,178.4 L 270.5,171.5 L 244.7,169.7 L 227.2,171.0 L 218.5,176.4 Z" fill="#1a6b40" stroke="#2eaa60" stroke-width="1.5" stroke-linejoin="round" clip-path="url(#gclip)" filter="url(#land-sh)"/>
<path d="M 177.4,271.7 L 172.6,276.1 L 165.9,284.5 L 164.5,292.9 L 167.6,299.1 L 174.4,299.5 L 176.2,293.5 L 175.6,285.1 L 180.0,276.4 L 177.4,271.7 Z" fill="#1a6b40" stroke="#2eaa60" stroke-width="1.5" stroke-linejoin="round" clip-path="url(#gclip)" filter="url(#land-sh)"/>
<path d="M 193.7,178.8 L 194.9,179.1 L 196.1,179.5 L 197.3,179.9 L 198.6,180.3 L 199.8,180.7 L 201.0,181.1 L 202.2,181.5 L 203.4,181.9 L 204.7,182.3 L 205.9,182.7 L 207.1,183.1 L 208.3,183.5 L 209.5,183.9 L 210.7,184.3 L 212.0,184.7 L 213.2,185.1 L 214.4,185.5 L 215.6,186.0 L 216.8,186.4 L 218.0,186.8 L 219.2,187.2 L 220.4,187.6 L 221.6,188.1 L 222.9,188.5 L 224.1,188.9 L 225.3,189.3 L 226.5,189.8 L 227.6,190.2 L 228.8,190.6 L 230.0,191.0 L 231.2,191.5 L 232.4,191.9 L 233.6,192.3 L 234.8,192.8 L 236.0,193.2" stroke="url(#arc-a)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 193.7,178.8 L 191.3,176.1 L 188.9,173.5 L 186.5,170.8 L 184.1,168.2 L 181.8,165.7 L 179.4,163.1 L 177.1,160.6 L 174.7,158.1 L 172.4,155.6 L 170.1,153.2 L 167.8,150.8 L 165.6,148.4 L 163.3,146.1 L 161.1,143.7 L 158.9,141.5 L 156.7,139.2 L 154.6,137.0 L 152.5,134.9 L 150.4,132.8 L 148.3,130.7 L 146.3,128.7 L 144.3,126.7 L 142.3,124.8 L 140.4,122.9 L 138.5,121.1 L 136.6,119.3 L 134.8,117.6 L 133.0,115.9 L 131.3,114.3 L 129.6,112.7 L 128.0,111.2 L 126.3,109.7 L 124.8,108.3 L 123.3,107.0 L 121.8,105.7" stroke="url(#arc-b)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 193.7,178.8 L 197.3,180.1 L 201.0,181.4 L 204.6,182.7 L 208.2,184.1 L 211.8,185.5 L 215.4,186.9 L 219.0,188.3 L 222.6,189.7 L 226.2,191.1 L 229.8,192.5 L 233.3,194.0 L 236.8,195.4 L 240.3,196.9 L 243.8,198.3 L 247.2,199.8 L 250.6,201.2 L 253.9,202.7 L 257.3,204.2 L 260.6,205.7 L 263.8,207.1 L 267.0,208.6 L 270.2,210.1 L 273.3,211.5 L 276.3,213.0 L 279.3,214.4 L 282.3,215.9 L 285.2,217.3 L 288.0,218.8 L 290.8,220.2 L 293.5,221.6 L 296.2,223.0 L 298.7,224.4 L 301.3,225.7 L 303.7,227.1 L 306.1,228.5" stroke="url(#arc-a)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 146.5,243.9 L 147.7,242.2 L 148.9,240.4 L 150.1,238.5 L 151.3,236.7 L 152.5,234.9 L 153.8,233.1 L 155.0,231.2 L 156.3,229.4 L 157.6,227.5 L 158.9,225.7 L 160.2,223.8 L 161.5,221.9 L 162.8,220.1 L 164.2,218.2 L 165.5,216.3 L 166.8,214.4 L 168.2,212.5 L 169.6,210.7 L 170.9,208.8 L 172.3,206.9 L 173.7,205.0 L 175.1,203.1 L 176.5,201.2 L 177.9,199.3 L 179.3,197.4 L 180.8,195.6 L 182.2,193.7 L 183.6,191.8 L 185.0,189.9 L 186.5,188.0 L 187.9,186.2 L 189.4,184.3 L 190.8,182.5 L 192.2,180.6 L 193.7,178.8" stroke="url(#arc-b)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 146.5,243.9 L 144.7,239.8 L 142.9,235.7 L 141.2,231.5 L 139.6,227.3 L 138.0,223.0 L 136.5,218.8 L 135.0,214.5 L 133.6,210.2 L 132.2,205.9 L 130.9,201.7 L 129.7,197.4 L 128.6,193.1 L 127.5,188.9 L 126.5,184.6 L 125.5,180.4 L 124.6,176.2 L 123.8,172.0 L 123.1,167.9 L 122.4,163.8 L 121.8,159.7 L 121.3,155.7 L 120.8,151.7 L 120.5,147.7 L 120.2,143.9 L 119.9,140.0 L 119.8,136.3 L 119.7,132.6 L 119.7,129.0 L 119.8,125.4 L 119.9,121.9 L 120.1,118.5 L 120.4,115.2 L 120.8,111.9 L 121.3,108.8 L 121.8,105.7" stroke="url(#arc-a)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 80.1,210.9 L 80.4,207.6 L 80.7,204.3 L 81.0,201.0 L 81.4,197.7 L 81.9,194.4 L 82.4,191.2 L 83.0,187.9 L 83.7,184.6 L 84.4,181.4 L 85.2,178.2 L 86.0,174.9 L 86.9,171.7 L 87.8,168.5 L 88.8,165.4 L 89.9,162.2 L 91.0,159.1 L 92.2,156.0 L 93.4,152.9 L 94.7,149.8 L 96.0,146.8 L 97.4,143.8 L 98.8,140.8 L 100.3,137.9 L 101.8,135.0 L 103.4,132.1 L 105.0,129.3 L 106.7,126.5 L 108.4,123.8 L 110.2,121.0 L 112.0,118.4 L 113.9,115.8 L 115.8,113.2 L 117.8,110.6 L 119.7,108.2 L 121.8,105.7" stroke="url(#arc-b)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 80.1,210.9 L 82.4,209.9 L 84.7,208.9 L 87.1,207.9 L 89.5,206.9 L 92.1,205.9 L 94.7,204.9 L 97.4,203.9 L 100.1,202.9 L 103.0,201.9 L 105.9,200.9 L 108.8,199.9 L 111.8,198.9 L 114.9,198.0 L 118.1,197.0 L 121.3,196.0 L 124.5,195.1 L 127.9,194.1 L 131.2,193.1 L 134.6,192.2 L 138.1,191.3 L 141.6,190.3 L 145.1,189.4 L 148.7,188.5 L 152.3,187.6 L 156.0,186.8 L 159.6,185.9 L 163.3,185.0 L 167.1,184.2 L 170.8,183.4 L 174.6,182.6 L 178.4,181.8 L 182.2,181.0 L 186.0,180.2 L 189.9,179.5 L 193.7,178.8" stroke="url(#arc-a)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 236.0,193.2 L 238.3,194.2 L 240.6,195.2 L 242.9,196.2 L 245.2,197.3 L 247.5,198.3 L 249.7,199.3 L 252.0,200.3 L 254.2,201.4 L 256.4,202.4 L 258.6,203.4 L 260.8,204.4 L 263.0,205.5 L 265.1,206.5 L 267.2,207.5 L 269.3,208.5 L 271.4,209.6 L 273.5,210.6 L 275.5,211.6 L 277.5,212.6 L 279.5,213.7 L 281.5,214.7 L 283.4,215.7 L 285.3,216.7 L 287.2,217.7 L 289.1,218.7 L 290.9,219.7 L 292.7,220.7 L 294.5,221.7 L 296.2,222.7 L 297.9,223.7 L 299.6,224.6 L 301.3,225.6 L 302.9,226.6 L 304.5,227.5 L 306.1,228.5" stroke="url(#arc-b)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 306.1,228.5 L 306.8,226.1 L 307.6,223.7 L 308.3,221.3 L 308.9,218.8 L 309.6,216.4 L 310.2,214.0 L 310.7,211.6 L 311.3,209.2 L 311.8,206.7 L 312.3,204.3 L 312.7,201.9 L 313.1,199.5 L 313.5,197.0 L 313.8,194.6 L 314.2,192.2 L 314.4,189.8 L 314.7,187.4 L 314.9,185.0 L 315.1,182.6 L 315.2,180.2 L 315.3,177.8 L 315.4,175.4 L 315.4,173.1 L 315.4,170.7 L 315.4,168.3 L 315.3,166.0 L 315.2,163.7 L 315.1,161.4 L 315.0,159.1 L 314.8,156.8 L 314.5,154.5 L 314.3,152.2 L 314.0,150.0 L 313.7,147.8 L 313.3,145.6" stroke="url(#arc-a)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 133.6,297.9 L 134.6,295.3 L 135.7,292.6 L 136.8,289.8 L 138.0,287.0 L 139.2,284.1 L 140.5,281.1 L 141.8,278.1 L 143.2,275.0 L 144.6,271.8 L 146.1,268.6 L 147.6,265.3 L 149.2,262.0 L 150.8,258.7 L 152.4,255.3 L 154.1,251.8 L 155.8,248.3 L 157.6,244.8 L 159.4,241.3 L 161.2,237.7 L 163.1,234.1 L 165.0,230.4 L 166.9,226.8 L 168.8,223.1 L 170.8,219.4 L 172.8,215.7 L 174.8,212.0 L 176.8,208.3 L 178.9,204.6 L 181.0,200.9 L 183.1,197.2 L 185.2,193.5 L 187.3,189.8 L 189.4,186.1 L 191.5,182.4 L 193.7,178.8" stroke="url(#arc-b)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<path d="M 87.7,139.1 L 89.7,139.5 L 91.8,140.0 L 94.0,140.5 L 96.2,141.1 L 98.5,141.7 L 100.9,142.3 L 103.4,143.0 L 106.0,143.8 L 108.6,144.6 L 111.2,145.4 L 114.0,146.3 L 116.8,147.3 L 119.7,148.2 L 122.6,149.2 L 125.6,150.3 L 128.6,151.4 L 131.7,152.5 L 134.9,153.7 L 138.0,154.9 L 141.3,156.2 L 144.6,157.5 L 147.9,158.8 L 151.3,160.2 L 154.7,161.6 L 158.1,163.0 L 161.6,164.4 L 165.0,165.9 L 168.6,167.4 L 172.1,169.0 L 175.7,170.5 L 179.2,172.1 L 182.8,173.8 L 186.4,175.4 L 190.1,177.1 L 193.7,178.8" stroke="url(#arc-a)" stroke-width="1.8" stroke-opacity="0.65" fill="none" clip-path="url(#gclip)"/>
<circle cx="193.7" cy="178.8" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="146.5" cy="243.9" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="80.1" cy="210.9" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="236.0" cy="193.2" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="306.1" cy="228.5" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="121.8" cy="105.7" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="313.3" cy="145.6" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="133.6" cy="297.9" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="87.7" cy="139.1" r="11" fill="none" stroke="#005f80" stroke-width="1" stroke-opacity="0.4" clip-path="url(#gclip)"/>
<circle cx="193.7" cy="178.8" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="193.7" cy="178.8" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="146.5" cy="243.9" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="146.5" cy="243.9" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="80.1" cy="210.9" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="80.1" cy="210.9" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="236.0" cy="193.2" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="236.0" cy="193.2" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="306.1" cy="228.5" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="306.1" cy="228.5" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="121.8" cy="105.7" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="121.8" cy="105.7" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="313.3" cy="145.6" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="313.3" cy="145.6" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="133.6" cy="297.9" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="133.6" cy="297.9" r="2.2" fill="white" clip-path="url(#gclip)"/>
<circle cx="87.7" cy="139.1" r="5.5" fill="#003a50" stroke="#00bcd4" stroke-width="2" clip-path="url(#gclip)"/>
<circle cx="87.7" cy="139.1" r="2.2" fill="white" clip-path="url(#gclip)"/>
<text x="202.7" y="182.8" text-anchor="start" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Dubai</text>
<text x="137.5" y="247.9" text-anchor="end" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Nairobi</text>
<text x="71.1" y="214.9" text-anchor="end" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Lagos</text>
<text x="245.0" y="197.2" text-anchor="start" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Mumbai</text>
<text x="315.1" y="232.5" text-anchor="start" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Singapore</text>
<text x="112.8" y="109.7" text-anchor="end" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">London</text>
<text x="322.3" y="149.6" text-anchor="start" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Shanghai</text>
<text x="124.6" y="301.9" text-anchor="end" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Johannesburg</text>
<text x="78.7" y="134.1" text-anchor="end" font-family="system-ui,sans-serif" font-size="9" font-weight="700" fill="#003a50" clip-path="url(#gclip)">Casablanca</text>
<circle cx="200" cy="205" r="148" fill="none" stroke="#1a8aad" stroke-width="2" stroke-opacity="0.5"/>
<text x="200" y="404" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" letter-spacing="0.1em" fill="#007090">GLOBAL SETTLEMENT NETWORK</text>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,80 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" fill="none">
<defs>
<radialGradient id="h-ring-bg" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#e8fff2"/>
<stop offset="100%" stop-color="#d0f5e4"/>
</radialGradient>
<radialGradient id="h-center" cx="45%" cy="38%" r="65%">
<stop offset="0%" stop-color="#0d4a24"/>
<stop offset="100%" stop-color="#072a14"/>
</radialGradient>
<radialGradient id="h-hook" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#00d44a"/>
<stop offset="100%" stop-color="#007a28"/>
</radialGradient>
<radialGradient id="h-outer" cx="45%" cy="38%" r="65%">
<stop offset="0%" stop-color="#0f3d1f"/>
<stop offset="100%" stop-color="#071a0f"/>
</radialGradient>
<filter id="h-glow" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
<filter id="h-glow-sm" x="-30%" y="-30%" width="160%" height="160%">
<feGaussianBlur stdDeviation="1.5" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<circle cx="200" cy="200" r="195" fill="url(#h-ring-bg)"/>
<circle cx="200" cy="200" r="175" fill="none" stroke="#00c940" stroke-width="1" stroke-opacity="0.1"/>
<circle cx="200" cy="200" r="155" stroke="#00c940" stroke-width="1" stroke-opacity="0.2" stroke-dasharray="5 7" fill="none"/>
<circle cx="200" cy="200" r="104" stroke="#007a28" stroke-width="1.5" stroke-opacity="0.35" stroke-dasharray="6 5" fill="none"/>
<line x1="200.0" y1="45.0" x2="200.0" y2="96.0" stroke="#00a030" stroke-width="1.5" stroke-opacity="0.4"/>
<line x1="200.0" y1="96.0" x2="200.0" y2="140.0" stroke="#007a28" stroke-width="2" stroke-opacity="0.65"/>
<circle cx="200.0" cy="96.0" r="10" fill="#e0f8ea" stroke="#00c940" stroke-width="1.5"/>
<circle cx="200.0" cy="96.0" r="4.5" fill="url(#h-hook)" filter="url(#h-glow-sm)"/>
<circle cx="200.0" cy="45.0" r="25" fill="url(#h-outer)" stroke="#00c940" stroke-width="1.8" filter="url(#h-glow-sm)"/>
<circle cx="200.0" cy="45.0" r="21" fill="none" stroke="#00c940" stroke-width="0.7" stroke-opacity="0.4"/>
<text x="200.0" y="49.0" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#a0ffc0" letter-spacing="0.03em">Send</text>
<line x1="334.2" y1="122.5" x2="290.1" y2="148.0" stroke="#00a030" stroke-width="1.5" stroke-opacity="0.4"/>
<line x1="290.1" y1="148.0" x2="252.0" y2="170.0" stroke="#007a28" stroke-width="2" stroke-opacity="0.65"/>
<circle cx="290.1" cy="148.0" r="10" fill="#e0f8ea" stroke="#00c940" stroke-width="1.5"/>
<circle cx="290.1" cy="148.0" r="4.5" fill="url(#h-hook)" filter="url(#h-glow-sm)"/>
<circle cx="334.2" cy="122.5" r="25" fill="url(#h-outer)" stroke="#00c940" stroke-width="1.8" filter="url(#h-glow-sm)"/>
<circle cx="334.2" cy="122.5" r="21" fill="none" stroke="#00c940" stroke-width="0.7" stroke-opacity="0.4"/>
<text x="334.2" y="126.5" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#a0ffc0" letter-spacing="0.03em">Receive</text>
<line x1="334.2" y1="277.5" x2="290.1" y2="252.0" stroke="#00a030" stroke-width="1.5" stroke-opacity="0.4"/>
<line x1="290.1" y1="252.0" x2="252.0" y2="230.0" stroke="#007a28" stroke-width="2" stroke-opacity="0.65"/>
<circle cx="290.1" cy="252.0" r="10" fill="#e0f8ea" stroke="#00c940" stroke-width="1.5"/>
<circle cx="290.1" cy="252.0" r="4.5" fill="url(#h-hook)" filter="url(#h-glow-sm)"/>
<circle cx="334.2" cy="277.5" r="25" fill="url(#h-outer)" stroke="#00c940" stroke-width="1.8" filter="url(#h-glow-sm)"/>
<circle cx="334.2" cy="277.5" r="21" fill="none" stroke="#00c940" stroke-width="0.7" stroke-opacity="0.4"/>
<text x="334.2" y="281.5" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#a0ffc0" letter-spacing="0.03em">Trade</text>
<line x1="200.0" y1="355.0" x2="200.0" y2="304.0" stroke="#00a030" stroke-width="1.5" stroke-opacity="0.4"/>
<line x1="200.0" y1="304.0" x2="200.0" y2="260.0" stroke="#007a28" stroke-width="2" stroke-opacity="0.65"/>
<circle cx="200.0" cy="304.0" r="10" fill="#e0f8ea" stroke="#00c940" stroke-width="1.5"/>
<circle cx="200.0" cy="304.0" r="4.5" fill="url(#h-hook)" filter="url(#h-glow-sm)"/>
<circle cx="200.0" cy="355.0" r="25" fill="url(#h-outer)" stroke="#00c940" stroke-width="1.8" filter="url(#h-glow-sm)"/>
<circle cx="200.0" cy="355.0" r="21" fill="none" stroke="#00c940" stroke-width="0.7" stroke-opacity="0.4"/>
<text x="200.0" y="359.0" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#a0ffc0" letter-spacing="0.03em">Escrow</text>
<line x1="65.8" y1="277.5" x2="109.9" y2="252.0" stroke="#00a030" stroke-width="1.5" stroke-opacity="0.4"/>
<line x1="109.9" y1="252.0" x2="148.0" y2="230.0" stroke="#007a28" stroke-width="2" stroke-opacity="0.65"/>
<circle cx="109.9" cy="252.0" r="10" fill="#e0f8ea" stroke="#00c940" stroke-width="1.5"/>
<circle cx="109.9" cy="252.0" r="4.5" fill="url(#h-hook)" filter="url(#h-glow-sm)"/>
<circle cx="65.8" cy="277.5" r="25" fill="url(#h-outer)" stroke="#00c940" stroke-width="1.8" filter="url(#h-glow-sm)"/>
<circle cx="65.8" cy="277.5" r="21" fill="none" stroke="#00c940" stroke-width="0.7" stroke-opacity="0.4"/>
<text x="65.8" y="281.5" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#a0ffc0" letter-spacing="0.03em">NFT</text>
<line x1="65.8" y1="122.5" x2="109.9" y2="148.0" stroke="#00a030" stroke-width="1.5" stroke-opacity="0.4"/>
<line x1="109.9" y1="148.0" x2="148.0" y2="170.0" stroke="#007a28" stroke-width="2" stroke-opacity="0.65"/>
<circle cx="109.9" cy="148.0" r="10" fill="#e0f8ea" stroke="#00c940" stroke-width="1.5"/>
<circle cx="109.9" cy="148.0" r="4.5" fill="url(#h-hook)" filter="url(#h-glow-sm)"/>
<circle cx="65.8" cy="122.5" r="25" fill="url(#h-outer)" stroke="#00c940" stroke-width="1.8" filter="url(#h-glow-sm)"/>
<circle cx="65.8" cy="122.5" r="21" fill="none" stroke="#00c940" stroke-width="0.7" stroke-opacity="0.4"/>
<text x="65.8" y="126.5" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#a0ffc0" letter-spacing="0.03em">Remit</text>
<circle cx="200" cy="200" r="85" fill="#00d44a" fill-opacity="0.08"/>
<circle cx="200" cy="200" r="60" fill="url(#h-center)" stroke="#00c940" stroke-width="3" filter="url(#h-glow)"/>
<circle cx="200" cy="200" r="53" fill="none" stroke="#00c940" stroke-width="0.8" stroke-opacity="0.3"/>
<text x="200" y="191" text-anchor="middle" font-family="system-ui,sans-serif" font-size="13.5" font-weight="800" fill="#c0ffe0" letter-spacing="-0.01em">ACCOUNT</text>
<text x="200" y="209" text-anchor="middle" font-family="ui-monospace,monospace" font-size="11" font-weight="700" fill="#00e055" letter-spacing="0.1em">+ HOOKS</text>
<text x="200" y="225" text-anchor="middle" font-family="ui-monospace,monospace" font-size="8" fill="#00c940" letter-spacing="0.1em" opacity="0.7">ON-LEDGER LOGIC</text>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" fill="none">
<!-- Orbit rings — visible on light background -->
<circle cx="200" cy="200" r="110" stroke="#0f2328" stroke-width="1.2" stroke-opacity="0.18" fill="none" stroke-dasharray="4 5"/>
<circle cx="200" cy="200" r="80" stroke="#0f2328" stroke-width="1.2" stroke-opacity="0.22" fill="none" stroke-dasharray="4 5"/>
<circle cx="200" cy="200" r="52" stroke="#0f2328" stroke-width="1.2" stroke-opacity="0.28" fill="none" stroke-dasharray="4 5"/>
<!-- Green orbit arcs (flow indicators) -->
<path d="M 277.8 277.8 Q 200.0 348.0 122.2 277.8" stroke="#5de48c" stroke-width="1.5" fill="none" stroke-dasharray="4 3"/>
<path d="M 122.2 277.8 Q 52.0 200.0 122.2 122.2" stroke="#5de48c" stroke-width="1.5" fill="none" stroke-dasharray="4 3"/>
<path d="M 122.2 122.2 Q 200.0 52.0 277.8 122.2" stroke="#5de48c" stroke-width="1.5" fill="none" stroke-dasharray="4 3"/>
<path d="M 277.8 122.2 Q 348.0 200.0 277.8 277.8" stroke="#5de48c" stroke-width="1.5" fill="none" stroke-dasharray="4 3"/>
<!-- Outer orbit nodes (white fill, green border) -->
<circle cx="277.8" cy="277.8" r="24" fill="white" stroke="#007b3d" stroke-width="2"/>
<text x="277.8" y="283" text-anchor="middle" font-family="system-ui,sans-serif" font-size="13" font-weight="700" fill="#007b3d">+4%</text>
<circle cx="122.2" cy="277.8" r="24" fill="white" stroke="#007b3d" stroke-width="2"/>
<text x="122.2" y="283" text-anchor="middle" font-family="system-ui,sans-serif" font-size="13" font-weight="700" fill="#007b3d">Fee</text>
<circle cx="122.2" cy="122.2" r="24" fill="white" stroke="#007b3d" stroke-width="2"/>
<text x="122.2" y="117" text-anchor="middle" font-family="system-ui,sans-serif" font-size="10" font-weight="700" fill="#007b3d">Reserve</text>
<circle cx="277.8" cy="122.2" r="24" fill="white" stroke="#007b3d" stroke-width="2"/>
<text x="277.8" y="127" text-anchor="middle" font-family="system-ui,sans-serif" font-size="13" font-weight="700" fill="#007b3d">Burn</text>
<!-- Centre XAH node -->
<circle cx="200" cy="200" r="46" fill="#0f2328"/>
<text x="200" y="196" text-anchor="middle" font-family="system-ui,sans-serif" font-size="24" font-weight="800" fill="white">XAH</text>
<text x="200" y="215" text-anchor="middle" font-family="system-ui,sans-serif" font-size="11" fill="#5de48c">Native</text>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,12 @@
<svg width="180" height="180" viewBox="0 0 180 180" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_834_164)">
<rect width="180" height="180" rx="40" fill="#0E0143"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M97.9191 125.747L106.355 138H137.482L127.298 123.21L97.9191 125.747ZM87.9795 111.309L87.8937 111.184L72.1277 138H42.078L72.9362 89.3546L41 43H72.1277L90.0497 69.1419L105.411 43H135.461L105.007 90.8369L116.936 108.161L88.0408 111.205L87.9795 111.309Z" fill="white"/>
<path d="M167.632 104.614C169.337 105.392 169.535 107.671 167.988 108.715L143.979 124.925C142.432 125.969 140.301 124.996 140.143 123.173L137.688 94.8819C137.53 93.059 139.464 91.7535 141.169 92.5319L167.632 104.614Z" fill="#F7F7F7"/>
</g>
<defs>
<clipPath id="clip0_834_164">
<rect width="180" height="180" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 857 B

View File

@@ -1,10 +1,11 @@
---
import 'vanilla-cookieconsent/dist/cookieconsent.css'
import { createCookieConsentConfig } from '../CookieConsentConfig'
import 'vanilla-cookieconsent/dist/cookieconsent.css'
import { createCookieConsentConfig } from '../CookieConsentConfig'
const locale = (Astro.currentLocale ?? 'en') as 'en' | 'es' | 'ja'
const cookieConsentConfig = createCookieConsentConfig(locale)
const locale = (Astro.currentLocale ?? 'en') as 'en' | 'es' | 'ja'
const cookieConsentConfig = createCookieConsentConfig(locale)
---
<script define:vars={{ cookieConsentConfig }}>
import { run } from 'vanilla-cookieconsent'

View File

@@ -1,19 +1,21 @@
---
import {
Bars3Icon,
ChevronDownIcon,
XMarkIcon,
} from '@heroicons/react/20/solid'
import {
Bars3Icon,
ChevronDownIcon,
XMarkIcon,
} from '@heroicons/react/20/solid'
---
<starlight-menu-button class="print:hidden">
<button
type="button"
aria-expanded="false"
aria-label={Astro.locals.t('menuButton.accessibleLabel')}
aria-controls="starlight__sidebar"
class="sl-flex md:sl-hidden"
>
<Bars3Icon name="open" className="open-menu"/>
<XMarkIcon name="close" className="close-menu"/>
<Bars3Icon name="open" className="open-menu" />
<XMarkIcon name="close" className="close-menu" />
</button>
</starlight-menu-button>

View File

@@ -1,8 +1,8 @@
---
import TableOfContents from '@astrojs/starlight/components/TableOfContents.astro'
import TableOfContents from '@astrojs/starlight/components/TableOfContents.astro'
---
{
Astro.locals.starlightRoute.toc && (
{Astro.locals.starlightRoute.toc && (
<>
<div class="right-sidebar-panel sl-hidden lg:sl-block">
<div class="sl-container">
@@ -10,8 +10,7 @@
</div>
</div>
</>
)
}
)}
<style>
@layer starlight.core {

View File

@@ -1,11 +1,12 @@
---
import Search from '@astrojs/starlight/components/Search.astro'
import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.astro'
import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro'
import Search from '@astrojs/starlight/components/Search.astro'
import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.astro'
import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro'
const _sidebar = Astro.locals.starlightRoute.sidebar
const _sidebar = Astro.locals.starlightRoute.sidebar
---
<SidebarPersister>
<Search class="hidden md:block"/>
<SidebarSublist sublist={_sidebar}/>
<Search class="hidden md:block" />
<SidebarSublist sublist={_sidebar} />
</SidebarPersister>

View File

@@ -1,16 +1,12 @@
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div class="col-span-3">
<slot/>
</div>
{
Astro.locals.starlightRoute.toc && (
<div class="col-span-3"><slot /></div>
{Astro.locals.starlightRoute.toc && (
<aside class="right-sidebar-container col-span-1 print:hidden">
<div class="right-sidebar">
<slot name="right-sidebar" />
</div>
</aside>
)
}
)}
</div>
<style>

View File

@@ -1,8 +1,9 @@
---
const { class: _className } = Astro.props
const { class: _className } = Astro.props
import { Image } from 'astro:assets'
import { Image } from 'astro:assets'
---
<a
href={Astro.props.href}
target="_blank"

View File

@@ -1,142 +1,284 @@
---
import { Image } from 'astro:assets'
import { getRelativeLocaleUrl } from 'astro:i18n'
import logo from '../assets/xahau-logo.svg'
import { Image } from 'astro:assets'
import { getRelativeLocaleUrl } from 'astro:i18n'
import logo from '../assets/xahau-logo.svg'
const locale = Astro.currentLocale ?? 'en'
const locale = Astro.currentLocale ?? 'en'
const translations = {
en: {
tagline: 'This website is open source and open for contributions',
on: 'on',
about: 'About',
features: 'Features',
ecosystem: 'Ecosystem',
roadmap: 'Roadmap',
break: 'Break Xahau',
fraud: 'Report Fraud',
media: 'Media kit',
privacy: 'Privacy Policy',
docs: 'Documentation',
getstarted: 'Get started',
protocol: 'Protocol Reference',
infra: 'Infrastructure',
connect: 'Connect',
events: 'Events',
discord: 'Community Discord',
},
es: {
tagline:
'Este sitio web es de código abierto y está abierto a contribuciones',
on: 'en',
about: 'Acerca de',
features: 'Características',
ecosystem: 'Ecosistema',
roadmap: 'Hoja de ruta',
break: 'Break Xahau',
fraud: 'Reportar Fraude',
media: 'Kit de Prensa',
privacy: 'Política de Privacidad',
docs: 'Documentación',
getstarted: 'Primeros pasos',
protocol: 'Referencia de Protocolo',
infra: 'Infraestructura',
connect: 'Conectar',
events: 'Eventos',
discord: 'Discord de la Comunidad',
},
ja: {
tagline:
'このウェブサイトはオープンソースで、コントリビューションを受け付けています',
on: 'にて',
about: 'Xahauについて',
features: '機能',
ecosystem: 'エコシステム',
roadmap: 'ロードマップ',
break: 'Break Xahau',
fraud: '不正を報告',
media: 'メディアキット',
privacy: 'プライバシーポリシー',
docs: 'ドキュメント',
getstarted: 'はじめる',
protocol: 'プロトコルリファレンス',
infra: 'インフラストラクチャ',
connect: 'コネクト',
events: 'イベント',
discord: 'コミュニティDiscord',
},
}
const translations = {
en: {
tagline: 'Open source and open for contributions',
on: 'on',
about: 'About',
features: 'Features',
ecosystem: 'Ecosystem',
roadmap: 'Roadmap',
break: 'Break Xahau',
fraud: 'Report Fraud',
media: 'Media kit',
privacy: 'Privacy Policy',
docs: 'Documentation',
getstarted: 'Get started',
protocol: 'Protocol Reference',
infra: 'Infrastructure',
connect: 'Connect',
events: 'Events',
discord: 'Community Discord',
copyright: `© ${new Date().getFullYear()} Xahau. Open source`,
},
es: {
tagline: 'Código abierto y abierto a contribuciones',
on: 'en',
about: 'Acerca de',
features: 'Características',
ecosystem: 'Ecosistema',
roadmap: 'Hoja de ruta',
break: 'Break Xahau',
fraud: 'Reportar Fraude',
media: 'Kit de Prensa',
privacy: 'Política de Privacidad',
docs: 'Documentación',
getstarted: 'Primeros pasos',
protocol: 'Referencia de Protocolo',
infra: 'Infraestructura',
connect: 'Conectar',
events: 'Eventos',
discord: 'Discord de la Comunidad',
copyright: `© ${new Date().getFullYear()} Xahau. Código abierto`,
},
ja: {
tagline: 'オープンソースで、コントリビューションを受け付けています',
on: 'にて',
about: 'Xahauについて',
features: '機能',
ecosystem: 'エコシステム',
roadmap: 'ロードマップ',
break: 'Break Xahau',
fraud: '不正を報告',
media: 'メディアキット',
privacy: 'プライバシーポリシー',
docs: 'ドキュメント',
getstarted: 'はじめる',
protocol: 'プロトコルリファレンス',
infra: 'インフラストラクチャ',
connect: 'コネクト',
events: 'イベント',
discord: 'コミュニティDiscord',
copyright: `© ${new Date().getFullYear()} Xahau. オープンソース`,
},
}
const t = translations[locale as 'en' | 'es' | 'ja'] || translations.en
type Locale = 'en' | 'es' | 'ja'
const t = translations[locale as Locale] || translations.en
---
<footer
class="bg-white text-base font-regular text-black **:text-black **:no-underline"
>
<div
class="flex-none container mx-auto py-12 max-w-7xl p-6 grid grid-cols-1 md:grid-cols-10 gap-4"
>
<div class="col-span-1 md:col-span-3 flex flex-col gap-3">
<a href={getRelativeLocaleUrl(locale, '/')}>
<Image src={logo} class="w-1/2" alt="Xahau"/>
</a>
<p>
{t.tagline}
<a href="https://github.com/Xahau/xahau-web" target="_blank"
>{t.on}GitHub</a
<footer class="bg-white border-t border-[#e4edef]">
<div class="mx-auto max-w-7xl px-6 py-14">
<div class="flex flex-col gap-10 md:grid md:grid-cols-12">
<!-- ── Brand column ───────────────────────────────────────────────── -->
<div class="md:col-span-4 flex flex-col gap-5">
<a href={getRelativeLocaleUrl(locale, '/')} class="inline-block -ml-1">
<Image src={logo} width={180} height={32} alt="Xahau" />
</a>
<p class="text-sm text-[#556068] leading-relaxed max-w-xs">
{t.tagline}
<a
href="https://github.com/Xahau/xahau-web"
target="_blank"
rel="noopener noreferrer"
class="text-[#2d3e44] hover:text-[#007b3d] no-underline font-medium transition-colors"
>
GitHub ↗
</a>
</p>
<!-- Social row -->
<div class="flex items-center gap-4 mt-1">
<a
href="https://x.com/XahauNetwork"
target="_blank"
rel="noopener noreferrer"
class="text-[#8fa5ad] hover:text-[#0f2328] no-underline text-sm font-medium transition-colors"
aria-label="X / Twitter"
>X</a
>
<span class="text-[#e4edef]" aria-hidden="true">·</span>
<a
href="https://github.com/Xahau"
target="_blank"
rel="noopener noreferrer"
class="text-[#8fa5ad] hover:text-[#0f2328] no-underline text-sm font-medium transition-colors"
>GitHub</a
>
<span class="text-[#e4edef]" aria-hidden="true">·</span>
<a
href="https://discord.com/invite/UzU58haAn4"
target="_blank"
rel="noopener noreferrer"
class="text-[#8fa5ad] hover:text-[#0f2328] no-underline text-sm font-medium transition-colors"
>Discord</a
>
</div>
</div>
<!-- ── Link columns — 3-col grid on all sizes ───────────────────── -->
<div class="grid grid-cols-3 gap-6 md:contents">
<!-- ── Xahau column ───────────────────────────────────────────────── -->
<div class="md:col-span-2 md:col-start-6 flex flex-col gap-3">
<p class="footer-col-head">Xahau</p>
<a href={getRelativeLocaleUrl(locale, '/about')} class="footer-link"
>{t.about}</a
>
<a
href={getRelativeLocaleUrl(locale, '/features')}
class="footer-link"
>{t.features}</a
>
<a
href={getRelativeLocaleUrl(locale, '/ecosystem')}
class="footer-link"
>{t.ecosystem}</a
>
<a href={getRelativeLocaleUrl(locale, '/roadmap')} class="footer-link"
>{t.roadmap}</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/compliance/responsible-disclosure')}
class="footer-link"
>{t.break}</a
>
<a
href={getRelativeLocaleUrl(locale, '/fraud-report')}
class="footer-link"
>{t.fraud}</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/resources/media-kit')}
class="footer-link"
>{t.media}</a
>
<a
href={getRelativeLocaleUrl(locale, '/privacy-policy')}
class="footer-link"
>{t.privacy}</a
>
</div>
<!-- ── Docs column ────────────────────────────────────────────────── -->
<div class="md:col-span-2 flex flex-col gap-3">
<p class="footer-col-head">{t.docs}</p>
<a href={getRelativeLocaleUrl(locale, '/docs')} class="footer-link"
>{t.getstarted}</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/protocol-reference/transactions')}
class="footer-link"
>{t.protocol}</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/hooks')}
class="footer-link"
>Hooks</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/data-apis')}
class="footer-link"
>Data APIs</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/infrastructure/system-requirements')}
class="footer-link"
>{t.infra}</a
>
<a
href={getRelativeLocaleUrl(locale, '/docs/resources/whitepaper')}
class="footer-link"
>Whitepaper</a
>
</div>
<!-- ── Connect column ─────────────────────────────────────────────── -->
<div class="md:col-span-2 flex flex-col gap-3">
<p class="footer-col-head">{t.connect}</p>
<a href={getRelativeLocaleUrl(locale, '/connect')} class="footer-link"
>{t.events}</a
>
<a href={getRelativeLocaleUrl(locale, '/contest')} class="footer-link"
>Dev Contest</a
>
<a
href="https://x.com/XahauNetwork"
target="_blank"
rel="noopener noreferrer"
class="footer-link"
>X / Twitter ↗</a
>
<a
href="https://github.com/Xahau"
target="_blank"
rel="noopener noreferrer"
class="footer-link"
>GitHub ↗</a
>
<a
href="https://discord.com/invite/UzU58haAn4"
target="_blank"
rel="noopener noreferrer"
class="footer-link"
>{t.discord}
↗</a
>
</div>
</div><!-- /link columns -->
</div>
<!-- ── Bottom bar ──────────────────────────────────────────────────── -->
<div
class="mt-12 pt-6 border-t border-[#e4edef] flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3"
>
<p
class="text-xs text-[#8fa5ad] font-[ui-monospace,monospace] tracking-wide"
>
{t.copyright}
·
<a
href="https://github.com/Xahau/xahau-web"
target="_blank"
rel="noopener noreferrer"
class="hover:text-[#556068] no-underline transition-colors"
>github.com/Xahau/xahau-web</a
>
</p>
</div>
<div class="col-span-1 md:col-span-2 md:col-start-5 flex flex-col gap-3">
<p>
<strong>Xahau</strong>
</p>
<a href={getRelativeLocaleUrl(locale, '/about')}>{t.about}</a>
<a href={getRelativeLocaleUrl(locale, '/features')}>{t.features}</a>
<a href={getRelativeLocaleUrl(locale, '/ecosystem')}>{t.ecosystem}</a>
<a href={getRelativeLocaleUrl(locale, '/roadmap')}>{t.roadmap}</a>
<a
href={getRelativeLocaleUrl(locale, '/docs/compliance/responsible-disclosure')}
<p
class="text-xs text-[#8fa5ad] font-[ui-monospace,monospace] tracking-wide"
>
{t.break}
</a>
<a href={getRelativeLocaleUrl(locale, '/fraud-report')}>{t.fraud}</a>
<a href={getRelativeLocaleUrl(locale, '/docs/resources/media-kit')}>
{t.media}
</a>
<a href={getRelativeLocaleUrl(locale, '/privacy-policy')}>{t.privacy}</a>
</div>
<div class="col-span-1 md:col-span-2 flex flex-col gap-3">
<p>
<strong>{t.docs}</strong>
xahau.network
</p>
<a href={getRelativeLocaleUrl(locale, '/docs')}>{t.getstarted}</a>
<a
href={getRelativeLocaleUrl(locale, '/docs/protocol-reference/transactions')}
>
{t.protocol}
</a>
<a href={getRelativeLocaleUrl(locale, '/docs/hooks')}>Hooks</a>
<a href={getRelativeLocaleUrl(locale, '/docs/data-apis')}>Data APIs</a>
<a
href={getRelativeLocaleUrl(locale, '/docs/infrastructure/system-requirements')}
>
{t.infra}
</a>
<a href={getRelativeLocaleUrl(locale, '/docs/resources/whitepaper')}>
Whitepaper
</a>
</div>
<div class="col-span-1 md:col-span-2 flex flex-col gap-3">
<p>
<strong>{t.connect}</strong>
</p>
<a href={getRelativeLocaleUrl(locale, '/connect')}>{t.events}</a>
<a href={getRelativeLocaleUrl(locale, '/contest')}>Dev Contest</a>
<a href="https://x.com/XahauNetwork" target="_blank">X</a>
<a href="https://github.com/Xahau" target="_blank">GitHub</a>
<a href="https://discord.com/invite/UzU58haAn4" target="_blank">
{t.discord}
</a>
</div>
</div>
</footer>
<style>
.footer-col-head {
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
color: #2d3e44;
margin-bottom: 4px;
}
.footer-link {
font-size: 14px;
color: #556068;
text-decoration: none;
transition: color 0.15s;
line-height: 1.4;
}
.footer-link:hover {
color: #0f2328;
}
</style>

View File

@@ -1,11 +1,12 @@
---
import '../styles/main.css'
import type { FraudReportTranslations } from '../i18n/fraudReportTranslations'
import PageLayout from '../layouts/PageLayout.astro'
import PageSection from './PageSection.astro'
import '../styles/main.css'
import type { FraudReportTranslations } from '../i18n/fraudReportTranslations'
import PageLayout from '../layouts/PageLayout.astro'
import PageSection from './PageSection.astro'
const { t } = Astro.props as { t: FraudReportTranslations }
const { t } = Astro.props as { t: FraudReportTranslations }
---
<PageLayout frontmatter={t.frontmatter} wide="true">
<PageSection align="center">
<p>{t.intro.body}</p>
@@ -17,14 +18,12 @@
{t.intro.bullets.map((bullet) => <li>{bullet}</li>)}
</ul>
{
t.intro.steps.map((step) => (
{t.intro.steps.map((step) => (
<>
<h3 class="mt-4">{step.title}</h3>
<p>{step.body}</p>
</>
))
}
))}
<h2 class="mt-4">{t.intro.expectationTitle}</h2>
<ul class="list-disc list-outside">
@@ -46,6 +45,8 @@
class="w-6 h-6 mr-2 text-green-500"
fill="currentColor"
viewBox="0 0 20 20"
aria-label="Success"
role="img"
>
<path
fill-rule="evenodd"
@@ -74,6 +75,8 @@
class="w-6 h-6 mr-2 text-red-500"
fill="currentColor"
viewBox="0 0 20 20"
aria-label="Error"
role="img"
>
<path
fill-rule="evenodd"
@@ -158,11 +161,9 @@
class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-xahau-green focus:border-transparent transition-all bg-white"
>
<option value="">{t.form.categoryPlaceholder}</option>
{
t.form.categoryOptions.map((option) => (
{t.form.categoryOptions.map((option) => (
<option value={option.value}>{option.label}</option>
))
}
))}
</select>
<p class="text-sm text-gray-500 mt-1">{t.form.categoryHint}</p>
</div>
@@ -210,6 +211,7 @@
<div id="another-report-btn" class="mt-6 hidden">
<button
type="button"
onclick="location.reload()"
class="inline-block px-6 py-3 bg-xahau-green-dark text-white font-semibold rounded-lg hover:bg-xahau-green transition-all no-underline"
>
@@ -224,13 +226,13 @@
{t.privacy.title}
</h3>
<ul class="space-y-2 text-sm text-blue-800">
{
t.privacy.bullets.map((bullet) => (
{t.privacy.bullets.map((bullet) => (
<li class="flex items-start">
<svg
class="w-5 h-5 mr-2 mt-0.5 flex-shrink-0"
fill="currentColor"
viewBox="0 0 20 20"
aria-hidden="true"
>
<path
fill-rule="evenodd"
@@ -240,8 +242,7 @@
</svg>
<span>{bullet}</span>
</li>
))
}
))}
</ul>
</div>

View File

@@ -76,7 +76,7 @@ const nav = {
const XahauLogo = ({ href }) => (
<a href={href} className="-m-1.5 p-1.5">
<span className="sr-only">Xahau</span>
<img src={logo.src} width="222" height="40" alt="Xahau Logo" />
<img src={logo.src} width="200" height="36" alt="Xahau Logo" />
</a>
)
@@ -97,7 +97,7 @@ export default function Header(props) {
name: 'Dev Contest',
href: getRelativeLocaleUrl(currentLocale, '/contest'),
},
{ name: 'X', href: 'https://x.com/XahauNetwork' },
{ name: 'X / Twitter', href: 'https://x.com/XahauNetwork' },
{ name: 'GitHub', href: 'https://github.com/Xahau' },
{ name: t.discord, href: 'https://discord.com/invite/UzU58haAn4' },
]
@@ -166,61 +166,84 @@ export default function Header(props) {
const activeSegment =
currentLocale !== 'en' ? pathSegments[1] : pathSegments[0]
const dropdownItemClass =
'group relative flex items-center gap-x-6 p-2 text-sm/6'
/* ── Shared class fragments ─────────────────────────────────────────────── */
const linkBase =
'no-underline text-sm font-medium transition-colors duration-150'
const linkIdle = 'text-[#2d3e44] hover:text-[#0f2328]'
const linkActive = 'text-[#007b3d]'
const dropdownPanel =
'absolute left-1/2 z-10 mt-3 w-52 -translate-x-1/2 overflow-hidden ' +
'bg-white rounded-xl border border-[#e4edef] shadow-[0_4px_24px_-4px_rgba(15,35,40,0.12)] ' +
'transition data-closed:translate-y-1 data-closed:opacity-0 ' +
'data-enter:duration-150 data-enter:ease-out data-leave:duration-100 data-leave:ease-in'
const dropdownItem =
'no-underline flex items-center px-3 py-2 text-sm text-[#2d3e44] ' +
'hover:text-[#0f2328] hover:bg-[#f4f6f7] rounded-lg transition-colors duration-100'
return (
<header className="header bg-xahau-background z-20">
<header className="sticky top-0 z-20 bg-white border-b border-[#e4edef]">
<nav
aria-label="Global"
className="mx-auto flex max-w-7xl items-center justify-between p-6"
className="mx-auto flex max-w-7xl items-center justify-between px-6 h-[64px]"
>
{/* Logo */}
<div className="flex lg:flex-1">
<XahauLogo href={getRelativeLocaleUrl(currentLocale, '/')} />
</div>
{/* Mobile hamburger */}
<div className="flex lg:hidden">
<button
type="button"
onClick={() => setMobileMenuOpen(true)}
className="border-none bg-transparent -m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700"
className="border-none bg-transparent -m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-[#556068] hover:text-[#0f2328] transition-colors"
>
<span className="sr-only">Open main menu</span>
<Bars3Icon aria-hidden="true" className="size-6" />
<Bars3Icon aria-hidden="true" className="size-5" />
</button>
</div>
{/* Desktop navigation */}
<PopoverGroup className="hidden lg:flex lg:gap-x-12 lg:items-center">
{/* ── Desktop navigation ─────────────────────────────────────────── */}
<PopoverGroup className="hidden lg:flex lg:gap-x-8 lg:items-center">
{navItems.map((navItem) => {
const isActive =
navItem.urlPattern && activeSegment === navItem.urlPattern
/* Plain link */
if (navItem.href) {
return (
<a
key={navItem.name}
href={navItem.href}
className={`selected:no-underline no-underline text-base text-black ${isActive ? 'font-bold' : 'font-regular'}`}
className={`${linkBase} ${isActive ? linkActive : linkIdle} relative`}
>
{navItem.name}
{isActive && (
<span
className="absolute -bottom-[22px] left-0 right-0 h-[2px] bg-[#007b3d] rounded-t-full"
aria-hidden="true"
/>
)}
</a>
)
}
/* Dropdown */
return (
<Popover key={navItem.name} className="relative">
<PopoverButton
className={`selected:no-underline no-underline p-0 border-none text-base text-black flex items-center gap-x-1 bg-transparent hover:cursor-pointer ${isActive ? 'font-bold' : 'font-regular'}`}
className={`${linkBase} ${isActive ? linkActive : linkIdle} p-0 border-none bg-transparent flex items-center gap-x-1 hover:cursor-pointer`}
>
{navItem.name}
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none text-black"
className="size-4 flex-none text-[#8fa5ad] mt-px"
/>
</PopoverButton>
<PopoverPanel
transition
className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in"
>
<div className="p-4">
<PopoverPanel transition className={dropdownPanel}>
<div className="p-1.5">
{navItem.children.map((item) => (
<a
key={item.name}
@@ -228,9 +251,14 @@ export default function Header(props) {
target={
item.href.startsWith('http') ? '_blank' : undefined
}
className="no-underline block font-regular text-white"
rel={
item.href.startsWith('http')
? 'noopener noreferrer'
: undefined
}
className={dropdownItem}
>
<div className={dropdownItemClass}>{item.name}</div>
{item.name}
</a>
))}
</div>
@@ -239,32 +267,37 @@ export default function Header(props) {
)
})}
{/* Language switcher */}
{/* ── Language switcher ─────────────────────────────────────────── */}
<Popover className="relative">
<PopoverButton
className="no-underline p-0 border-none text-black flex items-center gap-x-1 bg-transparent hover:cursor-pointer"
className="no-underline p-0 border-none flex items-center gap-x-1 bg-transparent hover:cursor-pointer text-[#8fa5ad] hover:text-[#556068] transition-colors"
aria-label="Select language"
>
<GlobeAltIcon className="size-5 text-black" />
<GlobeAltIcon className="size-4" />
<ChevronDownIcon
aria-hidden="true"
className="size-4 flex-none text-black"
className="size-3.5 flex-none"
/>
</PopoverButton>
<PopoverPanel
transition
className="absolute right-0 z-10 mt-3 w-40 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in"
className={`${dropdownPanel} right-0 left-auto -translate-x-0 w-40`}
>
<div className="p-2">
<div className="p-1.5">
{languages.map((lang) => (
<a
key={lang.code}
href={langUrl(lang.code)}
className={`no-underline flex items-center gap-x-2 px-3 py-2 text-sm text-white hover:bg-white/10 ${currentLocale === lang.code ? 'font-bold' : 'font-regular'}`}
className={`no-underline flex items-center justify-between px-3 py-2 text-sm rounded-lg transition-colors duration-100
${
currentLocale === lang.code
? 'text-[#007b3d] font-semibold bg-[#f4f6f7]'
: 'text-[#2d3e44] hover:bg-[#f4f6f7] hover:text-[#0f2328]'
}`}
>
<span>{lang.label}</span>
{currentLocale === lang.code && (
<span className="ml-auto"></span>
<span className="size-1.5 rounded-full bg-[#007b3d]" />
)}
</a>
))}
@@ -274,54 +307,62 @@ export default function Header(props) {
</PopoverGroup>
</nav>
{/* Mobile menu */}
{/* ── Mobile menu ────────────────────────────────────────────────────── */}
<Dialog
open={mobileMenuOpen}
onClose={setMobileMenuOpen}
className="lg:hidden"
>
<div className="fixed inset-0 z-50" />
<DialogPanel className="fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-white p-6 sm:max-w-sm sm:ring-1 sm:ring-gray-900/10">
<div className="fixed inset-0 z-50 bg-[#0f2328]/20" />
<DialogPanel className="fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-white p-6 sm:max-w-sm border-l border-[#e4edef]">
<div className="flex items-center justify-between">
<XahauLogo href={getRelativeLocaleUrl(currentLocale, '/')} />
<button
type="button"
onClick={() => setMobileMenuOpen(false)}
className="border-none bg-transparent -m-2.5 rounded-md p-2.5 text-gray-700"
className="border-none bg-transparent -m-2.5 rounded-md p-2.5 text-[#556068] hover:text-[#0f2328] transition-colors"
>
<span className="sr-only">Close menu</span>
<XMarkIcon aria-hidden="true" className="size-6" />
<XMarkIcon aria-hidden="true" className="size-5" />
</button>
</div>
<div className="mt-6 flow-root">
<div className="-my-6 divide-y divide-gray-500/10">
<div className="space-y-2 py-6">
<div className="mt-8 flow-root">
<div className="-my-6 divide-y divide-[#e4edef]">
<div className="space-y-0.5 py-6">
{navItems.map((navItem) => {
const isActive =
navItem.urlPattern && activeSegment === navItem.urlPattern
if (navItem.href) {
return (
<a
key={navItem.name}
href={navItem.href}
className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 hover:bg-gray-50 text-black ${isActive ? 'font-bold' : 'font-regular'}`}
className={`no-underline -mx-3 flex items-center rounded-lg px-3 py-2.5 text-sm font-medium transition-colors
${isActive ? 'text-[#007b3d] bg-[#f4f6f7]' : 'text-[#2d3e44] hover:bg-[#f4f6f7] hover:text-[#0f2328]'}`}
>
{navItem.name}
{isActive && (
<span className="ml-auto size-1.5 rounded-full bg-[#007b3d]" />
)}
</a>
)
}
return (
<Disclosure key={navItem.name} as="div" className="-mx-3">
<DisclosureButton
className={`selected:no-underline no-underline border-none rounded-lg py-2 text-base/7 hover:bg-gray-50 text-black bg-transparent group flex w-full items-center justify-between pr-3.5 pl-3 ${isActive ? 'font-bold' : 'font-regular'}`}
className={`no-underline border-none rounded-lg py-2.5 text-sm font-medium bg-transparent group flex w-full items-center justify-between pr-3.5 pl-3 transition-colors
${isActive ? 'text-[#007b3d]' : 'text-[#2d3e44] hover:bg-[#f4f6f7] hover:text-[#0f2328]'}`}
>
{navItem.name}
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none group-data-open:rotate-180"
className="size-4 flex-none text-[#8fa5ad] group-data-open:rotate-180 transition-transform duration-200"
/>
</DisclosureButton>
<DisclosurePanel className="mt-2 space-y-2">
<DisclosurePanel className="mt-0.5 space-y-0.5 pb-2">
{navItem.children.map((item) => (
<DisclosureButton
key={item.name}
@@ -332,7 +373,12 @@ export default function Header(props) {
? '_blank'
: undefined
}
className="no-underline block rounded-lg py-2 pr-3 pl-6 text-sm/7 font-regular text-black hover:bg-gray-50"
rel={
item.href.startsWith('http')
? 'noopener noreferrer'
: undefined
}
className="no-underline block rounded-lg py-2 pr-3 pl-6 text-sm text-[#556068] hover:bg-[#f4f6f7] hover:text-[#0f2328] transition-colors"
>
{item.name}
</DisclosureButton>
@@ -346,26 +392,27 @@ export default function Header(props) {
{/* Mobile language selector */}
<div className="py-6">
<Disclosure as="div" className="-mx-3">
<DisclosureButton className="border-none rounded-lg py-2 text-base/7 hover:bg-gray-50 text-black bg-transparent group flex w-full items-center justify-between pr-3.5 pl-3 font-regular no-underline">
<DisclosureButton className="border-none rounded-lg py-2.5 text-sm font-medium text-[#2d3e44] bg-transparent group flex w-full items-center justify-between pr-3.5 pl-3 no-underline hover:bg-[#f4f6f7] hover:text-[#0f2328] transition-colors">
<span className="flex items-center gap-x-2">
<GlobeAltIcon className="size-5 text-black" />
<GlobeAltIcon className="size-4 text-[#8fa5ad]" />
{languages.find((l) => l.code === currentLocale)?.label}
</span>
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none group-data-open:rotate-180"
className="size-4 flex-none text-[#8fa5ad] group-data-open:rotate-180 transition-transform duration-200"
/>
</DisclosureButton>
<DisclosurePanel className="mt-2 space-y-1">
<DisclosurePanel className="mt-0.5 space-y-0.5 pb-2">
{languages.map((lang) => (
<a
key={lang.code}
href={langUrl(lang.code)}
className={`no-underline flex items-center gap-x-2 rounded-lg py-2 pr-3 pl-6 text-sm/7 text-black hover:bg-gray-50 ${currentLocale === lang.code ? 'font-bold' : 'font-regular'}`}
className={`no-underline flex items-center justify-between rounded-lg py-2 pr-3 pl-6 text-sm transition-colors
${currentLocale === lang.code ? 'text-[#007b3d] font-semibold' : 'text-[#556068] hover:bg-[#f4f6f7] hover:text-[#0f2328]'}`}
>
<span>{lang.label}</span>
{currentLocale === lang.code && (
<span className="ml-auto text-xs"></span>
<span className="size-1.5 rounded-full bg-[#007b3d]" />
)}
</a>
))}

View File

@@ -1,59 +1,77 @@
---
const { class: _className } = Astro.props
const { class: _className } = Astro.props
import { Image } from 'astro:assets'
import gem1 from '../assets/gems/1.png'
import gem2 from '../assets/gems/2.png'
import gem3 from '../assets/gems/3.png'
import gem4 from '../assets/gems/4.png'
import gem5 from '../assets/gems/5.png'
import gem6 from '../assets/gems/6.png'
import gem7 from '../assets/gems/7.png'
import gem8 from '../assets/gems/8.png'
import gem9 from '../assets/gems/9.png'
import gem10 from '../assets/gems/10.png'
import gem11 from '../assets/gems/11.png'
import gem12 from '../assets/gems/12.png'
import gem13 from '../assets/gems/13.png'
import gem14 from '../assets/gems/14.png'
import gem15 from '../assets/gems/15.png'
import gem16 from '../assets/gems/16.png'
import gem17 from '../assets/gems/17.png'
import { Image } from 'astro:assets'
import enterpriseConsensus from '../assets/enterprise/consensus.svg'
import enterpriseGlobal from '../assets/enterprise/global.svg'
// Enterprise graphics (meaningful illustrations for about/landing pages)
import enterpriseHooks from '../assets/enterprise/hooks.svg'
import enterpriseToken from '../assets/enterprise/token.svg'
const gemMap = {
'1': gem1,
'2': gem2,
'3': gem3,
'4': gem4,
'5': gem5,
'6': gem6,
'7': gem7,
'8': gem8,
'9': gem9,
'10': gem10,
'11': gem11,
'12': gem12,
'13': gem13,
'14': gem14,
'15': gem15,
'16': gem16,
'17': gem17,
}
const enterpriseMap: Record<string, ImageMetadata> = {
hooks: enterpriseHooks,
consensus: enterpriseConsensus,
token: enterpriseToken,
global: enterpriseGlobal,
}
const _gem = gemMap[Astro.props.gem as keyof typeof gemMap] || gem1
import gem1 from '../assets/gems/1.png'
import gem2 from '../assets/gems/2.png'
import gem3 from '../assets/gems/3.png'
import gem4 from '../assets/gems/4.png'
import gem5 from '../assets/gems/5.png'
import gem6 from '../assets/gems/6.png'
import gem7 from '../assets/gems/7.png'
import gem8 from '../assets/gems/8.png'
import gem9 from '../assets/gems/9.png'
import gem10 from '../assets/gems/10.png'
import gem11 from '../assets/gems/11.png'
import gem12 from '../assets/gems/12.png'
import gem13 from '../assets/gems/13.png'
import gem14 from '../assets/gems/14.png'
import gem15 from '../assets/gems/15.png'
import gem16 from '../assets/gems/16.png'
import gem17 from '../assets/gems/17.png'
var _gemSize = 'size-80'
if (Astro.props.gemSize && Astro.props.gemSize === 'large') {
_gemSize = 'size-120 -top-40'
}
const gemMap = {
'1': gem1,
'2': gem2,
'3': gem3,
'4': gem4,
'5': gem5,
'6': gem6,
'7': gem7,
'8': gem8,
'9': gem9,
'10': gem10,
'11': gem11,
'12': gem12,
'13': gem13,
'14': gem14,
'15': gem15,
'16': gem16,
'17': gem17,
}
const _enterpriseGraphic = Astro.props.graphic
? enterpriseMap[Astro.props.graphic as string]
: null
const _gem =
_enterpriseGraphic || gemMap[Astro.props.gem as keyof typeof gemMap] || gem1
var _gemSize = 'size-80'
if (Astro.props.gemSize && Astro.props.gemSize === 'large') {
_gemSize = 'size-120 -top-40'
}
---
<div class:list={["flex",_className]}>
<div class="flex-none container mx-auto py-12 text-left max-w-7xl p-6">
{Astro.props.align ? (
<div class="grid grid-cols-1 md:grid-cols-5" >
{Astro.props.align === "right" && Astro.props.gem && (
{Astro.props.align === "right" && (Astro.props.gem || Astro.props.graphic) && (
<div class="relative overflow-visible invisible md:visible">
<Image loading={Astro.props.loading} src={_gem} alt="Gem" class={`overflow-visible ${_gemSize} absolute inset-0 m-auto -left-60 object-cover`} />
<Image loading={Astro.props.loading} src={_gem} alt="Graphic" width={400} height={400} class={`overflow-visible ${_gemSize} absolute inset-0 m-auto -left-60 object-cover`} />
</div>
)}
<div class={
@@ -65,9 +83,9 @@
}>
<slot />
</div>
{Astro.props.align === "left" && Astro.props.gem && (
{Astro.props.align === "left" && (Astro.props.gem || Astro.props.graphic) && (
<div class="relative overflow-visible invisible md:visible">
<Image loading={Astro.props.loading} src={_gem} alt="Gem" class={`overflow-visible ${_gemSize} absolute inset-0 m-auto -right-150 object-cover`} />
<Image loading={Astro.props.loading} src={_gem} alt="Graphic" width={400} height={400} class={`overflow-visible ${_gemSize} absolute inset-0 m-auto -right-150 object-cover`} />
</div>
)}
</div>

View File

@@ -0,0 +1,481 @@
---
/**
* XahauAbout.astro — Hand-crafted editorial layout (English)
*
* No JSON loops. Three thematic acts: Network · Protocol · Currency.
* Matches XahauFeatures.astro philosophy exactly.
* For ES/JA: see XahauAboutEs.astro / XahauAboutJa.astro
*/
import networkGraphic from '../assets/enterprise/about-network.svg'
import protocolGraphic from '../assets/enterprise/about-protocol.svg'
import xahGraphic from '../assets/enterprise/about-xah.svg'
const videoId = '4pruN6sWJho'
---
<section class="xabout" aria-label="About Xahau">
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════ -->
<header class="xa-head">
<div class="xa-head-title">
<h2>About Xahau</h2>
<p class="xa-sub">
Enterprise L1 blockchain with account-based programmability
</p>
</div>
<div class="xa-chips">
<span class="xa-chip">Est. October 2023</span>
<span class="xa-chip">200k+ Accounts</span>
<span class="xa-chip">~4s Settlement</span>
<span class="xa-chip">10k tx / ledger</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
ACT I — THE NETWORK
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-net">
<p class="xa-act-label"><span class="act-pip pip-grn"></span>The Network</p>
<!-- WHAT IS XAHAU ─ statement opener ──────────────────────────────── -->
<div class="xa-statement stmt-net">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-net">Overview</span>
<h3>
What is Xahau?
<br>
The short explainer
</h3>
<p>
Xahau is a L1 blockchain with a unique composition of features and a
fresh approach to blockchain programmability, also known as smart
contracts.
</p>
<p>
The long-term proven technology settles transactions in ~4 seconds at
very low costs down to fractions of a USD cent. It is scalable,
currently with up to 10,000 transactions per ledger, and is an
inherently green and energy friendly blockchain.
</p>
<p>
Xahau offers native features for issuing and trading currencies on the
built-in decentralised exchange, native non-fungible tokens, and
endless opportunities for DeFi with custom logic through Xahau smart
contracts, known as Hooks.
</p>
<p>
Hooks lives on accounts, making it a fresh take on how custom logic
can be used to act on account-based events, such as receiving
transactions. Hooks are currently developed in C, but JavaScript
support is already developed and in testing, with other programming
languages in the scope as well. This makes the world of smart
contracts available, without a steep learning curve, to millions of
developers.
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={networkGraphic.src}
width="380"
height="380"
alt="Xahau network topology illustration"
>
</div>
</div>
<!-- VIDEO ─────────────────────────────────────────────────────────── -->
<div class="xa-video-section">
<div class="xa-video-wrap">
<iframe
src={`https://www.youtube.com/embed/${videoId}?si=IlxKDlD2LFLwS6EK`}
title="Xahau overview"
frameborder="0"
allow="
accelerometer;
autoplay;
clipboard-write;
encrypted-media;
gyroscope;
picture-in-picture;
web-share;
"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen
></iframe>
</div>
</div>
</div><!-- /act-net -->
<!-- ══════════════════════════════════════════════════════════════════════
ACT II — THE PROTOCOL
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-proto">
<p class="xa-act-label">
<span class="act-pip pip-teal"></span>The Protocol
</p>
<!-- TECHNOLOGY ─ statement opener ────────────────────────────────── -->
<div class="xa-statement stmt-proto">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-proto">Technology</span>
<h3>
What is the technology
<br>
behind Xahau?
</h3>
<p>
Xahau is proven technology, as it is an evolved iteration of the XRP
Ledger code, enhanced with smart contract, account-based
programmability (Hooks), and equal support for issued currencies in
native features such as escrows and payment channels.
</p>
<p>
Xahau, like the XRPL, uses a Federated Consensus mechanism as its
method of validating transactions. Transactions are confirmed through
a consensus protocol, in which designated independent servers called
validators come to an agreement on the order and outcome of
transactions. All servers in the network process each transaction
according to the same rules, and any transaction that follows the
protocol is confirmed right away. All transactions are public and
transparent, and anyone can operate a validator.
</p>
<p>
Xahau introduces a governance game to ensure a community-centric
approach towards decision-making of the network. To play the game, the
members of the tables cast votes. The topics discussed on this 2
layers table system include seats, hooks and rewards topics.
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={protocolGraphic.src}
width="380"
height="380"
alt="Xahau protocol architecture illustration"
>
</div>
</div>
</div><!-- /act-proto -->
<!-- ══════════════════════════════════════════════════════════════════════
ACT III — THE CURRENCY
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-curr">
<p class="xa-act-label">
<span class="act-pip pip-vlt"></span>The Currency
</p>
<!-- XAH ─ statement opener ────────────────────────────────────────── -->
<div class="xa-statement stmt-curr">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-curr">Economics</span>
<h3>
XAH, the native
<br>
currency of Xahau
</h3>
<p>
The native currency on Xahau is called XAH and is an inflationary
currency. Every account can participate in balance adjustment by
interacting with a Hook on the genesis account, monthly accruing 4% of
the account balance.
</p>
<p>
XAH is used to prevent network spam, by adding a cost of transacting.
Normal transactions cost fractions of a XAH, while the price of
transacting increases if interacting with Hooks. XAH is also required
as a locked balance, or reserve, to own an account, own objects, or
storing data for smart contract consumption.
</p>
<p>
Because of Hooks, the burn-rate of XAH is higher compared to that of
XRPL. For projects that rely on Hooks for custom logic, it is
recommended that they keep a balance of XAH that can generate a
monthly balance adjustment to pay for fees.
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={xahGraphic.src}
width="380"
height="380"
alt="XAH currency illustration"
>
</div>
</div>
</div><!-- /act-curr -->
</section>
<style>
/* ══════════════════════════════════════════════════════════════════════════
Design tokens — mirrors XahauFeatures exactly
══════════════════════════════════════════════════════════════════════════ */
.xabout {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xabout * {
box-sizing: border-box;
}
/* ══════════════════════════════════════════════════════════════════════════
Page header
══════════════════════════════════════════════════════════════════════════ */
.xa-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xabout h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xa-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xa-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xa-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
/* ══════════════════════════════════════════════════════════════════════════
Acts
══════════════════════════════════════════════════════════════════════════ */
.xa-act {
padding-top: 52px;
}
.xa-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 44px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
/* ══════════════════════════════════════════════════════════════════════════
Labels
══════════════════════════════════════════════════════════════════════════ */
.xa-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-net {
color: var(--grn2);
background: rgba(0, 122, 40, 0.1);
}
.lbl-proto {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.lbl-curr {
color: var(--vlt2);
background: rgba(78, 24, 184, 0.1);
}
/* ══════════════════════════════════════════════════════════════════════════
Statement sections
══════════════════════════════════════════════════════════════════════════ */
.xa-statement {
display: flex;
align-items: center;
}
.xa-stmt-body {
flex: 0 0 57%;
max-width: 57%;
padding: 64px 0 64px 28px;
}
.xa-stmt-graphic {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 8px 32px 16px;
opacity: 0.95;
}
.xa-stmt-graphic img {
width: 100%;
max-width: 340px;
height: auto;
display: block;
}
.xa-statement h3 {
margin: 0 0 22px;
font-size: 40px;
font-weight: 800;
line-height: 1.12;
letter-spacing: -0.03em;
color: var(--ink);
}
/* Gradient text per act */
.stmt-net h3 {
background: linear-gradient(140deg, #004d1a 15%, var(--grn-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-proto h3 {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-curr h3 {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xa-statement p {
font-size: 15.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 16px;
}
.xa-statement p:last-child {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Video section
══════════════════════════════════════════════════════════════════════════ */
.xa-video-section {
padding: 20px 28px 52px;
}
.xa-video-wrap {
position: relative;
width: 100%;
max-width: 780px;
margin: 0 auto;
aspect-ratio: 16 / 9;
border-radius: 16px;
overflow: hidden;
background: #000;
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.08),
0 24px 56px -16px rgba(0, 120, 40, 0.18);
}
.xa-video-wrap iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: none;
display: block;
}
/* ══════════════════════════════════════════════════════════════════════════
Responsive
══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
.xa-statement {
flex-direction: column;
align-items: flex-start;
}
.xa-stmt-body {
flex: none;
max-width: 100%;
}
.xa-stmt-graphic {
width: 100%;
padding: 0 0 32px;
opacity: 0.85;
}
.xa-stmt-graphic img {
max-width: 240px;
margin: 0 auto;
}
}
@media (max-width: 640px) {
.xabout {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xabout h2 {
font-size: 28px;
}
.xa-statement h3 {
font-size: 26px;
}
.xa-head {
flex-direction: column;
gap: 14px;
}
.xa-stmt-body {
padding: 44px 0 44px 22px;
}
.xa-video-section {
padding: 12px 22px 40px;
}
}
</style>

View File

@@ -0,0 +1,457 @@
---
/**
* XahauAboutEs.astro — Versión en español, layout editorial
*
* Sin JSON, sin bucles para la prosa. Tres actos temáticos.
* Misma filosofía que XahauFeaturesEs.astro
*/
import networkGraphic from '../assets/enterprise/about-network.svg'
import protocolGraphic from '../assets/enterprise/about-protocol.svg'
import xahGraphic from '../assets/enterprise/about-xah.svg'
const videoId = '4pruN6sWJho'
---
<section class="xabout" aria-label="Sobre Xahau">
<!-- ══ ENCABEZADO ═══════════════════════════════════════════════════════ -->
<header class="xa-head">
<div class="xa-head-title">
<h2>Sobre Xahau</h2>
<p class="xa-sub">
Blockchain L1 empresarial con programabilidad basada en cuentas
</p>
</div>
<div class="xa-chips">
<span class="xa-chip">Est. octubre 2023</span>
<span class="xa-chip">200k+ cuentas</span>
<span class="xa-chip">~4s de liquidación</span>
<span class="xa-chip">10k tx / ledger</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
ACTO I — LA RED
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-net">
<p class="xa-act-label"><span class="act-pip pip-grn"></span>La Red</p>
<div class="xa-statement stmt-net">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-net">Descripción general</span>
<h3>
¿Qué es Xahau?
<br>
La explicación breve
</h3>
<p>
Xahau es una blockchain L1 construida para la programabilidad seria —
combinando tecnología de ledger contrastada con un enfoque poderoso y
distintivo hacia los contratos inteligentes, conocidos como Hooks.
</p>
<p>
La tecnología liquida transacciones en aproximadamente 4 segundos a
costes de apenas fracciones de un centavo de USD. Con capacidad para
procesar hasta 10.000 transacciones por ledger, la red es
inherentemente verde y eficiente energéticamente por diseño.
</p>
<p>
Xahau ofrece características nativas para emitir y negociar monedas en
el exchange descentralizado integrado, tokens no fungibles nativos,
transacciones atómicas multi-activo mediante el transactor Remit, y
oportunidades ilimitadas para DeFi a través de Hooks — el sistema de
contratos inteligentes basado en cuentas de Xahau.
</p>
<p>
Los Hooks residen directamente en las cuentas, respondiendo a eventos
de transacción como pagos recibidos, enviados o enrutados.
Desarrollados originalmente en C, los Hooks ahora soportan cualquier
lenguaje compilable con WebAssembly. El soporte para Hooks en
JavaScript (JSHooks) avanza a través de auditorías de seguridad,
acercando las finanzas programables a decenas de millones de
desarrolladores en todo el mundo.
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={networkGraphic.src}
width="380"
height="380"
alt="Xahau network topology illustration"
>
</div>
</div>
<div class="xa-video-section">
<div class="xa-video-wrap">
<iframe
src={`https://www.youtube.com/embed/${videoId}?si=IlxKDlD2LFLwS6EK`}
title="Descripción general de Xahau"
frameborder="0"
allow="
accelerometer;
autoplay;
clipboard-write;
encrypted-media;
gyroscope;
picture-in-picture;
web-share;
"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen
></iframe>
</div>
</div>
</div><!-- /act-net -->
<!-- ══════════════════════════════════════════════════════════════════════
ACTO II — EL PROTOCOLO
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-proto">
<p class="xa-act-label">
<span class="act-pip pip-teal"></span>El Protocolo
</p>
<div class="xa-statement stmt-proto">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-proto">Tecnología</span>
<h3>
¿Cuál es la tecnología
<br>
detrás de Xahau?
</h3>
<p>
Xahau es tecnología probada y lista para producción — una iteración
evolucionada del código del XRP Ledger, mejorada con programabilidad
de contratos inteligentes basada en cuentas (Hooks), soporte nativo
igualitario para monedas emitidas en características como garantías y
canales de pago, y una capa de transacciones atómicas que permite
ejecutar operaciones complejas y de múltiples pasos como una unidad
indivisible.
</p>
<p>
Xahau utiliza un mecanismo de Consenso Federado para validar
transacciones. Servidores independientes llamados validadores alcanzan
un acuerdo sobre el orden y resultado de cada transacción. Todos los
servidores procesan cada transacción según las mismas reglas, y
cualquier transacción válida se confirma en segundos. Toda la
actividad es pública y transparente, y cualquiera puede operar un
validador.
</p>
<p>
La gobernanza de la red está guiada por un juego de gobernanza
estructurado que garantiza una toma de decisiones impulsada por la
comunidad. Los participantes en un sistema de mesas de dos niveles
emiten votos sobre asientos de red, enmiendas de Hooks y parámetros de
recompensas — otorgando al ecosistema una influencia genuina y
continua sobre la dirección de la red.
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={protocolGraphic.src}
width="380"
height="380"
alt="Xahau protocol architecture illustration"
>
</div>
</div>
</div><!-- /act-proto -->
<!-- ══════════════════════════════════════════════════════════════════════
ACTO III — LA MONEDA
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-curr">
<p class="xa-act-label"><span class="act-pip pip-vlt"></span>La Moneda</p>
<div class="xa-statement stmt-curr">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-curr">Economía</span>
<h3>
XAH, la moneda nativa
<br>
de Xahau
</h3>
<p>
La moneda nativa de Xahau es XAH — un activo inflacionario diseñado
para recompensar la participación activa. Cada cuenta puede reclamar
un ajuste de saldo mensual interactuando con un Hook en la cuenta
génesis, acumulando un 4% del saldo de la cuenta cada mes.
</p>
<p>
XAH actúa como mecanismo anti-spam de la red, añadiendo un coste a
cada transacción. Las transacciones estándar cuestan fracciones de un
solo XAH; las operaciones potenciadas por Hooks tienen comisiones
proporcionalmente más altas, reflejando su peso computacional en la
cadena. XAH también se requiere como reserva bloqueada para mantener
cuentas, poseer objetos y almacenar datos utilizados por contratos
inteligentes.
</p>
<p>
XAH está disponible en exchanges principales como Bitrue, BitMart y
CoinEx, y cuenta con soporte en carteras hardware Ledger — haciéndolo
cada vez más accesible para usuarios de todo el mundo. Los proyectos
que dependen de Hooks para lógica personalizada deben mantener un
saldo de XAH suficiente para generar ajustes mensuales que cubran las
comisiones continuas.
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={xahGraphic.src}
width="380"
height="380"
alt="XAH currency illustration"
>
</div>
</div>
</div><!-- /act-curr -->
</section>
<style>
.xabout {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xabout * {
box-sizing: border-box;
}
.xa-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xabout h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xa-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xa-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xa-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
.xa-act {
padding-top: 52px;
}
.xa-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 44px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
.xa-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-net {
color: var(--grn2);
background: rgba(0, 122, 40, 0.1);
}
.lbl-proto {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.lbl-curr {
color: var(--vlt2);
background: rgba(78, 24, 184, 0.1);
}
.xa-statement {
display: flex;
align-items: center;
}
.xa-stmt-body {
flex: 0 0 57%;
max-width: 57%;
padding: 64px 0 64px 28px;
}
.xa-stmt-graphic {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 8px 32px 16px;
opacity: 0.95;
}
.xa-stmt-graphic img {
width: 100%;
max-width: 340px;
height: auto;
display: block;
}
.xa-statement h3 {
margin: 0 0 22px;
font-size: 40px;
font-weight: 800;
line-height: 1.12;
letter-spacing: -0.03em;
color: var(--ink);
}
.stmt-net h3 {
background: linear-gradient(140deg, #004d1a 15%, var(--grn-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-proto h3 {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-curr h3 {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xa-statement p {
font-size: 15.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 16px;
}
.xa-statement p:last-child {
margin-bottom: 0;
}
.xa-video-section {
padding: 20px 28px 52px;
}
.xa-video-wrap {
position: relative;
width: 100%;
max-width: 780px;
margin: 0 auto;
aspect-ratio: 16 / 9;
border-radius: 16px;
overflow: hidden;
background: #000;
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.08),
0 24px 56px -16px rgba(0, 120, 40, 0.18);
}
.xa-video-wrap iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: none;
display: block;
}
@media (max-width: 900px) {
.xa-statement {
flex-direction: column;
align-items: flex-start;
}
.xa-stmt-body {
flex: none;
max-width: 100%;
}
.xa-stmt-graphic {
width: 100%;
padding: 0 0 32px;
opacity: 0.85;
}
.xa-stmt-graphic img {
max-width: 240px;
margin: 0 auto;
}
}
@media (max-width: 640px) {
.xabout {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xabout h2 {
font-size: 28px;
}
.xa-statement h3 {
font-size: 26px;
}
.xa-head {
flex-direction: column;
gap: 14px;
}
.xa-stmt-body {
padding: 44px 0 44px 22px;
}
.xa-video-section {
padding: 12px 22px 40px;
}
}
</style>

View File

@@ -0,0 +1,411 @@
---
/**
* XahauAboutJa.astro — 日本語版 手作りエディトリアルレイアウト
*
* JSONなし、ループなし。三つのテーマ別アクト。
* XahauFeaturesJa.astro と同じ哲学。
*/
import networkGraphic from '../assets/enterprise/about-network.svg'
import protocolGraphic from '../assets/enterprise/about-protocol.svg'
import xahGraphic from '../assets/enterprise/about-xah.svg'
const videoId = '4pruN6sWJho'
---
<section class="xabout" aria-label="Xahauについて">
<!-- ══ ページヘッダー ════════════════════════════════════════════════════ -->
<header class="xa-head">
<div class="xa-head-title">
<h2>Xahauについて</h2>
<p class="xa-sub">
アカウントベースプログラマビリティを持つエンタープライズL1ブロックチェーン
</p>
</div>
<div class="xa-chips">
<span class="xa-chip">2023年10月設立</span>
<span class="xa-chip">20万以上のアカウント</span>
<span class="xa-chip">~4秒で決済</span>
<span class="xa-chip">10k tx / レジャー</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
アクト I — ネットワーク
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-net">
<p class="xa-act-label">
<span class="act-pip pip-grn"></span>ネットワーク
</p>
<div class="xa-statement stmt-net">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-net">概要</span>
<h3>
Xahauとは何ですか
<br>
簡単な説明
</h3>
<p>
Xahauは、本格的なプログラマビリティのために構築されたL1ブロックチェーンです。実績ある台帳技術と、Hooksと呼ばれるスマートコントラクトへの強力かつ独自のアプローチを組み合わせています。
</p>
<p>
この技術は約4秒でトランザクションを決済し、コストは1米ドルセントの端数程度の低水準です。1レジャーあたり最大10,000トランザクションを処理でき、設計上、本質的にグリーンでエネルギー効率の高いブロックチェーンです。
</p>
<p>
Xahauは、組み込みの分散型取引所での通貨の発行・取引、ネイティブな非代替トークン、Remitトランザクターによるアトミックなマルチアセットトランザクション、そしてXahauのアカウントベースのスマートコントラクトシステムであるHooksによる無限のDeFiの可能性といったネイティブ機能を提供します。
</p>
<p>
HooksはアカウントにHooksが直接存在し、支払いの受信・送信・ルーティングといったトランザクションイベントに応答します。当初はCで開発されていましたが、現在はWebAssemblyに対応するあらゆる言語をサポートしています。JavaScriptによるHooksサポートJSHooksはセキュリティ監査を通じて前進しており、世界中の数千万人の開発者がプログラマブルファイナンスに手が届くようになっています。
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={networkGraphic.src}
width="380"
height="380"
alt="Xahau network topology illustration"
>
</div>
</div>
<div class="xa-video-section">
<div class="xa-video-wrap">
<iframe
src={`https://www.youtube.com/embed/${videoId}?si=IlxKDlD2LFLwS6EK`}
title="Xahau の概要"
frameborder="0"
allow="
accelerometer;
autoplay;
clipboard-write;
encrypted-media;
gyroscope;
picture-in-picture;
web-share;
"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen
></iframe>
</div>
</div>
</div><!-- /act-net -->
<!-- ══════════════════════════════════════════════════════════════════════
アクト II — プロトコル
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-proto">
<p class="xa-act-label"><span class="act-pip pip-teal"></span>プロトコル</p>
<div class="xa-statement stmt-proto">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-proto">技術</span>
<h3>
Xahauの背後にある
<br>
技術は何ですか?
</h3>
<p>
Xahauは実証済みの本番環境対応技術です。アカウントベースのスマートコントラクトプログラマビリティHooks、エスクローや支払いチャンネルなどのネイティブ機能での発行通貨への平等なサポート、そして複雑な複数ステップの操作を単一の分割不可能なユニットとして実行できるアトミックトランザクション層を加えて強化された、XRPレジャーコードベースの進化した反復です。
</p>
<p>
Xahauは、トランザクションを検証する方法として連合コンセンサスメカニズムを使用します。バリデーターと呼ばれる独立したサーバーが、各トランザクションの順序と結果について合意に達します。すべてのサーバーは同じルールに従って各トランザクションを処理し、有効なトランザクションは数秒以内に確認されます。すべての活動は公開かつ透明であり、誰でもバリデーターを運営できます。
</p>
<p>
ネットワークのガバナンスは、コミュニティ主導の意思決定を確保する構造化されたガバナンスゲームによって導かれています。二層テーブルシステムの参加者が、ネットワークのシート、Hookの修正、報酬パラメータについて投票を行い、エコシステムがネットワークの方向性に対して真の継続的な影響力を持ちます。
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={protocolGraphic.src}
width="380"
height="380"
alt="Xahau protocol architecture illustration"
>
</div>
</div>
</div><!-- /act-proto -->
<!-- ══════════════════════════════════════════════════════════════════════
アクト III — 通貨
══════════════════════════════════════════════════════════════════════════ -->
<div class="xa-act act-curr">
<p class="xa-act-label"><span class="act-pip pip-vlt"></span>通貨</p>
<div class="xa-statement stmt-curr">
<div class="xa-stmt-body">
<span class="xa-lbl lbl-curr">エコノミクス</span>
<h3>
XAHXahauの
<br>
ネイティブ通貨
</h3>
<p>
Xahauのネイティブ通貨はXAHです。積極的な参加を報酬として返すように設計されたインフレ資産です。すべてのアカウントは、ジェネシスアカウントのHookと対話することで月次残高調整を請求でき、毎月アカウント残高の4%を積み立てます。
</p>
<p>
XAHはネットワークのアンチスパムメカニズムとして機能し、すべてのトランザクションにコストを付加します。標準的なトランザクションは1XAHの端数程度のコストですが、Hooksを活用した操作はオンチェーンの計算負荷を反映してそれに比例した高い手数料が発生します。XAHはまた、アカウントの維持、オブジェクトの保有、スマートコントラクトが使用するデータの保存のために、ロックされた準備金としても必要です。
</p>
<p>
XAHはBitrue、BitMart、CoinExなどの主要取引所で利用可能で、Ledgerハードウェアウォレットもサポートされており、世界中のユーザーにとってますますアクセスしやすくなっています。カスタムロジックのためにHooksに依存するプロジェクトは、継続的な手数料をカバーするための月次調整を生成するのに十分なXAH残高を維持することをお勧めします。
</p>
</div>
<div class="xa-stmt-graphic">
<img
src={xahGraphic.src}
width="380"
height="380"
alt="XAH currency illustration"
>
</div>
</div>
</div><!-- /act-curr -->
</section>
<style>
.xabout {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xabout * {
box-sizing: border-box;
}
.xa-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xabout h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xa-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xa-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xa-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
.xa-act {
padding-top: 52px;
}
.xa-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 44px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
.xa-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-net {
color: var(--grn2);
background: rgba(0, 122, 40, 0.1);
}
.lbl-proto {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.lbl-curr {
color: var(--vlt2);
background: rgba(78, 24, 184, 0.1);
}
.xa-statement {
display: flex;
align-items: center;
}
.xa-stmt-body {
flex: 0 0 57%;
max-width: 57%;
padding: 64px 0 64px 28px;
}
.xa-stmt-graphic {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 8px 32px 16px;
opacity: 0.95;
}
.xa-stmt-graphic img {
width: 100%;
max-width: 340px;
height: auto;
display: block;
}
.xa-statement h3 {
margin: 0 0 22px;
font-size: 40px;
font-weight: 800;
line-height: 1.18;
letter-spacing: -0.02em;
color: var(--ink);
}
.stmt-net h3 {
background: linear-gradient(140deg, #004d1a 15%, var(--grn-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-proto h3 {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-curr h3 {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xa-statement p {
font-size: 15.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 16px;
}
.xa-statement p:last-child {
margin-bottom: 0;
}
.xa-video-section {
padding: 20px 28px 52px;
}
.xa-video-wrap {
position: relative;
width: 100%;
max-width: 780px;
margin: 0 auto;
aspect-ratio: 16 / 9;
border-radius: 16px;
overflow: hidden;
background: #000;
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.08),
0 24px 56px -16px rgba(0, 120, 40, 0.18);
}
.xa-video-wrap iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: none;
display: block;
}
@media (max-width: 900px) {
.xa-statement {
flex-direction: column;
align-items: flex-start;
}
.xa-stmt-body {
flex: none;
max-width: 100%;
}
.xa-stmt-graphic {
width: 100%;
padding: 0 0 32px;
opacity: 0.85;
}
.xa-stmt-graphic img {
max-width: 240px;
margin: 0 auto;
}
}
@media (max-width: 640px) {
.xabout {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xabout h2 {
font-size: 28px;
}
.xa-statement h3 {
font-size: 26px;
}
.xa-head {
flex-direction: column;
gap: 14px;
}
.xa-stmt-body {
padding: 44px 0 44px 22px;
}
.xa-video-section {
padding: 12px 22px 40px;
}
}
</style>

View File

@@ -0,0 +1,739 @@
---
/**
* XahauConnect.astro — Editorial events page
*
* All events driven from src/data/connect.json.
* Upcoming / past split is determined at build time by comparing
* each event's `date` field against today's date — no manual tagging needed.
*
* To add a new event: add an entry to connect.json with a future date.
* It will automatically move to Past Events after that date passes and the
* site is rebuilt.
*/
import connectData from '../data/connect.json'
type Locale = 'en' | 'es' | 'ja'
const locale = (Astro.currentLocale ?? 'en') as Locale
// ── Date-based split (build time) ────────────────────────────────────────────
const today = new Date()
today.setHours(0, 0, 0, 0)
const allEvents = connectData.events
const upcoming = allEvents
.filter((e) => new Date(e.date) >= today)
.sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime())
const past = allEvents
.filter((e) => new Date(e.date) < today)
.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime())
const about = connectData.about
const mission = about.mission
// ── Static UI strings ─────────────────────────────────────────────────────────
const ui = {
en: {
page_title: 'Xahau Connect',
page_sub:
'Professional blockchain events for serious discussion and innovation',
chip_inftf: 'By INFTF',
chip_location: 'Madrid, Spain',
chip_upcoming: (n: number) => (n === 1 ? '1 Upcoming' : `${n} Upcoming`),
lbl_upcoming: 'Upcoming Events',
lbl_past: 'Past Events',
lbl_about: 'About',
lbl_contact: 'Get Involved',
no_upcoming: 'No events currently scheduled.',
no_upcoming_sub:
'Follow @XahauNetwork or email connect@xahau.org for announcements.',
location_view: 'View on map',
about_title: 'About Xahau Connect',
mission_title: 'Our Mission',
contact_title: 'Speakers, Sponsors & Contact',
contact_body:
"We're grateful to our partners who support Xahau Connect's mission of fostering professional blockchain discourse. Partner and speaker details will be announced as we confirm participation for upcoming events.",
contact_speaking: 'Speaking proposals & sponsorship:',
contact_updates: 'Subscribe for updates:',
contact_follow: 'Follow',
contact_follow2: 'and',
contact_on_x: 'on X',
contact_or: 'or email',
},
es: {
page_title: 'Xahau Connect',
page_sub:
'Eventos profesionales de blockchain para debates serios e innovación',
chip_inftf: 'Por INFTF',
chip_location: 'Madrid, España',
chip_upcoming: (n: number) => (n === 1 ? '1 Próximo' : `${n} Próximos`),
lbl_upcoming: 'Próximos Eventos',
lbl_past: 'Eventos Pasados',
lbl_about: 'Acerca de',
lbl_contact: 'Participa',
no_upcoming: 'No hay eventos programados actualmente.',
no_upcoming_sub:
'Sigue a @XahauNetwork o escribe a connect@xahau.org para anuncios.',
location_view: 'Ver en el mapa',
about_title: 'Sobre Xahau Connect',
mission_title: 'Nuestra Misión',
contact_title: 'Ponentes, Patrocinadores y Contacto',
contact_body:
'Estamos agradecidos con nuestros socios que apoyan la misión de Xahau Connect. Los detalles de ponentes y patrocinadores se anunciarán a medida que confirmemos la participación.',
contact_speaking: 'Propuestas de ponencias y patrocinios:',
contact_updates: 'Suscríbete para actualizaciones:',
contact_follow: 'Sigue a',
contact_follow2: 'y a',
contact_on_x: 'en X',
contact_or: 'o escribe a',
},
ja: {
page_title: 'Xahau Connect',
page_sub:
'真剣な議論とイノベーションのためのプロフェッショナルなブロックチェーンイベント',
chip_inftf: 'INFTF主催',
chip_location: 'スペイン・マドリード',
chip_upcoming: (n: number) => `${n}件の予定`,
lbl_upcoming: '今後のイベント',
lbl_past: '過去のイベント',
lbl_about: 'について',
lbl_contact: '参加する',
no_upcoming: '現在予定されているイベントはありません。',
no_upcoming_sub:
'@XahauNetworkをフォローするか、connect@xahau.orgにメールしてお知らせを受け取ってください。',
location_view: '地図で見る',
about_title: 'Xahau Connectについて',
mission_title: '私たちのミッション',
contact_title: 'スピーカー・スポンサー・お問い合わせ',
contact_body:
'Xahau Connectのプロフェッショナルなブロックチェーン議論の使命を支援するパートナーに感謝します。',
contact_speaking: '講演提案・スポンサーシップのお問い合わせ:',
contact_updates: '更新情報の購読:',
contact_follow: 'フォロー:',
contact_follow2: 'および',
contact_on_x: 'X',
contact_or: 'またはメール:',
},
}
const t = ui[locale]
---
<section class="xcon" aria-label="Xahau Connect">
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════════ -->
<header class="xc-head">
<div class="xc-head-title">
<h2>{t.page_title}</h2>
<p class="xc-sub">{t.page_sub}</p>
</div>
<div class="xc-chips">
<span class="xc-chip">{t.chip_inftf}</span>
<span class="xc-chip">{t.chip_location}</span>
<span class="xc-chip">{t.chip_upcoming(upcoming.length)}</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════════
ACT I — UPCOMING EVENTS (teal)
══════════════════════════════════════════════════════════════════════════════ -->
<div class="xc-act act-upcoming">
<p class="xc-act-label">
<span class="act-pip pip-teal"></span>
{t.lbl_upcoming}
</p>
{upcoming.length === 0 ? (
<div class="xc-empty">
<p class="xc-empty-line">{t.no_upcoming}</p>
<p class="xc-empty-sub">{t.no_upcoming_sub}</p>
</div>
) : (
<div class="xc-events">
{upcoming.map(ev => {
const title = ev.title[locale as keyof typeof ev.title] as string
const desc = ev.description[locale as keyof typeof ev.description] as string
const dateStr = ev.dateLabel[locale as keyof typeof ev.dateLabel] as string
const regLabel = ev.registration?.label[locale as keyof typeof ev.registration.label] as string | undefined
return (
<article class="xc-event ev-upcoming">
<div class="xc-event-meta">
<span class="xc-meta-date">{dateStr}</span>
<a href={ev.location.mapsUrl} target="_blank" rel="noopener noreferrer" class="xc-meta-loc">
{ev.location.name} ↗
</a>
</div>
<h3 class="xc-event-title title-teal">{title}</h3>
<p class="xc-event-desc">{desc}</p>
{ev.speakers.length > 0 && (
<div class="xc-speakers">
{ev.speakers.map(s => (
<span class="xc-speaker">{s.name} <em>{s.role}</em></span>
))}
</div>
)}
{ev.registration && (
<a href={ev.registration.url} target="_blank" rel="noopener noreferrer" class="xc-cta-btn btn-teal">
{regLabel} →
</a>
)}
</article>
)
})}
</div>
)}
</div><!-- /act-upcoming -->
<!-- ══════════════════════════════════════════════════════════════════════════
ACT II — PAST EVENTS (amber)
══════════════════════════════════════════════════════════════════════════════ -->
{past.length > 0 && (
<div class="xc-act act-past">
<p class="xc-act-label">
<span class="act-pip pip-amb"></span>{t.lbl_past}
</p>
<div class="xc-events">
{past.map(ev => {
const title = ev.title[locale as keyof typeof ev.title] as string
const desc = ev.description[locale as keyof typeof ev.description] as string
const dateStr = ev.dateLabel[locale as keyof typeof ev.dateLabel] as string
const recLabel = ev.recording?.label[locale as keyof typeof ev.recording.label] as string | undefined
return (
<article class="xc-event ev-past">
<div class="xc-event-meta">
<span class="xc-meta-date">{dateStr}</span>
<a href={ev.location.mapsUrl} target="_blank" rel="noopener noreferrer" class="xc-meta-loc">
{ev.location.name} ↗
</a>
</div>
<h3 class="xc-event-title title-amb">{title}</h3>
{ev.speakers.length > 0 && (
<div class="xc-speakers">
{ev.speakers.map(s => (
<span class="xc-speaker">{s.name} <em>{s.role}</em></span>
))}
</div>
)}
<p class="xc-event-desc">{desc}</p>
{ev.recording && (
<a href={ev.recording.url} target="_blank" rel="noopener noreferrer" class="xc-cta-link link-amb">
{recLabel} ↗
</a>
)}
</article>
)
})}
</div>
</div>
)}<!-- /act-past -->
<!-- ══════════════════════════════════════════════════════════════════════════
ACT III — ABOUT (violet)
══════════════════════════════════════════════════════════════════════════════ -->
<div class="xc-act act-about">
<p class="xc-act-label">
<span class="act-pip pip-vlt"></span>
{t.lbl_about}
</p>
<div class="xc-about-layout">
<div class="xc-about-body">
<span class="xc-lbl lbl-vlt">INFTF</span>
<h3 class="xc-about-title">{t.about_title}</h3>
<p>{about.body[locale as keyof typeof about.body]}</p>
</div>
<div class="xc-mission">
<span class="xc-lbl lbl-vlt">{t.mission_title}</span>
<div class="xc-mission-grid">
{mission.map(item => (
<div class="xc-mission-item">
<h4>{item.title[locale as keyof typeof item.title]}</h4>
<p>{item.desc[locale as keyof typeof item.desc]}</p>
</div>
))}
</div>
</div>
</div>
</div><!-- /act-about -->
<!-- ══════════════════════════════════════════════════════════════════════════
ACT IV — CONTACT (green)
══════════════════════════════════════════════════════════════════════════════ -->
<div class="xc-act act-contact">
<p class="xc-act-label">
<span class="act-pip pip-grn"></span>
{t.lbl_contact}
</p>
<div class="xc-contact-layout">
<div class="xc-contact-block">
<span class="xc-lbl lbl-grn">Contact</span>
<h3 class="xc-contact-title">{t.contact_title}</h3>
<p class="xc-contact-body">{t.contact_body}</p>
<p class="xc-contact-item">
<span class="xc-contact-key">{t.contact_speaking}</span>
<a href="mailto:connect@xahau.org" class="xc-contact-val"
>connect@xahau.org</a
>
</p>
</div>
<div class="xc-contact-block">
<span class="xc-lbl lbl-grn">Follow</span>
<h3 class="xc-contact-title">{t.contact_updates}</h3>
<p class="xc-contact-item">
{t.contact_follow}
{' '}
<a
href="https://x.com/XahauNetwork"
target="_blank"
rel="noopener noreferrer"
class="xc-contact-val"
>@XahauNetwork</a
>
{' '}
{t.contact_follow2}
{' '}
<a
href="https://x.com/incfintech"
target="_blank"
rel="noopener noreferrer"
class="xc-contact-val"
>INFTF</a
>
{' '}
{t.contact_on_x}
</p>
<p class="xc-contact-item">
{t.contact_or}
{' '}
<a href="mailto:connect@xahau.org" class="xc-contact-val"
>connect@xahau.org</a
>
</p>
</div>
</div>
</div><!-- /act-contact -->
</section>
<style>
/* ══ Design tokens — mirrors XahauAbout / XahauFeatures / XahauHome exactly ══ */
.xcon {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--amb2: #b56020;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
--amb-hi: #ff9030;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xcon * {
box-sizing: border-box;
}
/* ── Page header ─────────────────────────────────────────────────────────── */
.xc-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xcon h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xc-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xc-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xc-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
/* ── Acts ────────────────────────────────────────────────────────────────── */
.xc-act {
padding-top: 56px;
}
.xc-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 36px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-teal {
background: var(--teal2);
}
.pip-amb {
background: var(--amb2);
}
.pip-vlt {
background: var(--vlt2);
}
.pip-grn {
background: var(--grn2);
}
/* ── Inline labels ───────────────────────────────────────────────────────── */
.xc-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-teal {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.lbl-amb {
color: var(--amb2);
background: rgba(181, 96, 32, 0.1);
}
.lbl-vlt {
color: var(--vlt2);
background: rgba(78, 24, 184, 0.09);
}
.lbl-grn {
color: var(--grn2);
background: rgba(0, 122, 40, 0.09);
}
/* ── Events list ─────────────────────────────────────────────────────────── */
.xc-events {
border-top: 1px solid #e4edef;
}
.xc-event {
padding: 36px 0;
border-bottom: 1px solid #e4edef;
}
/* Meta row: date + location */
.xc-event-meta {
display: flex;
gap: 16px;
align-items: center;
flex-wrap: wrap;
margin-bottom: 14px;
}
.xc-meta-date {
font-family: ui-monospace, monospace;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.08em;
color: var(--mute);
}
.xc-meta-loc {
font-family: ui-monospace, monospace;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.08em;
color: var(--mute);
text-decoration: none;
border-bottom: 1px solid #cdd7dc;
transition:
color 0.15s,
border-color 0.15s;
}
.xc-meta-loc:hover {
color: var(--teal2);
border-color: var(--teal2);
}
/* Event title */
.xc-event-title {
margin: 0 0 16px;
font-size: 26px;
font-weight: 800;
letter-spacing: -0.025em;
line-height: 1.18;
}
.title-teal {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.title-amb {
background: linear-gradient(140deg, #5a2800 15%, var(--amb-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Description */
.xc-event-desc {
margin: 0 0 18px;
font-size: 15px;
line-height: 1.72;
color: var(--dim);
max-width: 72ch;
}
/* Speakers */
.xc-speakers {
display: flex;
flex-wrap: wrap;
gap: 8px 24px;
margin-bottom: 18px;
}
.xc-speaker {
font-size: 13.5px;
font-weight: 600;
color: var(--ink);
}
.xc-speaker em {
font-style: normal;
font-weight: 400;
color: var(--mute);
margin-left: 4px;
}
/* CTA: button (upcoming) */
.xc-cta-btn {
display: inline-flex;
align-items: center;
height: 42px;
padding: 0 22px;
font-family: inherit;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.01em;
text-decoration: none;
border-radius: 6px;
transition:
background 0.18s,
color 0.18s;
}
.btn-teal {
background: var(--teal2);
color: #fff;
}
.btn-teal:hover {
background: #004d60;
}
/* CTA: text link (past) */
.xc-cta-link {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 14px;
font-weight: 700;
text-decoration: none;
letter-spacing: 0.01em;
border-bottom: 1.5px solid transparent;
padding-bottom: 1px;
transition:
border-color 0.15s,
color 0.15s;
}
.link-amb {
color: var(--amb2);
}
.link-amb:hover {
color: #7a3a0a;
border-color: #7a3a0a;
}
/* Empty state */
.xc-empty {
padding: 40px 0 8px;
border-top: 1px solid #e4edef;
}
.xc-empty-line {
margin: 0 0 6px;
font-size: 16px;
font-weight: 600;
color: var(--dim);
}
.xc-empty-sub {
margin: 0;
font-size: 14px;
color: var(--mute);
}
/* ── About layout ────────────────────────────────────────────────────────── */
.xc-about-layout {
display: grid;
grid-template-columns: 1fr 1.4fr;
gap: 48px 64px;
align-items: start;
}
.xc-about-title {
margin: 0 0 18px;
font-size: 30px;
font-weight: 800;
letter-spacing: -0.025em;
line-height: 1.2;
background: linear-gradient(140deg, #1a0060 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xc-about-body p {
margin: 0;
font-size: 15px;
line-height: 1.72;
color: var(--dim);
}
/* Mission grid */
.xc-mission-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px 32px;
margin-top: 20px;
}
.xc-mission-item h4 {
margin: 0 0 6px;
font-size: 14px;
font-weight: 700;
color: var(--ink);
}
.xc-mission-item p {
margin: 0;
font-size: 13.5px;
line-height: 1.6;
color: var(--dim);
}
/* ── Contact layout ──────────────────────────────────────────────────────── */
.xc-contact-layout {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px 64px;
align-items: start;
}
.xc-contact-title {
margin: 0 0 16px;
font-size: 22px;
font-weight: 800;
letter-spacing: -0.02em;
color: var(--ink);
}
.xc-contact-body {
margin: 0 0 20px;
font-size: 15px;
line-height: 1.68;
color: var(--dim);
}
.xc-contact-item {
margin: 0 0 10px;
font-size: 14.5px;
color: var(--dim);
line-height: 1.6;
}
.xc-contact-key {
display: block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--mute);
margin-bottom: 5px;
}
.xc-contact-val {
color: var(--grn2);
text-decoration: none;
font-weight: 600;
border-bottom: 1.5px solid transparent;
transition:
border-color 0.15s,
color 0.15s;
}
.xc-contact-val:hover {
color: #004d18;
border-color: #004d18;
}
/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
.xc-about-layout {
grid-template-columns: 1fr;
gap: 36px;
}
.xc-contact-layout {
grid-template-columns: 1fr;
gap: 36px;
}
.xc-mission-grid {
grid-template-columns: 1fr;
gap: 20px;
}
}
@media (max-width: 640px) {
.xcon {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xcon h2 {
font-size: 28px;
}
.xc-head {
flex-direction: column;
gap: 14px;
}
.xc-event-title {
font-size: 21px;
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,995 @@
---
/**
* XahauContestEs.astro — Editorial layout for the Xahau Dev Contest page (Spanish)
*
* Follows the same white-card editorial style as XahauAbout / XahauFeatures / XahauHome.
* For EN: see XahauContest.astro · For JA: see XahauContestJa.astro
*/
---
<section class="xcontest" aria-label="Xahau Dev Contest">
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════ -->
<header class="xc-head">
<div class="xc-head-title">
<h2>Xahau Dev Contest</h2>
<p class="xc-sub">
Ecosystem Rising — Construye servicios de usuario powered by Xahau
</p>
</div>
<div class="xc-chips">
<span class="xc-chip">2ª Edición</span>
<span class="xc-chip">Xahau Mainnet</span>
<span class="xc-chip">3 Premios Principales</span>
<span class="xc-chip">Recompensas en XAH</span>
</div>
</header>
<!-- ══ ACT I — INTRODUCCIÓN ═════════════════════════════════════════════ -->
<div class="xc-act act-intro">
<p class="xc-act-label">
<span class="act-pip pip-grn"></span>Introducción
</p>
<div class="xc-intro-grid">
<div class="xc-intro-body">
<span class="xc-lbl lbl-grn">Acerca de</span>
<h3>Bienvenido a Ecosystem Rising</h3>
<p>
Este concurso invita a innovadores a construir
<strong>servicios de usuario powered by Xahau</strong>
y competir por premios mientras fortalecen el ecosistema Xahau.
</p>
<p>
Tanto si eres un desarrollador individual como un equipo, puedes
enviar tantos proyectos como quieras, cada uno elegible para
diferentes premios.
</p>
</div>
<div class="xc-prizes">
<span class="xc-lbl lbl-grn">Premios</span>
<h3>Premios Principales en XAH</h3>
<div class="xc-prize-list">
<div class="xc-prize prize-gold">
<span class="prize-medal">🥇</span>
<div>
<span class="prize-place">1er Premio</span>
<span class="prize-value">Valor de 4.000 USD en XAH</span>
</div>
</div>
<div class="xc-prize prize-silver">
<span class="prize-medal">🥈</span>
<div>
<span class="prize-place">2º Premio</span>
<span class="prize-value">Valor de 2.000 USD en XAH</span>
</div>
</div>
<div class="xc-prize prize-bronze">
<span class="prize-medal">🥉</span>
<div>
<span class="prize-place">3er Premio</span>
<span class="prize-value">Valor de 1.000 USD en XAH</span>
</div>
</div>
</div>
<div class="xc-timeline">
<span class="xc-lbl lbl-grn">Cronograma</span>
<div class="timeline-row">
<span class="timeline-dot"></span>
<span
><strong>Fecha límite de envío:</strong>
1 de febrero de 2026</span
>
</div>
<div class="timeline-row">
<span class="timeline-dot"></span>
<span
><strong>Panel de jueces:</strong>
5 miembros de la comunidad Xahau y XRPL</span
>
</div>
</div>
</div>
</div>
</div>
<!-- ══ ACT II — PANEL Y TEMA ════════════════════════════════════════════ -->
<div class="xc-act act-panel">
<p class="xc-act-label">
<span class="act-pip pip-teal"></span>Panel y Tema
</p>
<div class="xc-panel-grid">
<div class="xc-judges">
<span class="xc-lbl lbl-teal">Panel de Jueces</span>
<h3>Cinco Miembros de la Comunidad</h3>
<div class="xc-judge-list">
<div class="xc-judge">
<span class="judge-handle">tequ</span>
<span class="judge-role">Desarrollador Blockchain de Xahau</span>
<a
href="https://x.com/_tequ_"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@_tequ_ ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">Robert Kiuru</span>
<span class="judge-role">COO, XRPL Labs</span>
<a
href="https://x.com/robertkiuru"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@robertkiuru ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">gadget78</span>
<span class="judge-role">Desarrollador de Evernode</span>
<a
href="https://x.com/gadget78"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@gadget78 ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">Andrei Rosseti</span>
<span class="judge-role"
>Arquitecto de Xahau DocProof · CTO, EleveCRM</span
>
<a
href="https://x.com/andreirosseti"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@andreirosseti ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">Vet</span>
<span class="judge-role">Contribuidor de la comunidad XRPL</span>
<a
href="https://x.com/Vet_X0"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@Vet_X0 ↗</a
>
</div>
</div>
</div>
<div class="xc-theme">
<span class="xc-lbl lbl-teal">Tema</span>
<h3>Servicios en Xahau</h3>
<p>
Los participantes deben construir
<strong>servicios web que interactúen con Xahau Mainnet</strong>
y estén diseñados para el <strong>usuario final</strong> — usuarios
casuales, avanzados, sector público o privado.
</p>
<div class="xc-examples">
<div class="xc-example-group">
<span class="example-heading">Herramientas cotidianas</span>
<span>Paneles de finanzas personales</span>
<span>Gestores de wallets</span>
<span>Apps comunitarias</span>
</div>
<div class="xc-example-group">
<span class="example-heading">Servicios empresariales</span>
<span>Portales de pago</span>
<span>Plataformas de fidelización</span>
<span>Herramientas de atención al cliente</span>
</div>
<div class="xc-example-group">
<span class="example-heading">Plataformas públicas</span>
<span>Marketplaces de NFT</span>
<span>Sistemas de votación</span>
<span>Hubs de donaciones</span>
<span>Apps culturales</span>
<span>Utilidades para el bien social</span>
</div>
</div>
</div>
</div>
</div>
<!-- ══ ACT III — REGLAS Y EVALUACIÓN ════════════════════════════════════ -->
<div class="xc-act act-rules">
<p class="xc-act-label">
<span class="act-pip pip-grn"></span>Reglas y Evaluación
</p>
<div class="xc-rules-grid">
<div class="xc-rules-col">
<span class="xc-lbl lbl-grn">Reglas de Participación</span>
<h3>Lo Que Necesitas Saber</h3>
<ul class="xc-rule-list">
<li>Puedes enviar <strong>tantos proyectos como quieras</strong>.</li>
<li>Cada proyecto puede ser enviado por un individuo o un grupo.</li>
<li>
Distintos proyectos del mismo participante pueden optar a diferentes
premios.
</li>
<li>
Los proyectos
<strong>deben ejecutarse en la Mainnet de Xahau</strong>.
</li>
<li>
Cada proyecto <strong>debe ser accesible online</strong> para que
jueces y el público puedan usarlo o verlo.
</li>
<li>
Cada envío debe incluir <strong>documentación básica</strong>. Se
acepta material multimedia.
</li>
<li>
Se pueden usar <strong>herramientas de IA</strong> para desarrollo y
documentación.
</li>
<li>
Si usas <strong>Hooks</strong>, el código debe ser de código
abierto. Adjunta código C y hash del hook.
</li>
<li>
Los proyectos que ofrezcan servicios financieros regulados o
actividades ilegales no son elegibles.
</li>
<li>
Publica un tweet etiquetando
<a
href="https://x.com/XahauNetwork"
target="_blank"
rel="noopener noreferrer"
>@XahauNetwork</a
>
para anunciar tu participación.
</li>
</ul>
</div>
<div class="xc-eval-col">
<div class="xc-eval">
<span class="xc-lbl lbl-grn">Criterios de Evaluación</span>
<h3>Lo Que Valoran los Jueces</h3>
<div class="xc-criteria">
<div class="criterion">
<span class="criterion-label">Originalidad y Creatividad</span>
<span class="criterion-desc"
>¿Cuán novedosa e innovadora es la idea?</span
>
</div>
<div class="criterion">
<span class="criterion-label">Sin Competidores Existentes</span>
<span class="criterion-desc"
>Ausencia de servicios similares en Xahau Mainnet antes del
concurso.</span
>
</div>
<div class="criterion">
<span class="criterion-label">Impacto y Utilidad</span>
<span class="criterion-desc"
>Valor para usuarios finales — individuos, empresas o sector
público.</span
>
</div>
<div class="criterion">
<span class="criterion-label">Calidad de Ejecución</span>
<span class="criterion-desc"
>Estabilidad, documentación y experiencia de usuario.</span
>
</div>
<div class="criterion">
<span class="criterion-label">Uso de Hooks</span>
<span class="criterion-desc"
>El uso de smart contracts en Xahau recibe reconocimiento
especial.</span
>
</div>
</div>
</div>
<div class="xc-format">
<span class="xc-lbl lbl-grn">Formato de Envío</span>
<p>
Cada proyecto debe incluir una carpeta y un
<strong>archivo de envío</strong>
en el directorio submissions de
<a
href="https://github.com/xahau/xahau-2nd-dev-contest"
target="_blank"
rel="noopener noreferrer"
>este repositorio ↗</a
>.
</p>
<p class="format-example">
<code
>submissions/NombreGitHub_NombreProyecto/NombreGitHub_NombreProyecto.md</code
>
</p>
<p>
Campos requeridos: Título · Descripción · Participantes · Redes
Sociales · Email · Enlace al Proyecto · Dirección Xahau ·
Documentación · Código Hooks en C y hash (si aplica) · Repositorio
(opcional)
</p>
</div>
</div>
</div>
</div>
<!-- ══ ACT IV — SOPORTE Y RECURSOS ══════════════════════════════════════ -->
<div class="xc-act act-support">
<p class="xc-act-label">
<span class="act-pip pip-teal"></span>Soporte y Recursos
</p>
<div class="xc-support-grid">
<div class="xc-support-col">
<span class="xc-lbl lbl-teal">Soporte</span>
<h3>Preguntas y Comunidad</h3>
<p>
Únete al
<a
href="https://discord.gg/ds7nb93mYj"
target="_blank"
rel="noopener noreferrer"
>Discord de Xahau Builders ↗</a
>
o envía un email a
<a href="mailto:contests@xahau.org">contests@xahau.org</a>. Tus
preguntas pueden añadirse a las FAQ para que otros se beneficien.
</p>
<p class="ownership-note">
Todos los proyectos enviados siguen siendo
<strong>propiedad de sus creadores originales</strong>.
</p>
<div class="xc-faq">
<span class="xc-lbl lbl-teal">FAQ</span>
<div class="faq-item">
<span class="faq-q">¿Puedo enviar más de un proyecto?</span>
<span class="faq-a"
>Sí — tantos como quieras, individualmente o en grupo.</span
>
</div>
<div class="faq-item">
<span class="faq-q"
>¿Los proyectos deben ser de código abierto?</span
>
<span class="faq-a"
>No, pero deben incluir documentación básica. El código de Hooks
sí debe ser abierto.</span
>
</div>
<div class="faq-item">
<span class="faq-q"
>¿Puedo usar IA para construir o documentar mi proyecto?</span
>
<span class="faq-a"
>Sí, el uso de IA está completamente permitido.</span
>
</div>
<div class="faq-item">
<span class="faq-q">¿Hay ventaja en usar Hooks?</span>
<span class="faq-a"
>Sí — los proyectos que usen Hooks creativamente recibirán
reconocimiento especial.</span
>
</div>
<div class="faq-item">
<span class="faq-q"
>¿Qué pasa con mi proyecto tras el concurso?</span
>
<span class="faq-a">Conservas la propiedad total.</span>
</div>
</div>
</div>
<div class="xc-links-col">
<span class="xc-lbl lbl-teal">Enlaces Útiles</span>
<h3>Recursos para Desarrolladores Xahau</h3>
<div class="xc-link-list">
<a
href="https://docs.xahau.network"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Documentación de Xahau</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://xahau.network/docs/hooks/"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Documentación de Xahau Hooks</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://github.com/Xahau"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Repositorios GitHub de Xahau</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://xaman.app"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Sitio web de Xaman</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://xahau-test.net/"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Faucet de Xahau Testnet</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://discord.gg/ds7nb93mYj"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Discord de Xahau</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://github.com/xahau/xahau-2nd-dev-contest"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Repositorio del Concurso</span>
<span class="resource-arrow">↗</span>
</a>
</div>
<div class="xc-legal">
<span class="xc-lbl lbl-teal">Aviso Legal Final</span>
<p>Al participar, aceptas que:</p>
<ul class="legal-list">
<li>
Los participantes deben cumplir los criterios de elegibilidad y
todas las reglas. No se permiten proyectos publicados antes del
concurso.
</li>
<li>
Los proyectos siguen siendo propiedad de sus creadores; los
organizadores se reservan el derecho de mostrarlos con el crédito
apropiado.
</li>
<li>
Los organizadores pueden descalificar envíos que violen las
reglas. Todas las decisiones del jurado son definitivas.
</li>
<li>
Los organizadores no son responsables de daños o pérdidas durante
la participación y pueden modificar los requisitos en cualquier
momento.
</li>
<li>
Pueden aplicarse sanciones y restricciones jurisdiccionales. Puede
requerirse verificación KYC para recibir premios.
</li>
<li>
Todos los impuestos y obligaciones financieras relacionadas con
los premios son responsabilidad exclusiva del participante.
</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<style>
.xcontest {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--border: #e4edef;
--hover-bg: #f4f6f7;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xcontest * {
box-sizing: border-box;
}
.xc-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xcontest h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xc-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xc-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xc-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
.xc-act {
padding-top: 52px;
}
.xc-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 36px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.xc-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-grn {
color: var(--grn2);
background: rgba(0, 122, 40, 0.09);
}
.lbl-teal {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.xcontest h3 {
margin: 0 0 16px;
font-size: 24px;
font-weight: 800;
letter-spacing: -0.02em;
line-height: 1.2;
color: var(--ink);
}
.xcontest p {
margin: 0 0 14px;
font-size: 14.5px;
line-height: 1.7;
color: var(--dim);
}
.xcontest a {
color: var(--grn2);
text-decoration: none;
font-weight: 600;
}
.xcontest a:hover {
text-decoration: underline;
}
.xc-intro-grid,
.xc-panel-grid,
.xc-rules-grid,
.xc-support-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: start;
}
.xc-prize-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-bottom: 28px;
}
.xc-prize {
display: flex;
align-items: center;
gap: 14px;
padding: 14px 18px;
border-radius: 10px;
border: 1.5px solid var(--border);
}
.prize-medal {
font-size: 22px;
flex-shrink: 0;
}
.prize-place {
display: block;
font-size: 13px;
font-weight: 700;
color: var(--ink);
letter-spacing: 0.01em;
}
.prize-value {
display: block;
font-size: 12px;
color: var(--mute);
margin-top: 2px;
}
.prize-gold {
background: linear-gradient(120deg, #fffbf0 0%, #fff 100%);
border-color: #e8d88a;
}
.prize-silver {
background: linear-gradient(120deg, #f7f9fa 0%, #fff 100%);
border-color: #c8d5da;
}
.prize-bronze {
background: #ffffff;
}
.xc-timeline {
border-top: 1.5px solid var(--border);
padding-top: 20px;
}
.xc-timeline .xc-lbl {
display: block;
margin-bottom: 10px;
}
.timeline-row {
display: flex;
align-items: baseline;
gap: 10px;
font-size: 14px;
color: var(--dim);
margin-bottom: 8px;
line-height: 1.5;
}
.timeline-dot {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--grn2);
flex-shrink: 0;
margin-top: 5px;
}
.xc-judge-list {
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
}
.xc-judge {
display: grid;
grid-template-columns: 1fr 1fr auto;
align-items: center;
gap: 8px;
padding: 13px 16px;
border-bottom: 1px solid var(--border);
}
.xc-judge:last-child {
border-bottom: none;
}
.judge-handle {
font-size: 14px;
font-weight: 700;
color: var(--ink);
}
.judge-role {
font-size: 12px;
color: var(--mute);
line-height: 1.4;
}
.judge-link {
font-family: ui-monospace, monospace;
font-size: 11px;
color: var(--teal2);
text-decoration: none;
white-space: nowrap;
font-weight: 600;
}
.judge-link:hover {
text-decoration: underline;
}
.xc-examples {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
margin-top: 16px;
}
.xc-example-group {
display: flex;
flex-direction: column;
gap: 4px;
padding: 14px 16px;
background: var(--hover-bg);
border-radius: 10px;
border: 1px solid var(--border);
}
.example-heading {
font-size: 12px;
font-weight: 700;
color: var(--ink);
margin-bottom: 6px;
letter-spacing: 0.01em;
}
.xc-example-group span:not(.example-heading) {
font-size: 12.5px;
color: var(--mute);
line-height: 1.5;
}
.xc-rule-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
}
.xc-rule-list li {
padding: 11px 16px;
font-size: 13.5px;
color: var(--dim);
line-height: 1.55;
border-bottom: 1px solid var(--border);
}
.xc-rule-list li:last-child {
border-bottom: none;
}
.xc-rule-list li strong {
color: var(--ink);
}
.xc-rule-list li a {
color: var(--grn2);
}
.xc-criteria {
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
margin-bottom: 28px;
}
.criterion {
padding: 12px 16px;
border-bottom: 1px solid var(--border);
}
.criterion:last-child {
border-bottom: none;
}
.criterion-label {
display: block;
font-size: 13px;
font-weight: 700;
color: var(--ink);
margin-bottom: 3px;
}
.criterion-desc {
display: block;
font-size: 12.5px;
color: var(--mute);
line-height: 1.45;
}
.xc-format {
border-top: 1.5px solid var(--border);
padding-top: 22px;
margin-top: 4px;
}
.xc-format .xc-lbl {
display: block;
}
.format-example {
background: var(--hover-bg);
border: 1px solid var(--border);
border-radius: 6px;
padding: 10px 14px;
margin: 10px 0 12px;
}
.format-example code {
font-family: ui-monospace, monospace;
font-size: 12px;
color: var(--ink);
word-break: break-all;
}
.xc-support-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: start;
}
.xc-faq {
margin-top: 28px;
border-top: 1.5px solid var(--border);
padding-top: 20px;
}
.xc-faq .xc-lbl {
display: block;
}
.faq-item {
padding: 12px 0;
border-bottom: 1px solid var(--border);
}
.faq-item:last-child {
border-bottom: none;
}
.faq-q {
display: block;
font-size: 13.5px;
font-weight: 700;
color: var(--ink);
margin-bottom: 4px;
}
.faq-a {
display: block;
font-size: 13px;
color: var(--mute);
line-height: 1.5;
}
.ownership-note {
font-size: 13px;
color: var(--mute);
margin-top: -6px;
}
.xc-link-list {
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
margin-bottom: 28px;
}
.xc-resource-link {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid var(--border);
text-decoration: none;
transition: background 0.15s;
color: inherit;
}
.xc-resource-link:last-child {
border-bottom: none;
}
.xc-resource-link:hover {
background: var(--hover-bg);
text-decoration: none;
}
.resource-name {
font-size: 14px;
font-weight: 500;
color: var(--dim);
}
.resource-arrow {
font-size: 13px;
color: var(--teal2);
font-weight: 700;
}
.xc-legal {
border-top: 1.5px solid var(--border);
padding-top: 20px;
}
.xc-legal .xc-lbl {
display: block;
}
.legal-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
}
.legal-list li {
padding: 10px 14px;
font-size: 12.5px;
color: var(--mute);
line-height: 1.55;
border-bottom: 1px solid var(--border);
}
.legal-list li:last-child {
border-bottom: none;
}
@media (max-width: 900px) {
.xc-intro-grid,
.xc-panel-grid,
.xc-rules-grid,
.xc-support-grid {
grid-template-columns: 1fr;
}
.xc-examples {
grid-template-columns: 1fr 1fr;
}
.xc-judge {
grid-template-columns: 1fr 1fr;
}
.judge-link {
grid-column: span 2;
}
}
@media (max-width: 640px) {
.xcontest {
padding: 32px 20px 48px;
border-radius: 16px;
}
.xcontest h2 {
font-size: 28px;
}
.xc-head {
flex-direction: column;
gap: 14px;
}
.xc-examples {
grid-template-columns: 1fr;
}
.xc-judge {
grid-template-columns: 1fr;
}
.judge-link {
grid-column: span 1;
}
}
</style>

View File

@@ -0,0 +1,917 @@
---
/**
* XahauContestJa.astro — Editorial layout for the Xahau Dev Contest page (Japanese)
*
* Follows the same white-card editorial style as XahauAbout / XahauFeatures / XahauHome.
* For EN: see XahauContest.astro · For ES: see XahauContestEs.astro
*/
---
<section class="xcontest" aria-label="Xahau Dev Contest">
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════ -->
<header class="xc-head">
<div class="xc-head-title">
<h2>Xahau Dev Contest</h2>
<p class="xc-sub">
Ecosystem Rising — Xahauを活用したユーザー向けサービスを構築
</p>
</div>
<div class="xc-chips">
<span class="xc-chip">第2回</span>
<span class="xc-chip">Xahau Mainnet</span>
<span class="xc-chip">主要賞3つ</span>
<span class="xc-chip">XAH報酬</span>
</div>
</header>
<!-- ══ ACT I — はじめに ══════════════════════════════════════════════════ -->
<div class="xc-act act-intro">
<p class="xc-act-label"><span class="act-pip pip-grn"></span>はじめに</p>
<div class="xc-intro-grid">
<div class="xc-intro-body">
<span class="xc-lbl lbl-grn">概要</span>
<h3>Ecosystem Risingへようこそ</h3>
<p>
このコンテストは、<strong
>Xahauを活用したユーザー向けサービス</strong
>を構築するイノベーターを招待し、
賞品を競いながらXahauエコシステムを強化するものです。
</p>
<p>
個人でもチームでも、好きなだけプロジェクトを提出でき、それぞれ異なる賞の対象となります。
</p>
</div>
<div class="xc-prizes">
<span class="xc-lbl lbl-grn">賞品</span>
<h3>XAHの主要賞</h3>
<div class="xc-prize-list">
<div class="xc-prize prize-gold">
<span class="prize-medal">🥇</span>
<div>
<span class="prize-place">1位</span>
<span class="prize-value">XAH建て4,000 USD相当</span>
</div>
</div>
<div class="xc-prize prize-silver">
<span class="prize-medal">🥈</span>
<div>
<span class="prize-place">2位</span>
<span class="prize-value">XAH建て2,000 USD相当</span>
</div>
</div>
<div class="xc-prize prize-bronze">
<span class="prize-medal">🥉</span>
<div>
<span class="prize-place">3位</span>
<span class="prize-value">XAH建て1,000 USD相当</span>
</div>
</div>
</div>
<div class="xc-timeline">
<span class="xc-lbl lbl-grn">スケジュール</span>
<div class="timeline-row">
<span class="timeline-dot"></span>
<span><strong>提出締切:</strong>2026年2月1日</span>
</div>
<div class="timeline-row">
<span class="timeline-dot"></span>
<span
><strong
>審査パネル:</strong
>XahauおよびXRPLコミュニティの5名</span
>
</div>
</div>
</div>
</div>
</div>
<!-- ══ ACT II — 審査パネルとテーマ ══════════════════════════════════════ -->
<div class="xc-act act-panel">
<p class="xc-act-label">
<span class="act-pip pip-teal"></span>審査パネルとテーマ
</p>
<div class="xc-panel-grid">
<div class="xc-judges">
<span class="xc-lbl lbl-teal">審査パネル</span>
<h3>5名のコミュニティメンバー</h3>
<div class="xc-judge-list">
<div class="xc-judge">
<span class="judge-handle">tequ</span>
<span class="judge-role">Xahauブロックチェーン開発者</span>
<a
href="https://x.com/_tequ_"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@_tequ_ ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">Robert Kiuru</span>
<span class="judge-role">COO、XRPL Labs</span>
<a
href="https://x.com/robertkiuru"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@robertkiuru ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">gadget78</span>
<span class="judge-role">Evrenodeデベロッパー</span>
<a
href="https://x.com/gadget78"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@gadget78 ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">Andrei Rosseti</span>
<span class="judge-role"
>Xahau DocProofアーキテクト · CTO、EleveCRM</span
>
<a
href="https://x.com/andreirosseti"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@andreirosseti ↗</a
>
</div>
<div class="xc-judge">
<span class="judge-handle">Vet</span>
<span class="judge-role">XRPLコミュニティコントリビューター</span>
<a
href="https://x.com/Vet_X0"
target="_blank"
rel="noopener noreferrer"
class="judge-link"
>@Vet_X0 ↗</a
>
</div>
</div>
</div>
<div class="xc-theme">
<span class="xc-lbl lbl-teal">テーマ</span>
<h3>Xahau上のサービス</h3>
<p>
参加者は<strong
>Xahauメインネットと対話するWebベースのサービス</strong
>を構築し、
<strong
>エンドユーザー</strong
>(一般ユーザー、パワーユーザー、公共部門、民間部門)向けに設計する必要があります。
</p>
<div class="xc-examples">
<div class="xc-example-group">
<span class="example-heading">日常ユーザーツール</span>
<span>個人財務ダッシュボード</span>
<span>ウォレットマネージャー</span>
<span>コミュニティアプリ</span>
</div>
<div class="xc-example-group">
<span class="example-heading">ビジネスサービス</span>
<span>決済ポータル</span>
<span>ロイヤルティプラットフォーム</span>
<span>顧客サービスツール</span>
</div>
<div class="xc-example-group">
<span class="example-heading">公共プラットフォーム</span>
<span>NFTマーケットプレイス</span>
<span>投票システム</span>
<span>寄付ハブ</span>
<span>文化アプリ</span>
<span>社会的善のためのユーティリティ</span>
</div>
</div>
</div>
</div>
</div>
<!-- ══ ACT III — ルールと評価 ════════════════════════════════════════════ -->
<div class="xc-act act-rules">
<p class="xc-act-label">
<span class="act-pip pip-grn"></span>ルールと評価
</p>
<div class="xc-rules-grid">
<div class="xc-rules-col">
<span class="xc-lbl lbl-grn">参加ルール</span>
<h3>知っておくべきこと</h3>
<ul class="xc-rule-list">
<li><strong>好きなだけ多くのプロジェクト</strong>を提出できます。</li>
<li>各プロジェクトは個人またはグループが提出できます。</li>
<li>
同じ参加者の異なるプロジェクトがそれぞれ別の賞を受けることができます。
</li>
<li>
プロジェクトは<strong
>Xahauメインネットで動作</strong
>する必要があります。
</li>
<li>
各プロジェクトは<strong
>オンラインでアクセス可能</strong
>である必要があります。
</li>
<li>
各提出には<strong
>基本的なドキュメント</strong
>を含める必要があります。マルチメディア素材も歓迎。
</li>
<li>
<strong>AIツール</strong>は開発とドキュメントの両方に使用できます。
</li>
<li>
<strong
>Hooks</strong
>を使用する場合、Hookコードはオープンソースである必要があります。CコードとHookハッシュを添付してください。
</li>
<li>
規制された金融サービスや違法活動を対象とするプロジェクトは対象外です。
</li>
<li>
<a
href="https://x.com/XahauNetwork"
target="_blank"
rel="noopener noreferrer"
>@XahauNetwork</a
>をタグ付けしてXに投稿し、参加を発表してください。
</li>
</ul>
</div>
<div class="xc-eval-col">
<div class="xc-eval">
<span class="xc-lbl lbl-grn">評価基準</span>
<h3>審査員が重視すること</h3>
<div class="xc-criteria">
<div class="criterion">
<span class="criterion-label">独自性と創造性</span>
<span class="criterion-desc"
>アイデアはどれほど新しく革新的ですか?</span
>
</div>
<div class="criterion">
<span class="criterion-label">既存の競合他社の不在</span>
<span class="criterion-desc"
>コンテスト前にXahauメインネットで同じサービスを提供するものがないか。</span
>
</div>
<div class="criterion">
<span class="criterion-label">影響と有用性</span>
<span class="criterion-desc"
>エンドユーザー(個人、企業、公共部門)への価値。</span
>
</div>
<div class="criterion">
<span class="criterion-label">実行の品質</span>
<span class="criterion-desc"
>安定性、ドキュメント、ユーザーエクスペリエンス。</span
>
</div>
<div class="criterion">
<span class="criterion-label">Hooksの使用</span>
<span class="criterion-desc"
>XahauのスマートコントラクトであるHooksの使用は特別な評価を受けます。</span
>
</div>
</div>
</div>
<div class="xc-format">
<span class="xc-lbl lbl-grn">提出フォーマット</span>
<p>
各プロジェクトは<a
href="https://github.com/xahau/xahau-2nd-dev-contest"
target="_blank"
rel="noopener noreferrer"
>このリポジトリ ↗</a
>の submissionsディレクトリ内にフォルダと<strong
>提出ファイル</strong
>を含める必要があります。
</p>
<p class="format-example">
<code
>submissions/GitHubName_ProjectName/GitHubName_ProjectName.md</code
>
</p>
<p>
必須フィールド:プロジェクトタイトル · 簡単な説明 · 参加者 ·
ソーシャルメディア · 連絡先メール · プロジェクトリンク ·
XahauアドレスHooksのCコードとハッシュ使用する場合·
リポジトリリンク(任意)
</p>
</div>
</div>
</div>
</div>
<!-- ══ ACT IV — サポートとリソース ══════════════════════════════════════ -->
<div class="xc-act act-support">
<p class="xc-act-label">
<span class="act-pip pip-teal"></span>サポートとリソース
</p>
<div class="xc-support-grid">
<div class="xc-support-col">
<span class="xc-lbl lbl-teal">サポート</span>
<h3>質問とコミュニティ</h3>
<p>
<a
href="https://discord.gg/ds7nb93mYj"
target="_blank"
rel="noopener noreferrer"
>Xahau Builders Discord ↗</a
>に参加するか、
<a href="mailto:contests@xahau.org"
>contests@xahau.org</a
>にメールしてください。
質問はFAQに追加され、他の参加者も参照できます。
</p>
<p class="ownership-note">
提出されたすべてのプロジェクトは<strong
>元の作成者の財産</strong
>のままです。
</p>
<div class="xc-faq">
<span class="xc-lbl lbl-teal">FAQ</span>
<div class="faq-item">
<span class="faq-q">複数のプロジェクトを提出できますか?</span>
<span class="faq-a"
>はい — 個人でもグループとしても、好きなだけ提出できます。</span
>
</div>
<div class="faq-item">
<span class="faq-q"
>プロジェクトはオープンソースである必要がありますか?</span
>
<span class="faq-a"
>いいえ、ただし基本的なドキュメントが必要です。Hookコードはオープンソースである必要があります。</span
>
</div>
<div class="faq-item">
<span class="faq-q"
>AIを使用してプロジェクトを構築や文書化できますか</span
>
<span class="faq-a">はい、AIの使用は完全に許可されています。</span>
</div>
<div class="faq-item">
<span class="faq-q">Hooksを使用することに利点はありますか</span>
<span class="faq-a"
>はい —
Hooksを創造的に実装したプロジェクトは特別な評価を受けます。</span
>
</div>
<div class="faq-item">
<span class="faq-q"
>コンテスト後、プロジェクトはどうなりますか?</span
>
<span class="faq-a">完全な所有権を保持します。</span>
</div>
</div>
</div>
<div class="xc-links-col">
<span class="xc-lbl lbl-teal">便利なリンク</span>
<h3>Xahau開発者向けリソース</h3>
<div class="xc-link-list">
<a
href="https://docs.xahau.network"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Xahauドキュメント</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://xahau.network/docs/hooks/"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Xahau Hooksドキュメント</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://github.com/Xahau"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">XahauのGitHubリポジトリ</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://xaman.app"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Xaman Webサイト</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://xahau-test.net/"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Xahau Testnetフォーセット</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://discord.gg/ds7nb93mYj"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">Xahau Discord</span>
<span class="resource-arrow">↗</span>
</a>
<a
href="https://github.com/xahau/xahau-2nd-dev-contest"
target="_blank"
rel="noopener noreferrer"
class="xc-resource-link"
>
<span class="resource-name">コンテストリポジトリ</span>
<span class="resource-arrow">↗</span>
</a>
</div>
</div>
</div>
</div>
</section>
<style>
.xcontest {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--border: #e4edef;
--hover-bg: #f4f6f7;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xcontest * {
box-sizing: border-box;
}
.xc-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xcontest h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xc-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xc-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xc-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
.xc-act {
padding-top: 52px;
}
.xc-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 36px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.xc-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-grn {
color: var(--grn2);
background: rgba(0, 122, 40, 0.09);
}
.lbl-teal {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.xcontest h3 {
margin: 0 0 16px;
font-size: 24px;
font-weight: 800;
letter-spacing: -0.02em;
line-height: 1.2;
color: var(--ink);
}
.xcontest p {
margin: 0 0 14px;
font-size: 14.5px;
line-height: 1.7;
color: var(--dim);
}
.xcontest a {
color: var(--grn2);
text-decoration: none;
font-weight: 600;
}
.xcontest a:hover {
text-decoration: underline;
}
.xc-intro-grid,
.xc-panel-grid,
.xc-rules-grid,
.xc-support-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: start;
}
.xc-prize-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-bottom: 28px;
}
.xc-prize {
display: flex;
align-items: center;
gap: 14px;
padding: 14px 18px;
border-radius: 10px;
border: 1.5px solid var(--border);
}
.prize-medal {
font-size: 22px;
flex-shrink: 0;
}
.prize-place {
display: block;
font-size: 13px;
font-weight: 700;
color: var(--ink);
letter-spacing: 0.01em;
}
.prize-value {
display: block;
font-size: 12px;
color: var(--mute);
margin-top: 2px;
}
.prize-gold {
background: linear-gradient(120deg, #fffbf0 0%, #fff 100%);
border-color: #e8d88a;
}
.prize-silver {
background: linear-gradient(120deg, #f7f9fa 0%, #fff 100%);
border-color: #c8d5da;
}
.prize-bronze {
background: #ffffff;
}
.xc-timeline {
border-top: 1.5px solid var(--border);
padding-top: 20px;
}
.xc-timeline .xc-lbl {
display: block;
margin-bottom: 10px;
}
.timeline-row {
display: flex;
align-items: baseline;
gap: 10px;
font-size: 14px;
color: var(--dim);
margin-bottom: 8px;
line-height: 1.5;
}
.timeline-dot {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--grn2);
flex-shrink: 0;
margin-top: 5px;
}
.xc-judge-list {
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
}
.xc-judge {
display: grid;
grid-template-columns: 1fr 1fr auto;
align-items: center;
gap: 8px;
padding: 13px 16px;
border-bottom: 1px solid var(--border);
}
.xc-judge:last-child {
border-bottom: none;
}
.judge-handle {
font-size: 14px;
font-weight: 700;
color: var(--ink);
}
.judge-role {
font-size: 12px;
color: var(--mute);
line-height: 1.4;
}
.judge-link {
font-family: ui-monospace, monospace;
font-size: 11px;
color: var(--teal2);
text-decoration: none;
white-space: nowrap;
font-weight: 600;
}
.judge-link:hover {
text-decoration: underline;
}
.xc-examples {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
margin-top: 16px;
}
.xc-example-group {
display: flex;
flex-direction: column;
gap: 4px;
padding: 14px 16px;
background: var(--hover-bg);
border-radius: 10px;
border: 1px solid var(--border);
}
.example-heading {
font-size: 12px;
font-weight: 700;
color: var(--ink);
margin-bottom: 6px;
letter-spacing: 0.01em;
}
.xc-example-group span:not(.example-heading) {
font-size: 12.5px;
color: var(--mute);
line-height: 1.5;
}
.xc-rule-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
}
.xc-rule-list li {
padding: 11px 16px;
font-size: 13.5px;
color: var(--dim);
line-height: 1.55;
border-bottom: 1px solid var(--border);
}
.xc-rule-list li:last-child {
border-bottom: none;
}
.xc-rule-list li strong {
color: var(--ink);
}
.xc-rule-list li a {
color: var(--grn2);
}
.xc-criteria {
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
margin-bottom: 28px;
}
.criterion {
padding: 12px 16px;
border-bottom: 1px solid var(--border);
}
.criterion:last-child {
border-bottom: none;
}
.criterion-label {
display: block;
font-size: 13px;
font-weight: 700;
color: var(--ink);
margin-bottom: 3px;
}
.criterion-desc {
display: block;
font-size: 12.5px;
color: var(--mute);
line-height: 1.45;
}
.xc-format {
border-top: 1.5px solid var(--border);
padding-top: 22px;
margin-top: 4px;
}
.xc-format .xc-lbl {
display: block;
}
.format-example {
background: var(--hover-bg);
border: 1px solid var(--border);
border-radius: 6px;
padding: 10px 14px;
margin: 10px 0 12px;
}
.format-example code {
font-family: ui-monospace, monospace;
font-size: 12px;
color: var(--ink);
word-break: break-all;
}
.xc-faq {
margin-top: 28px;
border-top: 1.5px solid var(--border);
padding-top: 20px;
}
.xc-faq .xc-lbl {
display: block;
}
.faq-item {
padding: 12px 0;
border-bottom: 1px solid var(--border);
}
.faq-item:last-child {
border-bottom: none;
}
.faq-q {
display: block;
font-size: 13.5px;
font-weight: 700;
color: var(--ink);
margin-bottom: 4px;
}
.faq-a {
display: block;
font-size: 13px;
color: var(--mute);
line-height: 1.5;
}
.ownership-note {
font-size: 13px;
color: var(--mute);
margin-top: -6px;
}
.xc-link-list {
display: flex;
flex-direction: column;
gap: 0;
border: 1.5px solid var(--border);
border-radius: 12px;
overflow: hidden;
margin-bottom: 28px;
}
.xc-resource-link {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid var(--border);
text-decoration: none;
transition: background 0.15s;
color: inherit;
}
.xc-resource-link:last-child {
border-bottom: none;
}
.xc-resource-link:hover {
background: var(--hover-bg);
text-decoration: none;
}
.resource-name {
font-size: 14px;
font-weight: 500;
color: var(--dim);
}
.resource-arrow {
font-size: 13px;
color: var(--teal2);
font-weight: 700;
}
@media (max-width: 900px) {
.xc-intro-grid,
.xc-panel-grid,
.xc-rules-grid,
.xc-support-grid {
grid-template-columns: 1fr;
}
.xc-examples {
grid-template-columns: 1fr 1fr;
}
.xc-judge {
grid-template-columns: 1fr 1fr;
}
.judge-link {
grid-column: span 2;
}
}
@media (max-width: 640px) {
.xcontest {
padding: 32px 20px 48px;
border-radius: 16px;
}
.xcontest h2 {
font-size: 28px;
}
.xc-head {
flex-direction: column;
gap: 14px;
}
.xc-examples {
grid-template-columns: 1fr;
}
.xc-judge {
grid-template-columns: 1fr;
}
.judge-link {
grid-column: span 1;
}
}
</style>

View File

@@ -0,0 +1,600 @@
---
/**
* XahauEcosystem.astro — Editorial ecosystem directory
*
* All content driven from src/data/ecosystem.json.
* Add/remove/update items there; no markup changes needed.
*
* Layout philosophy:
* - Wallets / Exchanges / Explorers → open logo strip, no boxes
* - Projects (no logos) → two-column editorial list, names as headings
*/
import { Image } from 'astro:assets'
import logoAfricanUnion from '../assets/ecosystem-logos/AUPF.png'
import logoBithomp from '../assets/ecosystem-logos/bithomp.png'
import logoBitmart from '../assets/ecosystem-logos/bitmart.png'
import logoBitrue from '../assets/ecosystem-logos/bitrue.png'
import logoCoopbank from '../assets/ecosystem-logos/Coopbank-Logo-Ethiopia.svg'
import logoCoinex from '../assets/ecosystem-logos/coinex.png'
import logoComingSoon from '../assets/ecosystem-logos/coming-soon.svg'
import logoDcent from '../assets/ecosystem-logos/dcent.png'
import logoGatehub from '../assets/ecosystem-logos/gatehub.png'
import logoQuantoz from '../assets/ecosystem-logos/quantoz.svg'
import logoXahauServices from '../assets/ecosystem-logos/xahau-services.png'
import logoXahscan from '../assets/ecosystem-logos/xahscan.png'
// ── Logo import map (static imports required by Astro)
import logoXaman from '../assets/ecosystem-logos/xaman.png'
import logoXrplwin from '../assets/ecosystem-logos/xrplwin.png'
import ecosystemData from '../data/ecosystem.json'
const logoMap: Record<string, ImageMetadata> = {
xaman: logoXaman,
dcent: logoDcent,
gatehub: logoGatehub,
bitrue: logoBitrue,
bitmart: logoBitmart,
coinex: logoCoinex,
xahscan: logoXahscan,
bithomp: logoBithomp,
xrplwin: logoXrplwin,
'xahau-services': logoXahauServices,
'Coopbank-Logo-Ethiopia': logoCoopbank,
AUPF: logoAfricanUnion,
quantoz: logoQuantoz,
}
type Locale = 'en' | 'es' | 'ja'
const locale = (Astro.currentLocale ?? 'en') as Locale
// Projects sorted alphabetically at build time; others keep editorial order.
const sections = ecosystemData.sections.map((section) =>
section.id === 'projects'
? {
...section,
items: [...section.items].sort((a, b) => a.name.localeCompare(b.name)),
}
: section,
)
---
<section class="xeco" aria-label="Xahau Ecosystem">
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════ -->
<header class="xe-head">
<div class="xe-head-title">
<h2>Ecosystem</h2>
<p class="xe-sub">
{sections.map(s => s.label['en']).join(', ')}
built on or around Xahau
</p>
</div>
<div class="xe-chips">
{sections.map(s => (
<span class="xe-chip">{s.items.length} {s.label['en']}</span>
))}
</div>
</header>
{sections.map(section => {
const isProjects = section.id === 'projects'
return (
<div class={`xe-act act-${section.theme}`}>
{/* Section label (pip + monospace) + tagline */}
<div class="xe-sect-head">
<p class="xe-act-label">
<span class={`act-pip pip-${section.theme}`}></span>
{section.label[locale]}
</p>
<p class="xe-sect-tag">{section.tagline[locale]}</p>
</div>
{isProjects ? (
/* ── Projects: two-column editorial list, no boxes ── */
<ul class="xe-project-list">
{section.items.map(item => (
<li class="xe-project-item">
<a
href={item.url}
target="_blank"
rel="noopener noreferrer"
class={`xe-project-link link-${section.theme}`}
>
<span class={`xe-project-name pname-${section.theme}`}>{item.name}</span>
<span class="xe-project-desc">{item.desc}</span>
<span class="xe-project-arrow">↗</span>
</a>
</li>
))}
</ul>
) : (
/* ── Logo strip: open flex, no boxes ── */
<div class="xe-logo-strip">
{section.items.map(item => {
const logo = item.logo ? logoMap[item.logo] : null
return (
item.coming_soon && !item.url ? (
<div class={`xe-logo-item litem-${section.theme} xe-coming-soon`}>
<div class="xe-logo-wrap xe-logo-wrap-dark">
<img src={logoComingSoon.src} alt="Coming soon" class="xe-logo-img xe-logo-img-cs" width="160" height="80" />
</div>
<span class="xe-logo-name">Coming soon</span>
<span class="xe-logo-desc">{item.desc}</span>
</div>
) : (
<a
href={item.url}
target="_blank"
rel="noopener noreferrer"
class={`xe-logo-item litem-${section.theme}`}
>
{logo ? (
<div
class="xe-logo-wrap"
style={item.logo_bg ? `background:${item.logo_bg};` : ''}
>
<Image src={logo} alt={item.name} class="xe-logo-img" />
</div>
) : (
<div class={`xe-logo-text-badge badge-${section.theme}`}>
{item.name}
</div>
)}
<span class="xe-logo-name">{item.name}</span>
<span class="xe-logo-desc">{item.desc}</span>
</a>
)
)
})}
</div>
)}
</div>
)
})}
<p class="xe-tm">
{locale === 'es'
? 'Todas las marcas y logotipos son propiedad de sus respectivos dueños.'
: locale === 'ja'
? 'すべての商標およびロゴは、各所有者の財産です。'
: 'All trademarks and logos are the property of their respective owners.'}
</p>
</section>
<style>
/* ══ Design tokens ════════════════════════════════════════════════════════ */
.xeco {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--amb2: #b56020;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
--amb-hi: #ff9030;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xeco * {
box-sizing: border-box;
}
/* ── Page header ─────────────────────────────────────────────────────── */
.xe-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xeco h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
}
.xe-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xe-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xe-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
/* ── Act structure ───────────────────────────────────────────────────── */
.xe-act {
padding-top: 56px;
}
.xe-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 20px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
.pip-amb {
background: var(--amb2);
}
/* Section header: label + tagline */
.xe-sect-head {
margin-bottom: 36px;
}
.xe-sect-head .xe-act-label {
margin-bottom: 6px;
}
.xe-sect-tag {
margin: 0;
font-size: 14px;
color: var(--mute);
}
/* ══ LOGO STRIP — wallets / exchanges / explorers ═════════════════════ */
.xe-logo-strip {
display: flex;
flex-wrap: wrap;
gap: 8px 0;
align-items: stretch;
/* subtle top rule */
border-top: 1px solid #e4edef;
}
.xe-logo-item {
display: flex;
flex-direction: column;
gap: 8px;
padding: 28px 32px 24px 0;
text-decoration: none;
color: var(--ink);
/* right border as divider */
border-right: 1px solid #e4edef;
margin-right: -1px; /* collapse double borders */
min-width: 180px;
flex: 1;
transition: background 0.15s;
}
.xe-logo-item:last-child {
border-right: none;
padding-right: 0;
}
.xe-logo-item:first-child {
padding-left: 0;
}
.xe-logo-item:not(:first-child) {
padding-left: 32px;
}
/* Hover tint per section */
.litem-grn:hover {
background: #f4fbf6;
}
.litem-teal:hover {
background: #f0f8fb;
}
.litem-amb:hover {
background: #fdf6ef;
}
/* Logo image container */
.xe-logo-wrap {
display: flex;
align-items: center;
height: 52px;
border-radius: 8px;
padding: 6px 10px;
width: fit-content;
}
/* No background: just align left */
.xe-logo-item .xe-logo-wrap:not([style]) {
padding: 0;
background: transparent;
}
.xe-logo-img {
max-height: 44px;
width: auto;
max-width: 140px;
object-fit: contain;
display: block;
}
/* Text badge for logo-less items within logo sections */
.xe-logo-text-badge {
display: flex;
align-items: center;
height: 52px;
font-size: 20px;
font-weight: 800;
letter-spacing: -0.02em;
}
.badge-grn {
color: var(--grn2);
}
.badge-teal {
color: var(--teal2);
}
.badge-amb {
color: var(--amb2);
}
.xe-logo-name {
font-size: 13px;
font-weight: 700;
color: var(--ink);
line-height: 1.2;
}
.xe-logo-desc {
font-size: 12px;
color: var(--mute);
line-height: 1.4;
flex: 1;
}
/* Dark wrap for coming-soon icon */
.xe-logo-wrap-dark {
background: #0b1f26;
border-radius: 10px;
padding: 4px 6px;
}
.xe-logo-img-cs {
max-height: 50px;
max-width: 160px;
}
/* ══ COMING SOON — teaser treatment ══════════════════════════════════ */
.xe-coming-soon {
opacity: 0.75;
pointer-events: none;
cursor: default;
border-style: dashed;
}
.xe-coming-soon .xe-logo-img {
animation: cs-pulse 2.8s ease-in-out infinite;
}
@keyframes cs-pulse {
0%,
100% {
opacity: 0.7;
transform: scale(1);
}
50% {
opacity: 1;
transform: scale(1.05);
}
}
.xe-logo-placeholder {
display: flex;
align-items: center;
justify-content: center;
background: var(--hover-bg);
border: 2px dashed var(--border);
}
.xe-placeholder-icon {
font-size: 24px;
color: var(--border);
font-weight: 700;
}
.xe-soon-badge {
display: inline-block;
margin-top: 4px;
font-size: 10px;
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--mute);
background: var(--hover-bg);
border: 1px solid var(--border);
border-radius: 4px;
padding: 2px 6px;
}
/* ══ PROJECT LIST — two-column editorial list ═════════════════════════ */
.xe-project-list {
list-style: none;
margin: 0;
padding: 0;
display: grid;
grid-template-columns: 1fr 1fr;
/* top rule */
border-top: 1px solid #e4edef;
}
.xe-project-item {
border-bottom: 1px solid #e4edef;
}
/* Odd items get a right divider */
.xe-project-item:nth-child(odd) {
border-right: 1px solid #e4edef;
}
.xe-project-link {
position: relative;
display: flex;
flex-direction: column;
gap: 4px;
padding: 22px 36px 22px 0;
text-decoration: none;
color: var(--ink);
transition: background 0.15s;
}
.xe-project-item:nth-child(odd) .xe-project-link {
padding-right: 32px;
}
.xe-project-item:nth-child(even) .xe-project-link {
padding-left: 32px;
padding-right: 0;
}
.link-vlt:hover {
background: #faf8ff;
}
.xe-project-name {
font-size: 19px;
font-weight: 800;
letter-spacing: -0.02em;
line-height: 1.15;
transition: opacity 0.15s;
}
.xe-project-link:hover .xe-project-name {
opacity: 0.75;
}
/* Per-section gradient on project names */
.pname-vlt {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xe-project-desc {
font-size: 13px;
color: var(--mute);
line-height: 1.45;
}
.xe-project-arrow {
position: absolute;
top: 22px;
right: 0;
font-size: 13px;
color: #cdd7dc;
transition:
color 0.15s,
transform 0.15s;
}
.xe-project-item:nth-child(even) .xe-project-arrow {
right: 0;
}
.xe-project-link:hover .xe-project-arrow {
color: var(--vlt2);
transform: translate(2px, -2px);
}
/* TM disclaimer */
.xe-tm {
margin-top: 48px;
font-size: 12px;
color: var(--mute);
opacity: 0.6;
}
/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 900px) {
.xe-logo-strip {
gap: 0;
}
.xe-logo-item {
min-width: 140px;
padding: 20px 24px 18px 0;
}
.xe-logo-item:not(:first-child) {
padding-left: 24px;
}
}
@media (max-width: 640px) {
.xeco {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xeco h2 {
font-size: 28px;
}
.xe-head {
flex-direction: column;
gap: 14px;
}
.xe-sect-title {
font-size: 24px;
}
.xe-logo-strip {
flex-direction: column;
border-top: none;
}
/* Reset all per-item padding rules so mobile stacking takes effect */
.xe-logo-item,
.xe-logo-item:not(:first-child),
.xe-logo-item:first-child,
.xe-logo-item:last-child {
padding: 18px 0 16px;
}
.xe-logo-item {
border-right: none;
border-top: 1px solid #e4edef;
flex-direction: row;
align-items: center;
gap: 14px;
}
.xe-logo-desc {
display: none;
}
.xe-project-list {
grid-template-columns: 1fr;
}
.xe-project-item:nth-child(odd) {
border-right: none;
}
.xe-project-item:nth-child(even) .xe-project-link {
padding-left: 0;
}
.xe-project-name {
font-size: 17px;
}
}
</style>

View File

@@ -0,0 +1,728 @@
---
/**
* XahauFeatures.astro — Hand-crafted editorial layout
*
* No JSON, no loops. Each feature section is individually composed.
* Three thematic acts: Protocol · Finance · Governance.
* Statement openers + varied pair/trio detail sections.
*
* Edit content directly in this file.
* For ES/JA: duplicate this file and translate in-place.
*/
import consensusGraphic from '../assets/enterprise/consensus.svg'
import globalGraphic from '../assets/enterprise/global.svg'
import hooksGraphic from '../assets/enterprise/hooks.svg'
interface Props {
lang?: string
}
const { lang = 'en' } = Astro.props
---
<section class="xfeat" aria-label="Xahau Features">
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════ -->
<header class="xf-head">
<div class="xf-head-title">
<h2>Features</h2>
<p class="xf-sub">Proven technology with a fresh approach</p>
</div>
<div class="xf-chips">
<span class="xf-chip">10+ Protocol Features</span>
<span class="xf-chip">Native DEX</span>
<span class="xf-chip">NFTs Built-In</span>
<span class="xf-chip">No Runtime Overhead</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
ACT I — PROTOCOL LAYER
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-proto">
<p class="xf-act-label">
<span class="act-pip pip-grn"></span>Protocol Layer
</p>
<!-- HOOKS ─ statement opener ────────────────────────────────────────── -->
<div class="xf-statement stmt-proto">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-proto">Programmability</span>
<h3>
Hooks: Account-Level
<br>
Smart Contract Logic
</h3>
<p>
Xahau introduces Hooks—a unique form of on-ledger smart contract logic
that runs directly at the account level. Unlike smart contracts on
most blockchains that require interacting with external contract
addresses, Hooks are lightweight programs embedded inside user
accounts themselves. These Hooks can automatically inspect, modify, or
reject any transaction involving that account, without the need for
explicit function calls.
</p>
<p>
Because Hooks are executed inline and within consensus, they offer
real-time programmability with minimal overhead. This allows for
powerful use cases such as rejecting unauthorized token transfers,
triggering actions on deposits, or implementing compliance logic—all
without slowing down the network. Hooks represent a new security and
programmability paradigm, making accounts active participants in
transaction logic.
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={hooksGraphic.src}
width="380"
height="380"
alt="Hooks smart contract logic illustration"
>
</div>
</div>
<!-- DEX + FEES ─ asymmetric pair ────────────────────────────────────── -->
<div class="xf-pair pair-6040">
<div class="xf-detail">
<span class="xf-lbl lbl-proto">Exchange</span>
<h4>Offers: Built-In Decentralized Exchange (DEX)</h4>
<p>
Xahau includes a native Offers system, powering a built-in
decentralized exchange on the ledger. Users can create Offer entries
to buy or sell assets (such as tokens or issued currencies) directly
on the network, and these offers are automatically matched by the
protocol's order book.
</p>
<p>
Unlike many blockchains that require smart contracts or external
platforms for trading, Xahau's DEX is a first-class feature of the
ledger. This on-ledger exchange offers fast settlement and low fees,
making asset trading seamless for users and applications.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-proto">Economics</span>
<h4>Low Fees with Fee Burning</h4>
<p>
Xahau maintains consistently low transaction fees, with a built-in
fee-burning model that reduces spam and rewards long-term network
health. Every transaction pays a minimal fee in XAH, and a portion of
that fee is permanently destroyed—creating a deflationary effect over
time.
</p>
<p>
This approach discourages network abuse while preserving
accessibility, particularly for high-throughput or cost-sensitive
applications. Unlike inflationary models or auction-style fees, Xahau
provides predictability and economic alignment for all users.
</p>
</div>
</div>
<!-- PERFORMANCE ─ solo wide ─────────────────────────────────────────── -->
<div class="xf-solo">
<span class="xf-lbl lbl-proto">Infrastructure</span>
<h4>Fast, Green, and Scalable</h4>
<div class="xf-solo-cols">
<p>
Built on a refined version of XRPL's consensus protocol, Xahau offers
fast finality, low energy usage, and reliable scalability.
Transactions confirm in seconds, with no mining and minimal hardware
requirements. The result is a network that can serve real-world
financial and enterprise use cases without compromising the
environment or user experience.
</p>
<p>
Xahau's architecture is ideal for global payment systems, tokenized
asset platforms, or high-volume applications where performance and
sustainability are non-negotiable.
</p>
</div>
</div>
</div><!-- /act-proto -->
<!-- ══════════════════════════════════════════════════════════════════════
ACT II — FINANCIAL PRIMITIVES
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-fin">
<p class="xf-act-label">
<span class="act-pip pip-teal"></span>Financial Primitives
</p>
<!-- PAYMENTS ─ statement opener ─────────────────────────────────────── -->
<div class="xf-statement stmt-fin">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-fin">Payments</span>
<h3>
Payments:
<br>
Multi-Asset Transfers
<br>
&amp; Channels
</h3>
<p>
The Payments functionality in Xahau is designed to facilitate fast,
flexible transfer of value across the network. Uniquely, Xahau (like
XRPL) supports multi-asset payments through a system of trust lines
and issued currencies. Using a TrustSet transaction, two parties can
establish a trust line to transact in a custom asset or IOU, enabling
built-in support for multiple currencies or tokens without requiring
smart contracts.
</p>
<p>
This means businesses can issue stablecoins or tokens on Xahau and
users can send or exchange them natively. The Payments suite also
includes advanced features like Deposit Preauthorization, which lets
an account whitelist who can send it funds, adding security against
unwanted transactions.
</p>
<p>
In addition, Xahau supports payment channels for scalability. Payment
channels allow two parties to conduct rapid, high-volume transactions
off-ledger and then settle the net result on the blockchain. With
transactions like PaymentChannelCreate, Fund, and Claim, Xahau enables
micropayments or streaming payments that are secured by the ledger but
don't congest it.
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={globalGraphic.src}
width="380"
height="380"
alt="Global network infrastructure illustration"
>
</div>
</div>
<!-- TOKENS + REWARDS ─ pair ─────────────────────────────────────────── -->
<div class="xf-pair pair-5545">
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Asset Control</span>
<h4>Token and Asset Control by Design</h4>
<p>
Xahau gives issuers and users granular control over tokens and
trustlines. Features like TrustSet, Clawback, Freeze, and Deposit
Authorization allow full customization of how tokens can be used or
received. Assets can be whitelisted, blocked, or burned, all enforced
at the protocol level.
</p>
<p>
This makes Xahau uniquely suited for regulated financial instruments,
stablecoins, loyalty programs, or enterprise supply chains—any
scenario where compliance, safety, and precision are critical.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Economics</span>
<h4>Balance Rewards: Passive Yield Without Staking</h4>
<p>
Xahau offers a Balance Reward system that lets accounts passively
accumulate value simply by holding assets. These rewards are
calculated based on account balance and distributed through a
consensus-enforced mechanism, without requiring staking, delegation,
or third-party contracts.
</p>
<p>
The mechanism is powered by protocol-level logic and on-chain Hooks,
ensuring rewards are automatic, fair, and sustainable. Unlike yield
farming or staking systems on other blockchains, Xahau's reward model
doesn't require users to lock assets or chase complex DeFi
strategies—it works natively, with transparency and simplicity.
</p>
</div>
</div>
<!-- ESCROW + REMIT + CHECKS ─ trio ──────────────────────────────────── -->
<div class="xf-trio">
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Primitives</span>
<h4>Escrow: Conditional Transfers for Any Asset</h4>
<p>
Xahau supports on-ledger escrow of both native and issued tokens,
enabling secure conditional transfers for a broad range of business
and financial use cases. Funds or tokens can be locked with time-based
or condition-based release logic, enforced by the network itself.
</p>
<p>
Whether you're building a milestone-based payment system, marketplace
settlement, or trusted token distribution, Xahau's escrows offer a
simple yet powerful tool—without the need for external smart
contracts. Native support for both fungible and non-fungible assets in
escrow makes this a uniquely versatile feature.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Payments</span>
<h4>Remit: Native Cross-Account Transfers</h4>
<p>
The Remit feature allows streamlined, multi-operation transactions
between accounts—ideal for complex or high-volume payment flows.
Instead of sending multiple separate instructions, a single Remit
transaction can distribute value to multiple recipients or trigger
multiple balance changes atomically.
</p>
<p>
This improves efficiency and reliability, especially for payment
processors, marketplaces, or applications that need to perform bundled
operations. Because it's built into the protocol, Remit ensures
predictable performance, low latency, and strong auditability.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Payments</span>
<h4>Checks: Deferred Payment System</h4>
<p>
Xahau supports Checks, a deferred payment system akin to writing
digital checks on the blockchain. One party can issue a Check (promise
of payment) that the intended recipient may cash at a later time or
cancel if needed. This feature allows secure, flexible
transactions—for example, a business can issue payment that the
receiver will claim when certain conditions are met.
</p>
<p>
The ledger has dedicated transactions for creating a check, cashing
it, or canceling it. Few other platforms have this kind of native
deferred payment instrument; Xahau's check system provides an extra
layer of payment control, all enforced by the network's rules without
requiring custom smart contracts.
</p>
</div>
</div>
</div><!-- /act-fin -->
<!-- ══════════════════════════════════════════════════════════════════════
ACT III — GOVERNANCE & IDENTITY
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-gov">
<p class="xf-act-label">
<span class="act-pip pip-vlt"></span>Governance &amp; Identity
</p>
<!-- GOVERNANCE ─ statement opener ──────────────────────────────────── -->
<div class="xf-statement stmt-gov">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-gov">Governance</span>
<h3>
Governance Game:
<br>
Decentralized Coordination
<br>
with Purpose
</h3>
<p>
Xahau features a novel governance system backed by the Governance
Game, a transparent, on-ledger mechanism for proposing, reviewing, and
voting on amendments. Validator operators (Governors) participate
directly in shaping the protocol, while also competing in a structured
reward system based on accountability and engagement.
</p>
<p>
This system ensures that protocol upgrades and policy decisions are
open and participatory, not dictated by a centralized entity. It
combines the benefits of structured enterprise coordination with the
transparency and resilience of decentralized consensus. By gamifying
governance in a secure and incentive-aligned way, Xahau sets a new
standard for on-chain coordination.
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={consensusGraphic.src}
width="380"
height="380"
alt="Consensus mechanism illustration"
>
</div>
</div>
<!-- URITOKENS ─ closing section ─────────────────────────────────────── -->
<div class="xf-closing">
<div class="xf-closing-inner">
<span class="xf-lbl lbl-gov">NFTs</span>
<h4>URITokens: Native NFTs on Xahau</h4>
<p>
URITokens represent Xahau's approach to non-fungible tokens (NFTs),
implemented as a native part of the ledger rather than via separate
smart contracts. A URIToken is a first-class on-ledger object uniquely
identified by the issuing account and a Uniform Resource Identifier
(URI) that typically points to the token's metadata or content. Only
one URIToken with a given URI can exist per account, ensuring true
uniqueness for each digital asset.
</p>
<p>
This built-in NFT standard means creators can mint, trade, or burn
NFTs with simple transactions (e.g. URITokenMint, URITokenBuy,
URITokenBurn) without deploying custom code. The issuer of a URIToken
can even allow it to be destroyed (burned) by setting a flag, giving
flexibility in how NFTs are managed. By integrating NFTs at the
protocol level, Xahau makes issuing and managing digital collectibles
or credentials more efficient and secure.
</p>
</div>
</div>
</div><!-- /act-gov -->
</section>
<style>
/* ══════════════════════════════════════════════════════════════════════════
Design tokens
══════════════════════════════════════════════════════════════════════════ */
.xfeat {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xfeat * {
box-sizing: border-box;
}
/* ══════════════════════════════════════════════════════════════════════════
Page header
══════════════════════════════════════════════════════════════════════════ */
.xf-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xfeat h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xf-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xf-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xf-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
/* ══════════════════════════════════════════════════════════════════════════
Acts
══════════════════════════════════════════════════════════════════════════ */
.xf-act {
padding-top: 52px;
}
.xf-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 44px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
/* ══════════════════════════════════════════════════════════════════════════
Labels
══════════════════════════════════════════════════════════════════════════ */
.xf-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-proto {
color: var(--grn2);
background: rgba(0, 140, 43, 0.1);
}
.lbl-fin {
color: var(--teal2);
background: rgba(0, 144, 171, 0.1);
}
.lbl-gov {
color: var(--vlt2);
background: rgba(91, 30, 200, 0.1);
}
/* ══════════════════════════════════════════════════════════════════════════
Statement sections
══════════════════════════════════════════════════════════════════════════ */
.xf-statement {
display: flex;
align-items: center;
}
.xf-stmt-body {
flex: 0 0 57%;
max-width: 57%;
padding: 64px 0 64px 28px;
}
.xf-stmt-graphic {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 8px 32px 16px;
opacity: 0.95;
}
.xf-stmt-graphic img {
width: 100%;
max-width: 340px;
height: auto;
display: block;
}
.xf-statement h3 {
margin: 0 0 22px;
font-size: 40px;
font-weight: 800;
line-height: 1.12;
letter-spacing: -0.03em;
color: var(--ink); /* fallback */
}
/* ── Gradient text on statement h3 per act ── */
.stmt-proto h3 {
background: linear-gradient(140deg, #004d1a 15%, var(--grn-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-fin h3 {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-gov h3 {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xf-statement p {
font-size: 15.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 16px;
}
.xf-statement p:last-child {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Detail sections — pairs and trios
══════════════════════════════════════════════════════════════════════════ */
.xf-pair,
.xf-trio {
display: grid;
}
.pair-6040 {
grid-template-columns: 3fr 2fr;
}
.pair-5545 {
grid-template-columns: 11fr 9fr;
}
.xf-trio {
grid-template-columns: repeat(3, 1fr);
}
.xf-detail {
padding: 48px 40px 48px 28px;
}
.xf-detail h4 {
margin: 0 0 14px;
font-size: 19px;
font-weight: 700;
line-height: 1.28;
letter-spacing: -0.014em;
color: var(--ink); /* overridden per-act below */
}
/* ── Solid colour on detail/solo/closing h4 per act ── */
.act-proto .xf-detail h4,
.act-proto .xf-solo h4 {
color: var(--grn2);
}
.act-fin .xf-detail h4 {
color: var(--teal2);
}
.act-gov .xf-detail h4,
.act-gov .xf-closing h4 {
color: var(--vlt2);
}
.xf-detail p {
font-size: 14px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 12px;
}
.xf-detail p:last-of-type {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Solo wide section
══════════════════════════════════════════════════════════════════════════ */
.xf-solo {
padding: 52px 0 52px 28px;
}
.xf-solo h4 {
margin: 0 0 18px;
font-size: 22px;
font-weight: 700;
letter-spacing: -0.016em;
color: var(--ink); /* overridden per-act above */
}
.xf-solo-cols {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
max-width: 900px;
}
.xf-solo-cols p {
font-size: 14.5px;
line-height: 1.72;
color: var(--dim);
margin: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Closing section
══════════════════════════════════════════════════════════════════════════ */
.xf-closing {
padding: 52px 0 52px 28px;
}
.xf-closing-inner {
max-width: 640px;
}
.xf-closing h4 {
margin: 0 0 16px;
font-size: 22px;
font-weight: 700;
letter-spacing: -0.016em;
color: var(--ink); /* overridden per-act above */
}
.xf-closing p {
font-size: 14.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 14px;
}
.xf-closing p:last-child {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Responsive
══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
.xf-statement {
flex-direction: column;
align-items: flex-start;
}
.xf-stmt-body {
flex: none;
max-width: 100%;
}
.xf-stmt-graphic {
width: 100%;
padding: 0 0 32px;
opacity: 0.6;
}
.xf-stmt-graphic img {
max-width: 240px;
margin: 0 auto;
}
.xf-pair,
.xf-trio {
grid-template-columns: 1fr;
}
.xf-solo-cols {
grid-template-columns: 1fr;
gap: 0;
}
.xf-solo-cols p {
margin-bottom: 14px;
}
}
@media (max-width: 640px) {
.xfeat {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xfeat h2 {
font-size: 28px;
}
.xf-statement h3 {
font-size: 26px;
}
.xf-head {
flex-direction: column;
gap: 14px;
}
.xf-stmt-body {
padding: 44px 0 44px 22px;
}
.xf-detail {
padding: 36px 20px 36px 22px;
}
}
</style>

View File

@@ -0,0 +1,295 @@
---
/**
* XahauFeatures.astro
* Data-driven Features page. Reads src/data/features.json.
* Checkerboard layout: features alternate graphic-right / graphic-left.
* Styled to match XahauAbout / XahauRoadmap theme-light — same box, same tokens.
*
* Usage:
* <XahauFeatures lang="en" /> (also accepts "es", "ja")
*/
import { Image } from 'astro:assets'
import featuresData from '../data/features.json'
import hooksGraphic from '../assets/enterprise/hooks.svg'
import consensusGraphic from '../assets/enterprise/consensus.svg'
import tokenGraphic from '../assets/enterprise/token.svg'
import globalGraphic from '../assets/enterprise/global.svg'
interface Props {
lang?: string
}
const { lang: langProp = 'en' } = Astro.props
const defaultLang = 'en'
type Lang = keyof typeof featuresData.content
const lang: Lang = (langProp in featuresData.content ? langProp : defaultLang) as Lang
const c = featuresData.content[lang]
const graphicMap: Record<string, ImageMetadata> = {
hooks: hooksGraphic,
consensus: consensusGraphic,
token: tokenGraphic,
global: globalGraphic,
}
---
<section class="xfeat" aria-label={c.title}>
<!-- ── Header ─────────────────────────────────────────────────────── -->
<header class="xf-head">
<div class="xf-title">
<h2>{c.title}</h2>
<p class="xf-sub">{c.subtitle}</p>
</div>
<div class="xf-chips">
{c.chips.map(chip => (
<span class="xf-chip">{chip}</span>
))}
</div>
</header>
<!-- ── Feature rows: checkerboard alternating layout ─────────────── -->
<div class="xf-list">
{c.features.map((f, i) => {
const graphic = f.graphic ? graphicMap[f.graphic] : null
// Even index → graphic on RIGHT; odd → graphic on LEFT
const panelSide = i % 2 === 0 ? 'panel-right' : 'panel-left'
return (
<div class={`xf-card type-${f.type} ${panelSide}`}>
<!-- Text body -->
<div class="xf-card-body">
<span class="xf-label">{f.label}</span>
<h3>{f.heading}</h3>
{f.paragraphs.map(p => <p>{p}</p>)}
</div>
<!-- Graphic / accent panel -->
<div class={`xf-panel xf-panel-${f.type}`}>
{graphic ? (
<Image
src={graphic}
alt=""
width={400}
height={400}
class="xf-panel-img"
aria-hidden="true"
/>
) : (
<span class="xf-panel-label" aria-hidden="true">{f.label}</span>
)}
</div>
</div>
)
})}
</div>
</section>
<style>
/* ── Design tokens — identical to XahauAbout / roadmap theme-light ── */
.xfeat {
--bg: #eef2f1;
--panel: #fbfbf9;
--ink: #0f2328;
--ink-dim: #2a3439;
--ink-mute: #546066;
--line: #d6dcde;
--line-2: #b9c2c6;
--accent: #5de48c;
--accent-2: #007b3d;
--teal: #44c7b6;
--violet: #9a7cff;
--rose: #ff6b9a;
background: linear-gradient(180deg, #fbfbf9, #f3f6f4);
border: 1px solid var(--line);
border-radius: 18px;
padding: 30px 34px 32px;
color: var(--ink);
font-family: 'Onest', system-ui, sans-serif;
box-shadow: 0 22px 56px -28px rgba(15, 35, 40, 0.28);
display: flex;
flex-direction: column;
gap: 20px;
}
.xfeat * { box-sizing: border-box; }
/* ── Header ─────────────────────────────────────────────────────── */
.xf-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 20px;
flex-wrap: wrap;
}
.xfeat h2 {
margin: 0;
font-size: 28px;
font-weight: 600;
letter-spacing: -0.01em;
line-height: 1.2;
}
.xf-sub {
color: var(--ink-mute);
font-size: 13px;
margin: 4px 0 0;
}
.xf-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xf-chip {
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
font-size: 11px;
padding: 5px 10px;
border: 1px solid var(--line-2);
border-radius: 999px;
color: var(--ink-mute);
white-space: nowrap;
}
/* ── Section labels ──────────────────────────────────────────────── */
.xf-label {
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
font-size: 10px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--accent-2);
display: block;
margin-bottom: 6px;
}
/* ── Feature list: vertical stack ───────────────────────────────── */
.xf-list {
display: flex;
flex-direction: column;
gap: 12px;
}
/* ── Feature cards — flex row, body + panel ──────────────────────── */
.xf-card {
display: flex;
align-items: stretch;
background: #ffffff;
border: 1px solid var(--line);
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 16px -10px rgba(15, 35, 40, 0.18);
min-height: 160px;
}
/* ── Left accent border by type (always on card's left edge) ──── */
.xf-card.type-protocol { border-left: 3px solid var(--accent-2); }
.xf-card.type-finance { border-left: 3px solid var(--teal); }
.xf-card.type-governance { border-left: 3px solid var(--violet); }
/* ── Text body ───────────────────────────────────────────────────── */
.xf-card-body {
flex: 1;
padding: 22px 28px;
min-width: 0;
}
.xf-card h3 {
margin: 0 0 12px;
font-size: 17px;
font-weight: 600;
letter-spacing: -0.005em;
line-height: 1.3;
color: var(--ink);
}
.xf-card p {
color: var(--ink-dim);
font-size: 15px;
line-height: 1.65;
margin: 0 0 10px;
}
.xf-card p:last-child { margin-bottom: 0; }
/* ── Graphic / accent panel ──────────────────────────────────────── */
.xf-panel {
width: 260px;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 24px 20px;
position: relative;
overflow: hidden;
}
/* Panel colour themes */
.xf-panel-protocol {
background: linear-gradient(160deg, rgba(0,123,61,0.06) 0%, rgba(93,228,140,0.04) 100%);
}
.xf-panel-finance {
background: linear-gradient(160deg, rgba(68,199,182,0.08) 0%, rgba(68,199,182,0.03) 100%);
}
.xf-panel-governance {
background: linear-gradient(160deg, rgba(154,124,255,0.08) 0%, rgba(154,124,255,0.03) 100%);
}
/* ── Checkerboard: default = panel on RIGHT ──────────────────────── */
.xf-card.panel-right .xf-panel {
order: 2;
border-left: 1px solid var(--line);
}
.xf-card.panel-right .xf-card-body { order: 1; }
/* ── Checkerboard: panel on LEFT ─────────────────────────────────── */
.xf-card.panel-left .xf-panel {
order: 1;
border-right: 1px solid var(--line);
}
.xf-card.panel-left .xf-card-body { order: 2; }
/* ── SVG graphic in panel ────────────────────────────────────────── */
.xf-panel-img {
width: 100%;
max-width: 200px;
height: auto;
opacity: 0.55;
display: block;
}
/* ── Decorative label for no-graphic panels ──────────────────────── */
.xf-panel-label {
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
font-weight: 800;
font-size: 36px;
text-transform: uppercase;
letter-spacing: -0.02em;
line-height: 1;
text-align: center;
word-break: break-word;
hyphens: auto;
opacity: 0.12;
color: var(--ink);
}
/* ── Responsive: collapse panel below 860px ──────────────────────── */
@media (max-width: 860px) {
.xf-panel { display: none; }
.xf-card-body { order: 1 !important; }
}
@media (max-width: 640px) {
.xfeat {
padding: 20px 16px 24px;
border-radius: 14px;
gap: 14px;
}
.xfeat h2 { font-size: 22px; }
.xf-head { flex-direction: column; gap: 12px; }
.xf-chips { padding-top: 0; }
.xf-card-body { padding: 18px 20px; }
}
</style>

View File

@@ -0,0 +1,665 @@
---
/**
* XahauFeaturesEs.astro — Versión en español del layout editorial
*
* Sin JSON, sin bucles. Cada sección está compuesta individualmente.
* Tres actos temáticos: Protocolo · Finanzas · Gobernanza.
*
* Edita el contenido directamente en este archivo.
*/
import consensusGraphic from '../assets/enterprise/consensus.svg'
import globalGraphic from '../assets/enterprise/global.svg'
import hooksGraphic from '../assets/enterprise/hooks.svg'
---
<section class="xfeat" aria-label="Características de Xahau">
<!-- ══ ENCABEZADO ═══════════════════════════════════════════════════════ -->
<header class="xf-head">
<div class="xf-head-title">
<h2>Características</h2>
<p class="xf-sub">Tecnología probada con un enfoque innovador</p>
</div>
<div class="xf-chips">
<span class="xf-chip">10+ Funciones de Protocolo</span>
<span class="xf-chip">DEX Nativo</span>
<span class="xf-chip">NFTs Integrados</span>
<span class="xf-chip">Sin Sobrecarga de Ejecución</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
ACTO I — CAPA DE PROTOCOLO
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-proto">
<p class="xf-act-label">
<span class="act-pip pip-grn"></span>Capa de Protocolo
</p>
<!-- HOOKS ─ sección principal ───────────────────────────────────────── -->
<div class="xf-statement stmt-proto">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-proto">Programabilidad</span>
<h3>
Hooks: Lógica de Contrato
<br>
Inteligente a Nivel de Cuenta
</h3>
<p>
Xahau introduce los Hooks, una forma única de lógica de contrato
inteligente on-ledger que se ejecuta directamente a nivel de cuenta. A
diferencia de los contratos inteligentes en la mayoría de blockchains,
que requieren interactuar con direcciones de contratos externas, los
Hooks son programas ligeros incrustados dentro de las propias cuentas
de usuario. Estos Hooks pueden inspeccionar, modificar o rechazar
automáticamente cualquier transacción que involucre esa cuenta, sin
necesidad de llamadas a funciones explícitas.
</p>
<p>
Dado que los Hooks se ejecutan inline y dentro del consenso, ofrecen
programabilidad en tiempo real con una sobrecarga mínima. Rechaza
transferencias de tokens no autorizadas, desencadena acciones en
depósitos, implementa lógica de cumplimiento normativo — todo sin
ralentizar la red. Los Hooks representan un nuevo paradigma de
seguridad y programabilidad.
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={hooksGraphic.src}
width="380"
height="380"
alt="Hooks smart contract logic illustration"
>
</div>
</div>
<!-- DEX + COMISIONES ─ par asimétrico ───────────────────────────────── -->
<div class="xf-pair pair-6040">
<div class="xf-detail">
<span class="xf-lbl lbl-proto">Exchange</span>
<h4>Ofertas: Exchange Descentralizado (DEX) Integrado</h4>
<p>
Xahau incluye un sistema de Ofertas nativo, que impulsa un exchange
descentralizado integrado en el ledger. Los usuarios pueden crear
entradas de Oferta para comprar o vender activos directamente en la
red; el libro de órdenes del protocolo las empareja automáticamente.
Intercambio entre pares sin intermediarios ni plataformas externas.
</p>
<p>
A diferencia de la mayoría de blockchains que necesitan contratos
inteligentes para el trading, el DEX de Xahau es una característica de
primera clase del ledger — liquidación rápida, bajas comisiones,
integración perfecta.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-proto">Economía</span>
<h4>Bajas Comisiones con Quema de Fees</h4>
<p>
Comisiones de transacción consistentemente bajas, respaldadas por un
modelo integrado de quema de fees que reduce el spam y premia la salud
a largo plazo de la red. Cada transacción paga una comisión mínima en
XAH; una parte se destruye permanentemente — un silencioso efecto
deflacionario.
</p>
<p>
A diferencia de los modelos inflacionarios o las comisiones de tipo
subasta, Xahau proporciona previsibilidad y alineación económica para
todos los usuarios.
</p>
</div>
</div>
<!-- RENDIMIENTO ─ sección amplia ────────────────────────────────────── -->
<div class="xf-solo">
<span class="xf-lbl lbl-proto">Infraestructura</span>
<h4>Rápido, Verde y Escalable</h4>
<div class="xf-solo-cols">
<p>
Construido sobre una versión refinada del protocolo de consenso del
XRPL, Xahau ofrece finalidad rápida, bajo consumo de energía y
escalabilidad fiable. Las transacciones se confirman en segundos — sin
minería, requisitos mínimos de hardware.
</p>
<p>
El resultado es una red que puede servir casos de uso financieros y
empresariales del mundo real sin comprometer el medio ambiente ni la
experiencia del usuario. Ideal para sistemas de pago globales, activos
tokenizados o aplicaciones de alto volumen donde el rendimiento y la
sostenibilidad son innegociables.
</p>
</div>
</div>
</div><!-- /act-proto -->
<!-- ══════════════════════════════════════════════════════════════════════
ACTO II — PRIMITIVAS FINANCIERAS
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-fin">
<p class="xf-act-label">
<span class="act-pip pip-teal"></span>Primitivas Financieras
</p>
<!-- PAGOS ─ sección principal ───────────────────────────────────────── -->
<div class="xf-statement stmt-fin">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-fin">Pagos</span>
<h3>
Transferencias Multi-Activo
<br>y Canales de Pago
</h3>
<p>
Xahau soporta pagos multi-activo a través de un sistema de líneas de
confianza y monedas emitidas. Usando una transacción TrustSet, dos
partes pueden establecer una línea de confianza para transaccionar en
cualquier activo personalizado o IOU — soporte integrado para
múltiples monedas y tokens, sin contratos inteligentes.
</p>
<p>
Las empresas pueden emitir stablecoins o tokens en Xahau; los usuarios
los envían e intercambian de forma nativa. La suite de Pagos también
incluye Preautorización de Depósito, que permite a las cuentas incluir
en una lista blanca quién puede enviarles fondos — seguridad contra
transacciones no deseadas.
</p>
<p>
Y para escala: Xahau soporta canales de pago que permiten
transacciones rápidas y de alto volumen fuera del ledger con
liquidación on-chain. Micropagos, pagos en streaming — asegurados por
el ledger sin congestionarlo.
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={globalGraphic.src}
width="380"
height="380"
alt="Global network infrastructure illustration"
>
</div>
</div>
<!-- TOKENS + RECOMPENSAS ─ par ──────────────────────────────────────── -->
<div class="xf-pair pair-5545">
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Control de Activos</span>
<h4>Control de Tokens y Activos por Diseño</h4>
<p>
Control granular sobre tokens y líneas de confianza. TrustSet,
Clawback, Freeze y Deposit Authorization permiten una personalización
completa de cómo se pueden usar o recibir los tokens. Los activos
pueden ser incluidos en listas blancas, bloqueados o quemados — todo
aplicado a nivel de protocolo.
</p>
<p>
Especialmente adecuado para instrumentos financieros regulados,
stablecoins, programas de fidelización o cadenas de suministro
empresariales donde el cumplimiento normativo, la seguridad y la
precisión son críticos.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Economía</span>
<h4>Recompensas de Saldo: Rendimiento Pasivo Sin Staking</h4>
<p>
Las cuentas acumulan valor pasivamente simplemente manteniendo
activos. Las recompensas se calculan en función del saldo de la cuenta
y se distribuyen mediante un mecanismo aplicado por consenso — sin
staking, sin delegación, sin contratos de terceros.
</p>
<p>
A diferencia del yield farming en otros lugares, el modelo de
recompensas de Xahau funciona de forma nativa, transparente y
automática.
</p>
</div>
</div>
<!-- ESCROW + REMIT + CHEQUES ─ trío ─────────────────────────────────── -->
<div class="xf-trio">
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Primitivas</span>
<h4>Escrow</h4>
<p>
Escrow on-ledger para tokens nativos y emitidos. Los fondos se
bloquean con lógica de liberación basada en tiempo o condiciones,
aplicada por la propia red — sin contratos inteligentes externos.
</p>
<p>
Pagos por hitos, liquidación de marketplace, distribución de confianza
— soporte nativo para activos fungibles y no fungibles en escrow.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Pagos</span>
<h4>Remit</h4>
<p>
Transacciones multi-operación simplificadas entre cuentas. Un solo
Remit puede distribuir valor a múltiples destinatarios o desencadenar
múltiples cambios de saldo de forma atómica — sin pila de
instrucciones separadas.
</p>
<p>
Rendimiento predecible, baja latencia, sólida trazabilidad para
procesadores de pago y marketplaces. Integrado en el protocolo.
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">Pagos</span>
<h4>Cheques</h4>
<p>
Un sistema de pago diferido — como escribir cheques digitales
on-chain. Emite un Cheque que el destinatario cobra más tarde, o
cancela si es necesario. Control de pago adicional, aplicado puramente
por las reglas de la red.
</p>
<p>
Pocas plataformas tienen un instrumento de pago diferido nativo. Sin
contratos inteligentes personalizados. Solo una primitiva limpia y
simple.
</p>
</div>
</div>
</div><!-- /act-fin -->
<!-- ══════════════════════════════════════════════════════════════════════
ACTO III — GOBERNANZA E IDENTIDAD
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-gov">
<p class="xf-act-label">
<span class="act-pip pip-vlt"></span>Gobernanza e Identidad
</p>
<!-- GOBERNANZA ─ sección principal ──────────────────────────────────── -->
<div class="xf-statement stmt-gov">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-gov">Gobernanza</span>
<h3>
El Juego de Gobernanza:
<br>
Coordinación Descentralizada
<br>
con Propósito
</h3>
<p>
Xahau cuenta con un novedoso sistema de gobernanza respaldado por el
Juego de Gobernanza — un mecanismo transparente y on-ledger para
proponer, revisar y votar enmiendas. Los operadores de validadores
(Gobernadores) participan directamente en la configuración del
protocolo, compitiendo en un sistema de recompensas estructurado
basado en la responsabilidad y el compromiso.
</p>
<p>
Las actualizaciones del protocolo y las decisiones de política son
abiertas y participativas, no dictadas por una entidad centralizada.
La coordinación empresarial estructurada se une a la transparencia y
resiliencia del consenso descentralizado — estableciendo un nuevo
estándar para la coordinación on-chain.
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={consensusGraphic.src}
width="380"
height="380"
alt="Consensus mechanism illustration"
>
</div>
</div>
<!-- URITOKENS ─ sección de cierre ───────────────────────────────────── -->
<div class="xf-closing">
<div class="xf-closing-inner">
<span class="xf-lbl lbl-gov">NFTs</span>
<h4>URITokens: NFTs Nativos en Xahau</h4>
<p>
Los URITokens representan el enfoque de Xahau hacia los tokens no
fungibles — implementados como una parte nativa del ledger, no
mediante contratos inteligentes separados. Un URIToken es un objeto
on-ledger de primera clase, identificado de forma única por la cuenta
emisora y el URI. Solo puede existir un URIToken con un URI dado por
cuenta, garantizando la verdadera unicidad de cada activo digital.
</p>
<p>
Los creadores acuñan, intercambian o queman NFTs con transacciones
simples — URITokenMint, URITokenBuy, URITokenBurn — sin desplegar
código personalizado. El emisor puede incluso permitir la quema
estableciendo un flag. NFTs a nivel de protocolo: más eficientes, más
seguros, menos fricción.
</p>
</div>
</div>
</div><!-- /act-gov -->
</section>
<style>
/* Design tokens */
.xfeat {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xfeat * {
box-sizing: border-box;
}
.xf-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xfeat h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xf-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xf-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xf-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
.xf-act {
padding-top: 52px;
}
.xf-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 44px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
.xf-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-proto {
color: var(--grn2);
background: rgba(0, 140, 43, 0.1);
}
.lbl-fin {
color: var(--teal2);
background: rgba(0, 144, 171, 0.1);
}
.lbl-gov {
color: var(--vlt2);
background: rgba(91, 30, 200, 0.1);
}
.xf-statement {
display: flex;
align-items: center;
}
.xf-stmt-body {
flex: 0 0 57%;
max-width: 57%;
padding: 64px 0 64px 28px;
}
.xf-stmt-graphic {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 8px 32px 16px;
opacity: 0.95;
}
.xf-stmt-graphic img {
width: 100%;
max-width: 340px;
height: auto;
display: block;
}
.xf-statement h3 {
margin: 0 0 22px;
font-size: 40px;
font-weight: 800;
line-height: 1.12;
letter-spacing: -0.03em;
color: var(--ink);
}
.stmt-proto h3 {
background: linear-gradient(140deg, #004d1a 15%, var(--grn-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-fin h3 {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-gov h3 {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xf-statement p {
font-size: 15.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 16px;
}
.xf-statement p:last-child {
margin-bottom: 0;
}
.xf-pair,
.xf-trio {
display: grid;
}
.pair-6040 {
grid-template-columns: 3fr 2fr;
}
.pair-5545 {
grid-template-columns: 11fr 9fr;
}
.xf-trio {
grid-template-columns: repeat(3, 1fr);
}
.xf-detail {
padding: 48px 40px 48px 28px;
}
.xf-detail h4 {
margin: 0 0 14px;
font-size: 19px;
font-weight: 700;
line-height: 1.28;
letter-spacing: -0.014em;
color: var(--ink);
}
.act-proto .xf-detail h4,
.act-proto .xf-solo h4 {
color: var(--grn2);
}
.act-fin .xf-detail h4 {
color: var(--teal2);
}
.act-gov .xf-detail h4,
.act-gov .xf-closing h4 {
color: var(--vlt2);
}
.xf-detail p {
font-size: 14px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 12px;
}
.xf-detail p:last-of-type {
margin-bottom: 0;
}
.xf-solo {
padding: 52px 0 52px 28px;
}
.xf-solo h4 {
margin: 0 0 18px;
font-size: 22px;
font-weight: 700;
letter-spacing: -0.016em;
color: var(--ink);
}
.xf-solo-cols {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
max-width: 900px;
}
.xf-solo-cols p {
font-size: 14.5px;
line-height: 1.72;
color: var(--dim);
margin: 0;
}
.xf-closing {
padding: 52px 0 52px 28px;
}
.xf-closing-inner {
max-width: 640px;
}
.xf-closing h4 {
margin: 0 0 16px;
font-size: 22px;
font-weight: 700;
letter-spacing: -0.016em;
color: var(--ink);
}
.xf-closing p {
font-size: 14.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 14px;
}
.xf-closing p:last-child {
margin-bottom: 0;
}
@media (max-width: 900px) {
.xf-statement {
flex-direction: column;
align-items: flex-start;
}
.xf-stmt-body {
flex: none;
max-width: 100%;
}
.xf-stmt-graphic {
width: 100%;
padding: 0 0 32px;
opacity: 0.6;
}
.xf-stmt-graphic img {
max-width: 240px;
margin: 0 auto;
}
.xf-pair,
.xf-trio {
grid-template-columns: 1fr;
}
.xf-solo-cols {
grid-template-columns: 1fr;
gap: 0;
}
.xf-solo-cols p {
margin-bottom: 14px;
}
}
@media (max-width: 640px) {
.xfeat {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xfeat h2 {
font-size: 28px;
}
.xf-statement h3 {
font-size: 26px;
}
.xf-head {
flex-direction: column;
gap: 14px;
}
.xf-stmt-body {
padding: 44px 0 44px 22px;
}
.xf-detail {
padding: 36px 20px 36px 22px;
}
}
</style>

View File

@@ -0,0 +1,618 @@
---
/**
* XahauFeaturesJa.astro — 日本語版 手作りエディトリアルレイアウト
*
* JSONなし、ループなし。各セクションを個別に構成。
* 三つのテーマ別アクト:プロトコル層・金融プリミティブ・ガバナンスとアイデンティティ
*
* コンテンツはこのファイルで直接編集してください。
*/
import consensusGraphic from '../assets/enterprise/consensus.svg'
import globalGraphic from '../assets/enterprise/global.svg'
import hooksGraphic from '../assets/enterprise/hooks.svg'
---
<section class="xfeat" aria-label="Xahau の機能">
<!-- ══ ページヘッダー ════════════════════════════════════════════════════ -->
<header class="xf-head">
<div class="xf-head-title">
<h2>機能</h2>
<p class="xf-sub">実証された技術と革新的なアプローチ</p>
</div>
<div class="xf-chips">
<span class="xf-chip">10以上のプロトコル機能</span>
<span class="xf-chip">ネイティブDEX</span>
<span class="xf-chip">NFT組み込み済み</span>
<span class="xf-chip">実行オーバーヘッドなし</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
アクト I — プロトコル層
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-proto">
<p class="xf-act-label">
<span class="act-pip pip-grn"></span>プロトコル層
</p>
<!-- HOOKS ─ ステートメントオープナー ──────────────────────────────────── -->
<div class="xf-statement stmt-proto">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-proto">プログラマビリティ</span>
<h3>
Hooksアカウントレベルの
<br>
スマートコントラクトロジック
</h3>
<p>
Xahauはアカウントレベルで直接動作するユニークな形式のオンレジャースマートコントラクトロジックであるHooksを導入しています。外部のコントラクトアドレスとの対話を必要とする他のブロックチェーンのスマートコントラクトとは異なり、Hooksはユーザーアカウント自体に組み込まれた軽量なプログラムです。これらのHooksは、明示的な関数呼び出しなしに、そのアカウントに関わるあらゆる取引を自動的に検査、変更、または拒否することができます。
</p>
<p>
Hooksはインラインかつコンセンサス内で実行されるため、最小限のオーバーヘッドでリアルタイムのプログラマビリティを提供します。これにより、不正なトークン転送の拒否、入金時のアクションのトリガー、コンプライアンスロジックの実装などの強力なユースケースが可能になります。Hooksは新しいセキュリティとプログラマビリティのパラダイムを表し、アカウントをトランザクションロジックのアクティブな参加者にします。
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={hooksGraphic.src}
width="380"
height="380"
alt="Hooks smart contract logic illustration"
>
</div>
</div>
<!-- DEX + 手数料 ─ 非対称ペア ───────────────────────────────────────── -->
<div class="xf-pair pair-6040">
<div class="xf-detail">
<span class="xf-lbl lbl-proto">取引所</span>
<h4>オファー内蔵の分散型取引所DEX</h4>
<p>
Xahauはネイティブのオファーシステムを含み、レジャー上の内蔵分散型取引所を動かしています。ユーザーはネットワーク上で直接資産トークンや発行通貨などを売買するためのオファーエントリを作成でき、これらのオファーはプロトコルのオーダーブックによって自動的にマッチングされます。
</p>
<p>
取引のためにスマートコントラクトや外部プラットフォームを必要とする多くのブロックチェーンとは異なり、XahauのDEXはレジャーのファーストクラスの機能です。このオンレジャー取引所は高速決済と低手数料を提供し、ユーザーやアプリケーションにとってシームレスな資産取引を実現します。
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-proto">エコノミクス</span>
<h4>手数料燃焼による低手数料</h4>
<p>
Xahauは一貫して低い取引手数料を維持し、スパムを減らしてネットワークの長期的な健全性を報酬する組み込みの手数料燃焼モデルを持っています。各取引はXAHで最小限の手数料を支払い、その手数料の一部は永久に破壊され、時間とともにデフレ効果をもたらします。
</p>
<p>
このアプローチはネットワークの乱用を抑止しながらアクセシビリティを維持します。インフレモデルやオークション形式の手数料とは異なり、Xahauはすべてのユーザーに予測可能性と経済的整合性を提供します。
</p>
</div>
</div>
<!-- パフォーマンス ─ ソロワイド ────────────────────────────────────────── -->
<div class="xf-solo">
<span class="xf-lbl lbl-proto">インフラストラクチャ</span>
<h4>高速、グリーン、スケーラブル</h4>
<div class="xf-solo-cols">
<p>
XRPLのコンセンサスプロトコルの洗練されたバージョンの上に構築されたXahauは、高速なファイナリティ、低エネルギー使用量、信頼性の高いスケーラビリティを提供します。取引は数秒で確認され、マイニングなし、最小限のハードウェア要件で行われます。その結果、環境やユーザーエクスペリエンスを損なうことなく、実世界の金融およびエンタープライズのユースケースに対応できるネットワークが実現します。
</p>
<p>
Xahauのアーキテクチャは、パフォーマンスと持続可能性が交渉の余地のないグローバル決済システム、トークン化資産プラットフォーム、または高ボリュームアプリケーションに最適です。
</p>
</div>
</div>
</div><!-- /act-proto -->
<!-- ══════════════════════════════════════════════════════════════════════
アクト II — 金融プリミティブ
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-fin">
<p class="xf-act-label">
<span class="act-pip pip-teal"></span>金融プリミティブ
</p>
<!-- 支払い ─ ステートメントオープナー ──────────────────────────────────── -->
<div class="xf-statement stmt-fin">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-fin">決済</span>
<h3>
支払い:マルチアセット
<br>
転送とチャンネル
</h3>
<p>
Xahauの支払い機能は、ネットワーク全体での価値の高速かつ柔軟な転送を容易にするように設計されています。Xahauはトラストラインと発行通貨のシステムを通じてマルチアセット支払いをサポートし、スマートコントラクトを必要とせずに複数の通貨やトークンの組み込みサポートを可能にします。
</p>
<p>
これは、企業がXahau上でステーブルコインやトークンを発行し、ユーザーがそれらをネイティブに送受信または交換できることを意味します。支払いスイートには、口座に資金を送れる人をホワイトリスト化できる入金事前承認など、不要な取引に対するセキュリティを追加する高度な機能も含まれています。
</p>
<p>
さらに、Xahauはスケーラビリティのためのペイメントチャンネルをサポートしています。ペイメントチャンネルにより、2者がオフレジャーで高速・大量の取引を行い、その後正味の結果をブロックチェーン上で決済することができます。PaymentChannelCreate、Fund、Claimなどのトランザクションにより、Xahauはレジャーによって保護されるがそれを混雑させないマイクロペイメントやストリーミングペイメントを可能にします。
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={globalGraphic.src}
width="380"
height="380"
alt="Global network infrastructure illustration"
>
</div>
</div>
<!-- トークン + 報酬 ─ ペア ──────────────────────────────────────────── -->
<div class="xf-pair pair-5545">
<div class="xf-detail">
<span class="xf-lbl lbl-fin">資産管理</span>
<h4>設計によるトークンと資産の制御</h4>
<p>
Xahauは発行者とユーザーにトークンとトラストラインに対する詳細な制御を与えます。TrustSet、Clawback、Freeze、Deposit
Authorizationなどの機能により、トークンの使用方法や受け取り方を完全にカスタマイズできます。資産はホワイトリスト化、ブロック、または燃焼させることができ、すべてプロトコルレベルで適用されます。
</p>
<p>
これにより、Xahauは規制された金融商品、ステーブルコイン、ロイヤルティプログラム、エンタープライズサプライチェーンなど、コンプライアンス、安全性、精度が重要なシナリオに特に適しています。
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">エコノミクス</span>
<h4>残高報酬:ステーキングなしのパッシブ収益</h4>
<p>
Xahauは残高報酬システムを提供しており、アカウントが資産を保有するだけで価値を受動的に積み立てることができます。これらの報酬はアカウント残高に基づいて計算され、ステーキング、委任、サードパーティのコントラクトを必要とせず、コンセンサスによって適用されるメカニズムを通じて分配されます。
</p>
<p>
このメカニズムはプロトコルレベルのロジックとオンチェーンHooksによって支えられており、報酬が自動的、公正、持続可能であることを保証します。他のブロックチェーンのイールドファーミングやステーキングシステムとは異なり、Xahauの報酬モデルはユーザーが資産をロックしたり複雑なDeFi戦略を追いかけたりする必要がありません。
</p>
</div>
</div>
<!-- エスクロー + Remit + チェック ─ トリオ ──────────────────────────────── -->
<div class="xf-trio">
<div class="xf-detail">
<span class="xf-lbl lbl-fin">プリミティブ</span>
<h4>エスクロー:あらゆる資産の条件付き転送</h4>
<p>
Xahauはネイティブおよび発行済みトークンのオンレジャーエスクローをサポートし、幅広いビジネスおよび金融ユースケースのための安全な条件付き転送を可能にします。資金またはトークンは、ネットワーク自体によって適用される時間ベースまたは条件ベースのリリースロジックでロックできます。
</p>
<p>
Xahauのエスクローは外部のスマートコントラクトを必要とせず、シンプルながら強力なツールを提供します。エスクローにおける代替可能および代替不可能な資産の両方に対するネイティブサポートにより、この機能は特に多用途です。
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">決済</span>
<h4>Remitネイティブのクロスアカウント転送</h4>
<p>
Remit機能により、アカウント間での合理化されたマルチオペレーション取引が可能になり、複雑または大量の支払いフローに最適です。複数の個別の命令を送信する代わりに、単一のRemit取引が複数の受取人に価値を配布したり、複数の残高変更をアトミックにトリガーしたりできます。
</p>
<p>
これにより、特に支払い処理業者、マーケットプレイス、またはバンドル操作を実行する必要があるアプリケーションの効率性と信頼性が向上します。プロトコルに組み込まれているため、Remitは予測可能なパフォーマンス、低レイテンシ、および強力な監査可能性を保証します。
</p>
</div>
<div class="xf-detail">
<span class="xf-lbl lbl-fin">決済</span>
<h4>チェック:繰延決済システム</h4>
<p>
Xahauはブロックチェーン上でデジタル小切手を書くような繰延決済システムであるチェックをサポートしています。一方が後で現金化するか、必要に応じてキャンセルできるチェック支払いの約束を発行できます。この機能により、安全で柔軟な取引が可能になります。
</p>
<p>
レジャーにはチェックの作成、現金化、またはキャンセルのための専用トランザクションがあります。Xahauのチェックシステムは、カスタムスマートコントラクトを必要とせず、ネットワークのルールによってすべて適用される追加の支払い制御層を提供します。
</p>
</div>
</div>
</div><!-- /act-fin -->
<!-- ══════════════════════════════════════════════════════════════════════
アクト III — ガバナンスとアイデンティティ
══════════════════════════════════════════════════════════════════════════ -->
<div class="xf-act act-gov">
<p class="xf-act-label">
<span class="act-pip pip-vlt"></span>ガバナンスとアイデンティティ
</p>
<!-- ガバナンス ─ ステートメントオープナー ──────────────────────────────── -->
<div class="xf-statement stmt-gov">
<div class="xf-stmt-body">
<span class="xf-lbl lbl-gov">ガバナンス</span>
<h3>
ガバナンスゲーム:
<br>
目的を持った
<br>
分散型調整
</h3>
<p>
Xahauはガバナンスゲームに裏付けられた新しいガバナンスシステムを特徴としています。これは、修正案を提案、審査、投票するための透明でオンレジャーのメカニズムです。バリデーターオペレーターガバナーは、説明責任とエンゲージメントに基づく構造化された報酬システムで競いながら、プロトコルの形成に直接参加します。
</p>
<p>
このシステムにより、プロトコルのアップグレードとポリシー決定が、中央集権的なエンティティによって指示されるのではなく、オープンで参加型になることが保証されます。構造化されたエンタープライズ調整の利点と、分散型コンセンサスの透明性と回復力を組み合わせています。安全でインセンティブに沿った方法でガバナンスをゲーム化することで、Xahauはオンチェーン調整の新しい基準を設定します。
</p>
</div>
<div class="xf-stmt-graphic">
<img
src={consensusGraphic.src}
width="380"
height="380"
alt="Consensus mechanism illustration"
>
</div>
</div>
<!-- URITokens ─ クロージングセクション ─────────────────────────────────── -->
<div class="xf-closing">
<div class="xf-closing-inner">
<span class="xf-lbl lbl-gov">NFT</span>
<h4>URITokensXahauのネイティブNFT</h4>
<p>
URITokensは、別のスマートコントラクトを介してではなく、レジャーのネイティブな部分として実装されたXahauの非代替トークンNFTへのアプローチを表しています。URITokenは、発行アカウントとトークンのメタデータやコンテンツを通常指すUniform
Resource
IdentifierURIによって一意に識別される、ファーストクラスのオンレジャーオブジェクトです。アカウントごとに特定のURIを持つURITokenは1つしか存在できず、各デジタル資産の真の独自性を確保します。
</p>
<p>
この組み込みNFT標準により、クリエイターはカスタムコードをデプロイすることなく、シンプルな取引URITokenMint、URITokenBuy、URITokenBurnでNFTをミント、取引、または燃焼させることができます。URITokenの発行者はフラグを設定することで破壊燃焼を許可することもでき、NFTの管理方法に柔軟性を与えます。プロトコルレベルでNFTを統合することで、Xahauはデジタルコレクティブルや資格情報の発行・管理をより効率的かつ安全にします。
</p>
</div>
</div>
</div><!-- /act-gov -->
</section>
<style>
/* ══════════════════════════════════════════════════════════════════════════
Design tokens
══════════════════════════════════════════════════════════════════════════ */
.xfeat {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--vlt2: #4e18b8;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
--vlt-hi: #a050ff;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xfeat * {
box-sizing: border-box;
}
/* ══════════════════════════════════════════════════════════════════════════
Page header
══════════════════════════════════════════════════════════════════════════ */
.xf-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xfeat h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xf-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xf-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xf-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
/* ══════════════════════════════════════════════════════════════════════════
Acts
══════════════════════════════════════════════════════════════════════════ */
.xf-act {
padding-top: 52px;
}
.xf-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 44px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
.pip-vlt {
background: var(--vlt2);
}
/* ══════════════════════════════════════════════════════════════════════════
Labels
══════════════════════════════════════════════════════════════════════════ */
.xf-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-proto {
color: var(--grn2);
background: rgba(0, 122, 40, 0.1);
}
.lbl-fin {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.lbl-gov {
color: var(--vlt2);
background: rgba(78, 24, 184, 0.1);
}
/* ══════════════════════════════════════════════════════════════════════════
Statement sections
══════════════════════════════════════════════════════════════════════════ */
.xf-statement {
display: flex;
align-items: center;
}
.xf-stmt-body {
flex: 0 0 57%;
max-width: 57%;
padding: 64px 0 64px 28px;
}
.xf-stmt-graphic {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 8px 32px 16px;
opacity: 0.95;
}
.xf-stmt-graphic img {
width: 100%;
max-width: 340px;
height: auto;
display: block;
}
.xf-statement h3 {
margin: 0 0 22px;
font-size: 40px;
font-weight: 800;
line-height: 1.18;
letter-spacing: -0.02em;
color: var(--ink);
}
/* Gradient text on statement h3 per act */
.stmt-proto h3 {
background: linear-gradient(140deg, #004d1a 15%, var(--grn-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-fin h3 {
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stmt-gov h3 {
background: linear-gradient(140deg, #2a0875 15%, var(--vlt-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xf-statement p {
font-size: 15.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 16px;
}
.xf-statement p:last-child {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Detail sections — pairs and trios
══════════════════════════════════════════════════════════════════════════ */
.xf-pair,
.xf-trio {
display: grid;
}
.pair-6040 {
grid-template-columns: 3fr 2fr;
}
.pair-5545 {
grid-template-columns: 11fr 9fr;
}
.xf-trio {
grid-template-columns: repeat(3, 1fr);
}
.xf-detail {
padding: 48px 40px 48px 28px;
}
.xf-detail h4 {
margin: 0 0 14px;
font-size: 19px;
font-weight: 700;
line-height: 1.32;
letter-spacing: -0.01em;
color: var(--ink);
}
/* Solid colour on detail/solo/closing h4 per act */
.act-proto .xf-detail h4,
.act-proto .xf-solo h4 {
color: var(--grn2);
}
.act-fin .xf-detail h4 {
color: var(--teal2);
}
.act-gov .xf-detail h4,
.act-gov .xf-closing h4 {
color: var(--vlt2);
}
.xf-detail p {
font-size: 14px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 12px;
}
.xf-detail p:last-of-type {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Solo wide section
══════════════════════════════════════════════════════════════════════════ */
.xf-solo {
padding: 52px 0 52px 28px;
}
.xf-solo h4 {
margin: 0 0 18px;
font-size: 22px;
font-weight: 700;
letter-spacing: -0.01em;
color: var(--ink);
}
.xf-solo-cols {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
max-width: 900px;
}
.xf-solo-cols p {
font-size: 14.5px;
line-height: 1.72;
color: var(--dim);
margin: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Closing section
══════════════════════════════════════════════════════════════════════════ */
.xf-closing {
padding: 52px 0 52px 28px;
}
.xf-closing-inner {
max-width: 640px;
}
.xf-closing h4 {
margin: 0 0 16px;
font-size: 22px;
font-weight: 700;
letter-spacing: -0.01em;
color: var(--ink);
}
.xf-closing p {
font-size: 14.5px;
line-height: 1.72;
color: var(--dim);
margin: 0 0 14px;
}
.xf-closing p:last-child {
margin-bottom: 0;
}
/* ══════════════════════════════════════════════════════════════════════════
Responsive
══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
.xf-statement {
flex-direction: column;
align-items: flex-start;
}
.xf-stmt-body {
flex: none;
max-width: 100%;
}
.xf-stmt-graphic {
width: 100%;
padding: 0 0 32px;
opacity: 0.85;
}
.xf-stmt-graphic img {
max-width: 240px;
margin: 0 auto;
}
.xf-pair,
.xf-trio {
grid-template-columns: 1fr;
}
.xf-solo-cols {
grid-template-columns: 1fr;
gap: 0;
}
.xf-solo-cols p {
margin-bottom: 14px;
}
}
@media (max-width: 640px) {
.xfeat {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xfeat h2 {
font-size: 28px;
}
.xf-statement h3 {
font-size: 26px;
}
.xf-head {
flex-direction: column;
gap: 14px;
}
.xf-stmt-body {
padding: 44px 0 44px 22px;
}
.xf-detail {
padding: 36px 20px 36px 22px;
}
}
</style>

View File

@@ -0,0 +1,448 @@
---
/**
* XahauHome.astro — Editorial home page sections (Network + Statistics)
*
* Hero lives in IndexLayout. This component renders the two post-hero acts
* in the same white-card editorial style as XahauAbout / XahauFeatures.
*
* Stats values are driven from src/data/home.json — update the JSON to
* change the numbers without touching markup.
*/
import { getRelativeLocaleUrl } from 'astro:i18n'
import homeData from '../data/home.json'
import type { IndexLocale } from '../i18n/indexTranslations'
import { indexTranslations } from '../i18n/indexTranslations'
const locale = (Astro.currentLocale ?? 'en') as IndexLocale
const i = indexTranslations[locale]
const stats = homeData.stats
// Build a plain array from the flat feat1…feat5 translation keys
type TKey = keyof typeof i
const features = [1, 2, 3, 4, 5].map((n) => ({
title: i[`feat${n}_title` as TKey] as string,
desc: i[`feat${n}_desc` as TKey] as string,
}))
---
<section class="xhome" aria-label={i.network_title}>
<!-- ══ PAGE HEADER ══════════════════════════════════════════════════════ -->
<header class="xh-head">
<div class="xh-head-title">
<h2>{i.network_title}</h2>
<p class="xh-sub">{i.network_subtitle}</p>
</div>
<div class="xh-chips">
<span class="xh-chip">Est. October 2023</span>
<span class="xh-chip">~4s Settlement</span>
<span class="xh-chip">10k tx / ledger</span>
<span class="xh-chip">200k+ Accounts</span>
</div>
</header>
<!-- ══════════════════════════════════════════════════════════════════════
ACT I — THE NETWORK (green)
══════════════════════════════════════════════════════════════════════════ -->
<div class="xh-act act-net">
<p class="xh-act-label"><span class="act-pip pip-grn"></span>Network</p>
<div class="xh-feats">
{features.map(f => (
<div class="xh-feat">
<h4>{f.title}</h4>
<p>{f.desc}</p>
</div>
))}
</div>
<div class="xh-feats-cta">
<a
href={getRelativeLocaleUrl(locale, '/features')}
class="xh-cta xh-cta-grn"
>
{i.feat_more}→
</a>
</div>
</div><!-- /act-net -->
<!-- ══════════════════════════════════════════════════════════════════════
ACT II — STATISTICS (teal)
══════════════════════════════════════════════════════════════════════════ -->
<div class="xh-act act-stats">
<p class="xh-act-label"><span class="act-pip pip-teal"></span>Statistics</p>
<div class="xh-stats-head">
<div>
<span class="xh-lbl lbl-stats">Network</span>
<h3>
{i.stats_title}
<br>
<em>{i.stats_subtitle}</em>
</h3>
</div>
</div>
<!-- Stats tiles — values come from home.json -->
<div class="xh-stats">
{stats.map(s => (
s.type === 'cta' ? (
<a
href={getRelativeLocaleUrl(locale, s.url)}
class={`xh-stat xh-stat-cta tile-${s.theme}`}
style={`--col:${s.col}`}
>
<span class="xh-stat-cta-label">
{s.label[locale as keyof typeof s.label]}
</span>
<span class="xh-stat-cta-arrow">→</span>
</a>
) : (
<div
class={`xh-stat tile-${s.theme}`}
style={`--col:${s.col}`}
>
<span class="xh-stat-lbl">
{s.label[locale as keyof typeof s.label]}
</span>
<span class="xh-stat-val">{s.value}</span>
</div>
)
))}
</div>
</div><!-- /act-stats -->
</section>
<style>
/* ══ Design tokens — mirrors XahauAbout / XahauFeatures exactly ══════════ */
.xhome {
--ink: #0f2328;
--dim: #2d3e44;
--mute: #556068;
--grn2: #007a28;
--teal2: #006f87;
--grn-hi: #00c940;
--teal-hi: #00c4e8;
background: #ffffff;
border-radius: 24px;
padding: 48px 56px 72px;
font-family: 'Onest', system-ui, sans-serif;
color: var(--ink);
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.04),
0 20px 64px -24px rgba(15, 35, 40, 0.13);
}
.xhome * {
box-sizing: border-box;
}
/* ── Page header ─────────────────────────────────────────────────────── */
.xh-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.xhome h2 {
margin: 0;
font-size: 36px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.08;
color: var(--ink);
}
.xh-sub {
margin: 6px 0 0;
font-size: 15px;
color: var(--mute);
}
.xh-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: flex-start;
padding-top: 4px;
}
.xh-chip {
font-family: ui-monospace, monospace;
font-size: 11px;
padding: 5px 13px;
border: 1px solid #cdd7dc;
border-radius: 999px;
color: var(--mute);
white-space: nowrap;
letter-spacing: 0.03em;
}
/* ── Acts ────────────────────────────────────────────────────────────── */
.xh-act {
padding-top: 52px;
}
.xh-act-label {
display: flex;
align-items: center;
gap: 10px;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--mute);
margin: 0 0 36px;
}
.act-pip {
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
flex-shrink: 0;
}
.pip-grn {
background: var(--grn2);
}
.pip-teal {
background: var(--teal2);
}
/* ── Act I: Features grid ────────────────────────────────────────────── */
.xh-feats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px 40px;
align-items: end;
}
.xh-feat h4 {
margin: 0 0 10px;
font-size: 17px;
font-weight: 700;
letter-spacing: -0.01em;
color: var(--ink);
}
.xh-feat p {
margin: 0;
font-size: 14.5px;
line-height: 1.68;
color: var(--dim);
}
/* CTA row below features grid */
.xh-feats-cta {
margin-top: 28px;
}
/* CTA button */
.xh-cta {
display: inline-flex;
align-items: center;
height: 44px;
padding: 0 24px;
font-family: inherit;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.01em;
text-decoration: none;
border-radius: 6px;
transition:
background 0.18s,
color 0.18s;
align-self: end;
}
.xh-cta-grn {
background: var(--grn2);
color: #ffffff;
}
.xh-cta-grn:hover {
background: #004d18;
}
/* ── Act II: Statistics label + h3 ──────────────────────────────────── */
.xh-lbl {
display: inline-block;
font-family: ui-monospace, monospace;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
padding: 3px 9px;
border-radius: 4px;
margin-bottom: 14px;
}
.lbl-stats {
color: var(--teal2);
background: rgba(0, 111, 135, 0.1);
}
.xh-stats-head h3 {
margin: 0 0 36px;
font-size: 36px;
font-weight: 800;
line-height: 1.18;
letter-spacing: -0.02em;
background: linear-gradient(140deg, #003d50 15%, var(--teal-hi) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.xh-stats-head h3 em {
font-style: normal;
}
/* ── Stats tiles grid ────────────────────────────────────────────────── */
.xh-stats {
display: grid;
grid-template-columns: repeat(9, 1fr);
gap: 12px;
}
.xh-stat {
grid-column: span var(--col, 3);
min-height: 148px;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-end;
padding: 20px 22px;
border-radius: 12px;
border: 1.5px solid #d0dde0;
}
.tile-light {
background: #ffffff;
color: var(--ink);
}
.tile-dark {
background: #e6f2ea;
color: var(--ink);
border-color: #c8e0cf;
}
.tile-teal {
background: #e0f2f6;
color: var(--ink);
border-color: #b8dde6;
}
.tile-sage {
background: #eef4f0;
color: var(--ink);
border-color: #d0e2d5;
}
.xh-stat-lbl {
font-family: ui-monospace, monospace;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
opacity: 0.7;
margin-bottom: 8px;
}
.xh-stat-val {
font-size: 52px;
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1;
}
.tile-light .xh-stat-val {
color: var(--ink);
}
.tile-dark .xh-stat-val,
.tile-teal .xh-stat-val,
.tile-sage .xh-stat-val {
color: var(--ink);
}
/* CTA tile inside the stats grid */
.xh-stat-cta {
text-decoration: none;
cursor: pointer;
justify-content: space-between;
align-items: flex-end;
flex-direction: row;
flex-wrap: wrap;
gap: 8px;
border-style: dashed;
transition:
background 0.18s,
border-color 0.18s;
}
.xh-stat-cta:hover {
background: #f0f5f6;
border-color: var(--teal2);
}
.xh-stat-cta-label {
font-size: 18px;
font-weight: 700;
letter-spacing: -0.01em;
line-height: 1.3;
color: var(--ink);
max-width: 160px;
}
.xh-stat-cta-arrow {
font-size: 28px;
line-height: 1;
color: var(--teal2);
align-self: flex-end;
transition: transform 0.18s;
}
.xh-stat-cta:hover .xh-stat-cta-arrow {
transform: translate(3px, -2px);
}
/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 900px) {
.xh-feats {
grid-template-columns: repeat(2, 1fr);
}
.xh-stats {
grid-template-columns: repeat(4, 1fr);
}
.xh-stat {
grid-column: span 2;
min-height: 120px;
}
.xh-stat-cta {
grid-column: span 4;
}
.xh-stat-val {
font-size: 38px;
}
}
@media (max-width: 640px) {
.xhome {
padding: 32px 24px 48px;
border-radius: 16px;
}
.xhome h2 {
font-size: 28px;
}
.xh-head {
flex-direction: column;
gap: 14px;
}
.xh-feats {
grid-template-columns: 1fr;
}
.xh-stats {
grid-template-columns: repeat(2, 1fr);
gap: 8px;
}
.xh-stat {
grid-column: span 1;
min-height: 100px;
padding: 14px 16px;
}
.xh-stat[style*='--col:3'],
.xh-stat[style*='--col:4'],
.xh-stat[style*='--col:5'] {
grid-column: span 2;
}
.xh-stat-val {
font-size: 32px;
}
.xh-stats-head h3 {
font-size: 26px;
}
}
</style>

File diff suppressed because it is too large Load Diff

322
src/data/about.json Normal file
View File

@@ -0,0 +1,322 @@
{
"meta": {
"videoId": "4pruN6sWJho",
"launched": "October 2023",
"accounts": "200k+",
"settlement": "~4s"
},
"content": {
"en": {
"title": "About Xahau",
"subtitle": "Enterprise L1 blockchain with account-based programmability",
"chips": [
"Est. October 2023",
"200k+ Accounts",
"~4s Settlement",
"10k tx / ledger"
],
"intro": {
"label": "Overview",
"paragraphs": [
"Xahau is a L1 blockchain built for serious programmability — combining battle-tested ledger technology with a powerful and distinctive approach to smart contracts, known as Hooks.",
"The technology settles transactions in approximately 4 seconds at costs as low as fractions of a USD cent. Capable of processing up to 10,000 transactions per ledger, the network is inherently green and energy-efficient by design.",
"Xahau offers native features for issuing and trading currencies on the built-in decentralised exchange, native non-fungible tokens, atomic multi-asset transactions via the Remit transactor, and limitless DeFi possibilities through Hooks — Xahau's account-based smart contract system.",
"Hooks live directly on accounts, responding to transaction events such as payments received, sent, or routed. Originally developed in C, Hooks now support any WebAssembly-compatible language. JavaScript Hook support (JSHooks) is advancing through security audits, bringing programmable finance within reach of tens of millions of developers worldwide."
]
},
"tech": {
"label": "Protocol",
"heading": "What is the technology behind Xahau?",
"paragraphs": [
"Xahau is proven, production-grade technology — an evolved iteration of the XRP Ledger codebase, enhanced with account-based smart contract programmability (Hooks), equal native support for issued currencies in features such as escrows and payment channels, and an atomic transaction layer enabling complex, multi-step operations to execute as a single indivisible unit.",
"Xahau uses a Federated Consensus mechanism to validate transactions. Independent servers called validators reach agreement on the order and outcome of every transaction. All servers process each transaction according to the same rules, and any valid transaction is confirmed within seconds. All activity is public and transparent, and anyone may operate a validator.",
"Governance of the network is guided by a structured governance game, ensuring community-driven decision-making. Participants across a two-tier table system cast votes on network seats, Hook amendments, and reward parameters — giving the ecosystem genuine and ongoing influence over the network's direction."
]
},
"currency": {
"label": "Economics",
"heading": "XAH, the native currency of Xahau",
"paragraphs": [
"The native currency of Xahau is XAH — an inflationary asset designed to reward active participation. Every account can claim a monthly balance adjustment by interacting with a Hook on the genesis account, accruing 4% of their account balance each month.",
"XAH serves as the network's anti-spam mechanism, attaching a cost to every transaction. Standard transactions cost fractions of a single XAH; Hook-augmented operations carry proportionally higher fees, reflecting their on-chain computational weight. XAH is also required as a locked reserve to maintain accounts, hold objects, and store data used by smart contracts.",
"XAH is available on major exchanges including Bitrue, BitMart, and CoinEx, and is supported by Ledger hardware wallets — making it increasingly accessible to users worldwide. Projects that rely on Hooks for custom logic are advised to maintain a XAH balance sufficient to generate monthly adjustments to cover ongoing fees."
]
},
"events": {
"label": "History",
"heading": "Key milestones",
"intro": "From mainnet launch to global financial partnerships — Xahau has moved with purpose.",
"milestones": [
{
"date": "Oct 2023",
"type": "genesis",
"title": "Mainnet launch",
"detail": "Independent XRPL builders launch Xahau mainnet. The interim Xahau Launch Alliance immediately dissolves, passing governance to the community and its structured governance game."
},
{
"date": "Mar 2024",
"type": "protocol",
"title": "Remit transactor",
"detail": "Atomic multi-asset transaction type enters production, enabling complex multi-recipient distributions in a single indivisible operation."
},
{
"date": "2024",
"type": "growth",
"title": "100,000 activated accounts",
"detail": "The ecosystem reaches a defining adoption milestone, demonstrating real and sustained growth beyond the founding ecosystem."
},
{
"date": "2024",
"type": "partnership",
"title": "InFTF × COOP — remittance",
"detail": "First cross-border remittance service on Xahau launches with the Cooperative Bank of Oromia (15.7M+ customers), enabling the African Diaspora to send EUR across borders with near-zero cost, settling in ETB within seconds."
},
{
"date": "2024",
"type": "partnership",
"title": "African Union MoU",
"detail": "InFTF signs a Memorandum of Understanding with the African Union to advance the AU Peace Fund through programmable financial infrastructure on Xahau."
},
{
"date": "2025",
"type": "security",
"title": "JSHooks security audit",
"detail": "JavaScript Hook support advances through rigorous security audits, moving toward mainnet availability for tens of millions of developers worldwide."
},
{
"date": "2025",
"type": "access",
"title": "Ledger hardware wallet",
"detail": "Xahau gains full Ledger hardware wallet compatibility, opening the network to mainstream institutional and retail custody workflows."
},
{
"date": "2025",
"type": "access",
"title": "Exchange expansion",
"detail": "XAH listed on CoinEx and BitMart. Roadmap targets further exchange and on/off-ramp access through 20252026."
},
{
"date": "Q1 2026",
"type": "security",
"title": "JSHooks enters staged rollout",
"detail": "JavaScript Hook support completes its security audit phase and begins staged mainnet deployment — bringing programmable finance within reach of tens of millions of JS developers."
},
{
"date": "Q2 2026",
"type": "protocol",
"title": "AMM & PriceOracle amendments",
"detail": "Native Automated Market Maker and on-ledger PriceOracle primitives submitted for amendment vote — bringing deep DEX liquidity and tamper-resistant price feeds to Hooks and DeFi applications on Xahau."
}
]
}
},
"es": {
"title": "Sobre Xahau",
"subtitle": "Blockchain L1 empresarial con programabilidad basada en cuentas",
"chips": [
"Est. octubre 2023",
"200k+ Cuentas",
"~4s Liquidación",
"10k tx / ledger"
],
"intro": {
"label": "Descripción",
"paragraphs": [
"Xahau es una blockchain L1 construida para la programabilidad seria — combinando tecnología de ledger contrastada con un enfoque poderoso y distintivo hacia los contratos inteligentes, conocidos como Hooks.",
"La tecnología liquida transacciones en aproximadamente 4 segundos a costes de apenas fracciones de un centavo de USD. Con capacidad para procesar hasta 10.000 transacciones por ledger, la red es inherentemente verde y eficiente energéticamente por diseño.",
"Xahau ofrece características nativas para emitir y negociar monedas en el exchange descentralizado integrado, tokens no fungibles nativos, transacciones atómicas multi-activo mediante el transactor Remit, y oportunidades ilimitadas para DeFi a través de Hooks — el sistema de contratos inteligentes basado en cuentas de Xahau.",
"Los Hooks residen directamente en las cuentas, respondiendo a eventos de transacción como pagos recibidos, enviados o enrutados. Desarrollados originalmente en C, los Hooks ahora soportan cualquier lenguaje compilable con WebAssembly. El soporte para Hooks en JavaScript (JSHooks) avanza a través de auditorías de seguridad, acercando las finanzas programables a decenas de millones de desarrolladores en todo el mundo."
]
},
"tech": {
"label": "Protocolo",
"heading": "¿Cuál es la tecnología detrás de Xahau?",
"paragraphs": [
"Xahau es tecnología probada y lista para producción — una iteración evolucionada del código del XRP Ledger, mejorada con programabilidad de contratos inteligentes basada en cuentas (Hooks), soporte nativo igualitario para monedas emitidas en características como garantías y canales de pago, y una capa de transacciones atómicas que permite ejecutar operaciones complejas y de múltiples pasos como una unidad indivisible.",
"Xahau utiliza un mecanismo de Consenso Federado para validar transacciones. Servidores independientes llamados validadores alcanzan un acuerdo sobre el orden y resultado de cada transacción. Todos los servidores procesan cada transacción según las mismas reglas, y cualquier transacción válida se confirma en segundos. Toda la actividad es pública y transparente, y cualquiera puede operar un validador.",
"La gobernanza de la red está guiada por un juego de gobernanza estructurado que garantiza una toma de decisiones impulsada por la comunidad. Los participantes en un sistema de mesas de dos niveles emiten votos sobre asientos de red, enmiendas de Hooks y parámetros de recompensas — otorgando al ecosistema una influencia genuina y continua sobre la dirección de la red."
]
},
"currency": {
"label": "Economía",
"heading": "XAH, la moneda nativa de Xahau",
"paragraphs": [
"La moneda nativa de Xahau es XAH — un activo inflacionario diseñado para recompensar la participación activa. Cada cuenta puede reclamar un ajuste de saldo mensual interactuando con un Hook en la cuenta génesis, acumulando un 4% del saldo de la cuenta cada mes.",
"XAH actúa como mecanismo anti-spam de la red, añadiendo un coste a cada transacción. Las transacciones estándar cuestan fracciones de un solo XAH; las operaciones potenciadas por Hooks tienen comisiones proporcionalmente más altas, reflejando su peso computacional en la cadena. XAH también se requiere como reserva bloqueada para mantener cuentas, poseer objetos y almacenar datos utilizados por contratos inteligentes.",
"XAH está disponible en exchanges principales como Bitrue, BitMart y CoinEx, y cuenta con soporte en carteras hardware Ledger — haciéndolo cada vez más accesible para usuarios de todo el mundo. Los proyectos que dependen de Hooks para lógica personalizada deben mantener un saldo de XAH suficiente para generar ajustes mensuales que cubran las comisiones continuas."
]
},
"events": {
"label": "Historia",
"heading": "Hitos clave",
"intro": "Desde el lanzamiento de mainnet hasta alianzas financieras globales — Xahau ha avanzado con propósito.",
"milestones": [
{
"date": "Oct 2023",
"type": "genesis",
"title": "Lanzamiento de mainnet",
"detail": "Constructores independientes del XRPL lanzan la mainnet de Xahau. La alianza interina se disuelve inmediatamente, entregando la gobernanza a la comunidad."
},
{
"date": "Mar 2024",
"type": "protocol",
"title": "Transactor Remit",
"detail": "El tipo de transacción atómica multi-activo entra en producción, permitiendo distribuciones complejas en una sola operación indivisible."
},
{
"date": "2024",
"type": "growth",
"title": "100.000 cuentas activadas",
"detail": "El ecosistema alcanza un hito definitorio de adopción, demostrando un crecimiento real y sostenido más allá del ecosistema fundador."
},
{
"date": "2024",
"type": "partnership",
"title": "InFTF × COOP — remesas",
"detail": "Se lanza el primer servicio de remesas transfronterizas en Xahau con el Cooperative Bank of Oromia (más de 15,7 millones de clientes), permitiendo a la diáspora africana enviar EUR a coste casi nulo, liquidando en ETB en segundos."
},
{
"date": "2024",
"type": "partnership",
"title": "Memorando con la Unión Africana",
"detail": "InFTF firma un Memorando de Entendimiento con la Unión Africana para impulsar el Fondo de Paz de la UA a través de infraestructura financiera programable en Xahau."
},
{
"date": "2025",
"type": "security",
"title": "Auditoría de seguridad JSHooks",
"detail": "El soporte para Hooks en JavaScript avanza a través de rigurosas auditorías de seguridad, acercándose a la disponibilidad en mainnet para decenas de millones de desarrolladores."
},
{
"date": "2025",
"type": "access",
"title": "Cartera hardware Ledger",
"detail": "Xahau obtiene compatibilidad total con carteras hardware Ledger, abriendo la red a flujos de trabajo de custodia institucional y minorista convencional."
},
{
"date": "2025",
"type": "access",
"title": "Expansión de exchanges",
"detail": "XAH listado en CoinEx y BitMart. La hoja de ruta apunta a mayor acceso a exchanges y plataformas de entrada/salida durante 20252026."
},
{
"date": "Q1 2026",
"type": "security",
"title": "JSHooks entra en despliegue gradual",
"detail": "El soporte para Hooks en JavaScript completa su fase de auditoría de seguridad e inicia el despliegue gradual en mainnet, acercando las finanzas programables a decenas de millones de desarrolladores JS."
},
{
"date": "Q2 2026",
"type": "protocol",
"title": "Enmiendas AMM y PriceOracle",
"detail": "Las primitivas nativas de Automated Market Maker y PriceOracle en el ledger se someten a votación de enmienda — aportando liquidez DEX profunda y precios resistentes a manipulación para Hooks y aplicaciones DeFi en Xahau."
}
]
}
},
"ja": {
"title": "Xahauについて",
"subtitle": "アカウントベースプログラマビリティを持つエンタープライズL1ブロックチェーン",
"chips": [
"2023年10月設立",
"20万以上のアカウント",
"~4秒決済",
"10k tx / レジャー"
],
"intro": {
"label": "概要",
"paragraphs": [
"Xahauは、本格的なプログラマビリティのために構築されたL1ブロックチェーンです。実績ある台帳技術と、Hooksと呼ばれるスマートコントラクトへの強力かつ独自のアプローチを組み合わせています。",
"この技術は約4秒でトランザクションを決済し、コストは1米ドルセントの端数程度の低水準です。1レジャーあたり最大10,000トランザクションを処理でき、設計上、本質的にグリーンでエネルギー効率の高いブロックチェーンです。",
"Xahauは、組み込みの分散型取引所での通貨の発行・取引、ネイティブな非代替トークン、Remitトランザクターによるアトミックなマルチアセットトランザクション、そしてXahauのアカウントベースのスマートコントラクトシステムであるHooksによる無限のDeFiの可能性といったネイティブ機能を提供します。",
"HooksはアカウントにHooksが直接存在し、支払いの受信・送信・ルーティングといったトランザクションイベントに応答します。当初はCで開発されていましたが、現在はWebAssemblyに対応するあらゆる言語をサポートしています。JavaScriptによるHooksサポートJSHooksはセキュリティ監査を通じて前進しており、世界中の数千万人の開発者がプログラマブルファイナンスに手が届くようになっています。"
]
},
"tech": {
"label": "プロトコル",
"heading": "Xahauの背後にある技術は何ですか",
"paragraphs": [
"Xahauは実証済みの本番環境対応技術です。アカウントベースのスマートコントラクトプログラマビリティHooks、エスクローや支払いチャンネルなどのネイティブ機能での発行通貨への平等なサポート、そして複雑な複数ステップの操作を単一の分割不可能なユニットとして実行できるアトミックトランザクション層を加えて強化された、XRPレジャーコードベースの進化した反復です。",
"Xahauは、トランザクションを検証する方法として連合コンセンサスメカニズムを使用します。バリデーターと呼ばれる独立したサーバーが、各トランザクションの順序と結果について合意に達します。すべてのサーバーは同じルールに従って各トランザクションを処理し、有効なトランザクションは数秒以内に確認されます。すべての活動は公開かつ透明であり、誰でもバリデーターを運営できます。",
"ネットワークのガバナンスは、コミュニティ主導の意思決定を確保する構造化されたガバナンスゲームによって導かれています。二層テーブルシステムの参加者が、ネットワークのシート、Hookの修正、報酬パラメータについて投票を行い、エコシステムがネットワークの方向性に対して真の継続的な影響力を持ちます。"
]
},
"currency": {
"label": "エコノミクス",
"heading": "XAHXahauのネイティブ通貨",
"paragraphs": [
"Xahauのネイティブ通貨はXAHです。積極的な参加を報酬として返すように設計されたインフレ資産です。すべてのアカウントは、ジェネシスアカウントのHookと対話することで月次残高調整を請求でき、毎月アカウント残高の4%を積み立てます。",
"XAHはネットワークのアンチスパムメカニズムとして機能し、すべてのトランザクションにコストを付加します。標準的なトランザクションは1XAHの端数程度のコストですが、Hooksを活用した操作はオンチェーンの計算負荷を反映してそれに比例した高い手数料が発生します。XAHはまた、アカウントの維持、オブジェクトの保有、スマートコントラクトが使用するデータの保存のために、ロックされた準備金としても必要です。",
"XAHはBitrue、BitMart、CoinExなどの主要取引所で利用可能で、Ledgerハードウェアウォレットもサポートされており、世界中のユーザーにとってますますアクセスしやすくなっています。カスタムロジックのためにHooksに依存するプロジェクトは、継続的な手数料をカバーするための月次調整を生成するのに十分なXAH残高を維持することをお勧めします。"
]
},
"events": {
"label": "沿革",
"heading": "主要マイルストーン",
"intro": "メインネットローンチからグローバルな金融パートナーシップまで — Xahauは目的を持って前進してきました。",
"milestones": [
{
"date": "2023年10月",
"type": "genesis",
"title": "メインネットローンチ",
"detail": "独立したXRPLビルダーがXahauメインネットをローンチ。暫定アライアンスは即座に解散し、ガバナンスをコミュニティとガバナンスゲームに引き渡しました。"
},
{
"date": "2024年3月",
"type": "protocol",
"title": "Remitトランザクター",
"detail": "アトミックなマルチアセットトランザクションタイプが本番環境に投入され、単一の不可分な操作で複雑な配布が可能になりました。"
},
{
"date": "2024年",
"type": "growth",
"title": "10万アカウント達成",
"detail": "エコシステムが重要な採用マイルストーンを達成し、創設エコシステムを超えた真の持続的成長を実証しました。"
},
{
"date": "2024年",
"type": "partnership",
"title": "InFTF × COOP送金",
"detail": "Xahau上初のクロスボーダー送金サービスがCooperative Bank of Oromia1,570万人以上の顧客との協力でローンチ。アフリカン・ディアスポラがほぼゼロのコストでEURを送り、数秒以内にETBで決済可能に。"
},
{
"date": "2024年",
"type": "partnership",
"title": "アフリカ連合MoU締結",
"detail": "InFTFがアフリカ連合とXahau上のプログラマブル金融インフラを通じてAU平和基金を推進する覚書を締結。"
},
{
"date": "2025年",
"type": "security",
"title": "JSHooksセキュリティ監査",
"detail": "JavaScriptのHooksサポートが厳格なセキュリティ監査を通じて前進し、世界中の数千万人の開発者へのメインネット提供に近づいています。"
},
{
"date": "2025年",
"type": "access",
"title": "Ledgerハードウェアウォレット",
"detail": "XahauがLedgerハードウェアウォレットに完全対応し、主流の機関投資家および個人の保管ワークフローにネットワークを開放しました。"
},
{
"date": "2025年",
"type": "access",
"title": "取引所拡大",
"detail": "XAHがCoinEx2025年3月およびBitMartに上場。ロードマップでは2025〜2026年を通じてさらなる取引所およびオン/オフランプアクセスを目指しています。"
},
{
"date": "2026年Q1",
"type": "security",
"title": "JSHooks段階的ロールアウト開始",
"detail": "JavaScriptのHooksサポートがセキュリティ監査フェーズを完了し、メインネットへの段階的なデプロイを開始。数千万人のJS開発者にプログラマブルファイナンスを開放します。"
},
{
"date": "2026年Q2",
"type": "protocol",
"title": "AMM・PriceOracleエンドメント",
"detail": "ネイティブAMMとオンレジャーPriceOracleプリミティブがエンドメント投票に提出。深いDEX流動性と改ざん防止価格フィードをXahauのHooksおよびDeFiアプリケーションにもたらします。"
}
]
}
}
}
}

197
src/data/connect.json Normal file
View File

@@ -0,0 +1,197 @@
{
"events": [
{
"id": "non-evm-course-2026-02",
"date": "2026-02-27",
"time": "16:00",
"timezone": "CET",
"dateLabel": {
"en": "Friday, 27 Feb 2026 · 16:00 CET",
"es": "Viernes, 27 feb 2026 · 16:00 CET",
"ja": "2026年2月27日16:00 CET"
},
"title": {
"en": "Non-EVM Blockchain Programming Course",
"es": "Curso de Programación Blockchain Non-EVM",
"ja": "非EVMブロックチェーンプログラミングコース"
},
"location": {
"name": "MIL (Madrid Innovation Lab)",
"address": "Calle Bravo Murillo 37-39, Madrid, Spain",
"mapsUrl": "https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1"
},
"speakers": [],
"registration": {
"url": "https://luma.com/hiy3lsdq",
"label": {
"en": "Register to attend",
"es": "Regístrate para asistir",
"ja": "参加登録する"
}
},
"recording": null,
"description": {
"en": "A free introductory course on Xahau blockchain programming, designed to help you take your first steps in this type of technology. This 4-hour in-person course focuses on learning fundamental concepts and tools through practical exercises. Whether you're a developer curious about Non-EVM alternatives, an entrepreneur, or someone with no prior blockchain experience, this course will cover topics from basic architecture and wallet creation to smart contracts in Non-EVM environments. Language: Spanish & English.",
"es": "Un curso introductorio gratuito sobre programación blockchain en Xahau, diseñado para ayudarte a dar tus primeros pasos en este tipo de tecnología. Este curso presencial de 4 horas se centra en aprender conceptos y herramientas fundamentales a través de ejercicios prácticos. Tanto si eres un desarrollador curioso sobre alternativas Non-EVM, un emprendedor, o alguien sin experiencia previa en blockchain, este curso cubrirá temas desde arquitectura básica y creación de wallets hasta contratos inteligentes en entornos Non-EVM. Idioma: Español e Inglés.",
"ja": "Xahauブロックチェーンプログラミングの無料入門コースです。この4時間の対面コースは、実践的な演習を通じて基本的な概念とツールを学ぶことに焦点を当てています。非EVM代替手段に興味を持つ開発者、起業家、またはブロックチェーンの経験がない方を対象としています。言語スペイン語・英語。"
}
},
{
"id": "institutional-custody-2026-02",
"date": "2026-02-11",
"time": "18:30",
"timezone": "CET",
"dateLabel": {
"en": "Wednesday, 11 Feb 2026 · 18:30 CET",
"es": "Miércoles, 11 feb 2026 · 18:30 CET",
"ja": "2026年2月11日18:30 CET"
},
"title": {
"en": "Institutional Custody of Crypto Assets & Gold Tokenization",
"es": "Custodia Institucional de Criptoactivos y Tokenización del Oro",
"ja": "暗号資産の機関保管とゴールドトークナイゼーション"
},
"location": {
"name": "MIL (Madrid Innovation Lab)",
"address": "Calle Bravo Murillo 37-39, Madrid, Spain",
"mapsUrl": "https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1"
},
"speakers": [
{
"name": "José Ángel Fernández",
"role": "CEO, Prosegur Crypto"
}
],
"registration": null,
"recording": {
"url": "https://www.youtube.com/watch?v=GJPq3y5x5FA",
"label": {
"en": "Watch recording",
"es": "Ver grabación",
"ja": "録画を見る"
},
"platform": "Madrid Innovation Lab YouTube"
},
"description": {
"en": "An in-person session of Xahau Connect featuring José Ángel Fernández, CEO of Prosegur Crypto. This talk explored Prosegur's journey into the blockchain ecosystem through Prosegur Crypto, covering the institutional custody of crypto assets, how these systems work from a technological and security perspective, and the services offered to institutional clients. The session also covered Prosegur Crypto's gold tokenization offering, discussing both the technical implementation and the business model behind tokenizing physical gold and its real-world use cases.",
"es": "Una sesión presencial de Xahau Connect con José Ángel Fernández, CEO de Prosegur Crypto. Esta charla exploró el camino de Prosegur en el ecosistema blockchain, cubriendo la custodia institucional de criptoactivos, cómo funcionan estos sistemas desde una perspectiva tecnológica y de seguridad, y la oferta de tokenización del oro de Prosegur Crypto.",
"ja": "Prosegur CryptoのCEO、José Ángel FernándezによるXahau Connectのセッション。暗号資産の機関保管、技術・セキュリティの観点からシステムがどのように機能するか、および現物ゴールドのトークナイゼーションについて探求しました。"
}
},
{
"id": "blockchain-regulation-2025-12",
"date": "2025-12-04",
"time": "18:30",
"timezone": "CET",
"dateLabel": {
"en": "Thursday, 4 Dec 2025 · 18:30 CET",
"es": "Jueves, 4 dic 2025 · 18:30 CET",
"ja": "2025年12月4日18:30 CET"
},
"title": {
"en": "Blockchain and Regulation: Europe Under Legal Scrutiny",
"es": "Blockchain y Regulación: Europa Bajo Escrutinio Legal",
"ja": "ブロックチェーンと規制:法的審査下のヨーロッパ"
},
"location": {
"name": "MIL (Madrid Innovation Lab)",
"address": "Calle Bravo Murillo 37-39, Madrid, Spain",
"mapsUrl": "https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1"
},
"speakers": [
{
"name": "Horacio Gómez Rey",
"role": "Head of Legal Spain, N26"
},
{
"name": "Pedro Méndez de Vigo",
"role": "AVP Legal Europe, Crypto.com"
}
],
"registration": null,
"recording": {
"url": "https://www.youtube.com/watch?v=Koq8LqR7qyc",
"label": {
"en": "Watch recording",
"es": "Ver grabación",
"ja": "録画を見る"
},
"platform": "Madrid Innovation Lab YouTube"
},
"description": {
"en": "An in-depth discussion on blockchain regulation in Europe, featuring leading legal experts from major fintech and crypto companies. This session explored the evolving regulatory landscape, compliance challenges, and the future of blockchain under European legal scrutiny.",
"es": "Una discusión en profundidad sobre la regulación blockchain en Europa, con expertos legales líderes de importantes empresas fintech y crypto. Esta sesión exploró el panorama regulatorio en evolución y los desafíos de cumplimiento.",
"ja": "欧州のブロックチェーン規制に関する深い議論。主要なフィンテック・暗号企業の法律専門家が登壇し、規制環境の変化、コンプライアンスの課題、ブロックチェーンの将来について探求しました。"
}
}
],
"about": {
"body": {
"en": "Xahau Connect is a series of professional blockchain events created by INFTF (Inclusive Financial Technology Foundation) to foster serious, agnostic discussions about blockchain technology and its real-world applications. The events bring together experts, professional builders, researchers, and innovators from diverse blockchain ecosystems to share knowledge, explore challenges, and collaborate on advancing the technology beyond hype and speculation.",
"es": "Xahau Connect es una serie de eventos profesionales de blockchain creados por INFTF (Inclusive Financial Technology Foundation) para fomentar debates serios y agnósticos sobre la tecnología blockchain y sus aplicaciones en el mundo real. Los eventos reúnen a expertos, constructores profesionales, investigadores e innovadores de diversos ecosistemas blockchain.",
"ja": "Xahau Connectは、INFTFInclusive Financial Technology Foundationが主催する専門的なブロックチェーンイベントシリーズです。ブロックチェーン技術とその実世界への応用について、真剣かつ非特定的な議論を促進することを目的としています。"
},
"mission": [
{
"title": {
"en": "Serious Technical Discussion",
"es": "Debate Técnico Serio",
"ja": "真剣な技術的議論"
},
"desc": {
"en": "In-depth conversations on blockchain architecture, business, opportunities, regulation, and innovation.",
"es": "Conversaciones en profundidad sobre arquitectura blockchain, negocio, oportunidades, regulación e innovación.",
"ja": "ブロックチェーンのアーキテクチャ、ビジネス、機会、規制、革新に関する深い議論。"
}
},
{
"title": {
"en": "Blockchain Agnosticism",
"es": "Agnosticismo Blockchain",
"ja": "ブロックチェーン非特定主義"
},
"desc": {
"en": "Welcoming perspectives from all blockchain ecosystems and technologies without bias.",
"es": "Bienvenida de perspectivas de todos los ecosistemas y tecnologías blockchain sin sesgo.",
"ja": "あらゆるブロックチェーンエコシステムや技術からの視点を偏りなく歓迎します。"
}
},
{
"title": {
"en": "Professional Networking",
"es": "Networking Profesional",
"ja": "プロフェッショナルネットワーキング"
},
"desc": {
"en": "Connecting builders, experts, developers, researchers, and industry leaders.",
"es": "Conectando constructores, expertos, desarrolladores, investigadores y líderes de la industria.",
"ja": "ビルダー、専門家、開発者、研究者、業界リーダーをつなぎます。"
}
},
{
"title": {
"en": "Real-World Applications",
"es": "Aplicaciones del Mundo Real",
"ja": "実世界への応用"
},
"desc": {
"en": "Focusing on practical implementations and use cases that drive adoption.",
"es": "Enfocándonos en implementaciones prácticas y casos de uso que impulsan la adopción.",
"ja": "実際の実装と普及を促進するユースケースに焦点を当てます。"
}
},
{
"title": {
"en": "Knowledge Sharing",
"es": "Intercambio de Conocimiento",
"ja": "知識の共有"
},
"desc": {
"en": "Learning from experts across different blockchain domains and industries.",
"es": "Aprendiendo de expertos en diferentes dominios e industrias blockchain.",
"ja": "様々なブロックチェーン分野や業界の専門家から学びます。"
}
}
]
}
}

294
src/data/ecosystem.json Normal file
View File

@@ -0,0 +1,294 @@
{
"sections": [
{
"id": "enterprise",
"theme": "grn",
"label": {
"en": "Enterprises",
"es": "Empresas",
"ja": "企業"
},
"tagline": {
"en": "Institutions that have adopted Xahau",
"es": "Instituciones que han adoptado Xahau",
"ja": "Xahauを採用した機関"
},
"items": [
{
"name": "Coop Bank of Oromia",
"url": "https://coopbankoromia.com.et",
"logo": "Coopbank-Logo-Ethiopia",
"logo_ext": "svg",
"desc": "Ethiopia's leading cooperative bank, leveraging Xahau for financial services"
},
{
"name": "Quantoz",
"url": "https://quantoz.com",
"logo": "quantoz",
"logo_ext": "svg",
"desc": "European fintech issuing regulated stablecoins and digital assets on Xahau"
},
{
"name": "Coming soon",
"url": null,
"logo": null,
"coming_soon": true,
"desc": "A major global payments institution will be announced shortly"
},
{
"name": "African Union",
"url": "https://au.int",
"logo": "AUPF",
"logo_ext": "png",
"desc": "MoU signed with INFTF to explore Xahau for continental digital finance initiatives"
}
]
},
{
"id": "wallets",
"theme": "grn",
"label": {
"en": "Wallets",
"es": "Carteras",
"ja": "ウォレット"
},
"tagline": {
"en": "Store, send and sign with XAH",
"es": "Almacena, envía y firma con XAH",
"ja": "XAHを保管・送金・署名"
},
"items": [
{
"name": "Xaman",
"url": "https://xaman.app/",
"logo": "xaman",
"logo_bg": "#000000",
"desc": "The leading wallet and signing app for Xahau and XRPL"
},
{
"name": "D'CENT",
"url": "https://www.dcentwallet.com/",
"logo": "dcent",
"desc": "Hardware wallet with native Xahau support"
},
{
"name": "GemWallet",
"url": "https://gemwallet.app/",
"logo": null,
"desc": "Browser extension wallet for Xahau"
},
{
"name": "Ledger",
"url": "https://www.ledger.com/",
"logo": null,
"desc": "Industry-leading hardware security wallet"
}
]
},
{
"id": "exchanges",
"theme": "teal",
"label": {
"en": "Exchanges",
"es": "Exchanges",
"ja": "取引所"
},
"tagline": {
"en": "Buy, sell and trade XAH",
"es": "Compra, vende y opera con XAH",
"ja": "XAHを売買・取引"
},
"items": [
{
"name": "Gatehub",
"url": "https://gatehub.net/",
"logo": "gatehub",
"desc": "XAH trading and custody platform"
},
{
"name": "Bitrue",
"url": "https://www.bitrue.com/",
"logo": "bitrue",
"desc": "Crypto exchange with XAH spot trading"
},
{
"name": "BitMart",
"url": "https://www.bitmart.com/",
"logo": "bitmart",
"desc": "Global exchange offering XAH pairs"
},
{
"name": "CoinEx",
"url": "https://www.coinex.com/",
"logo": "coinex",
"desc": "Exchange platform supporting XAH"
}
]
},
{
"id": "explorers",
"theme": "amb",
"label": {
"en": "Explorers & Utilities",
"es": "Exploradores y utilidades",
"ja": "エクスプローラーとユーティリティ"
},
"tagline": {
"en": "Inspect and interact with the ledger",
"es": "Inspecciona e interactúa con el ledger",
"ja": "台帳を検索・操作"
},
"items": [
{
"name": "XAHSCAN",
"url": "https://xahscan.com/",
"logo": "xahscan",
"logo_bg": "#1E3B70",
"desc": "Block explorer and transaction search for Xahau"
},
{
"name": "Xahau Explorer",
"url": "https://xahauexplorer.com/",
"logo": "bithomp",
"desc": "Explorer with account and NFT tools"
},
{
"name": "XRPLWin",
"url": "https://xahau.xrplwin.com/",
"logo": "xrplwin",
"desc": "Multi-network explorer with Xahau support"
},
{
"name": "Xahau Services",
"url": "https://xahau.services/",
"logo": "xahau-services",
"desc": "Developer tools and utilities for Xahau"
}
]
},
{
"id": "projects",
"theme": "vlt",
"label": {
"en": "Projects",
"es": "Proyectos",
"ja": "プロジェクト"
},
"tagline": {
"en": "Apps, tools and experiences built on Xahau",
"es": "Aplicaciones, herramientas y experiencias construidas en Xahau",
"ja": "Xahau上に構築されたアプリ・ツール・体験"
},
"items": [
{
"name": "Evernode",
"url": "https://www.evernode.org/",
"logo": null,
"desc": "Decentralised smart contract hosting using Hooks"
},
{
"name": "Magnetic",
"url": "https://xmagnetic.org/?network=xahau",
"logo": null,
"desc": "NFT marketplace on Xahau"
},
{
"name": "Dallipay",
"url": "https://www.dallipay.com/",
"logo": null,
"desc": "Payment platform built on Xahau"
},
{
"name": "Dhali",
"url": "https://dhali.io/",
"logo": null,
"desc": "Decentralised application platform"
},
{
"name": "Xahau DocProof",
"url": "https://xahaudocproof.com/",
"logo": null,
"desc": "Document timestamping and verification on-chain"
},
{
"name": "VPRA",
"url": "https://vpra.app/",
"logo": null,
"desc": "Verified profile and reputation system"
},
{
"name": "Xpert Page",
"url": "https://xpert.page/",
"logo": null,
"desc": "On-chain professional profile pages"
},
{
"name": "xMerch",
"url": "https://xmerch.app/",
"logo": null,
"desc": "Tokenised merchandise platform"
},
{
"name": "Evergram",
"url": "https://evergram.app/",
"logo": null,
"desc": "Messaging with on-chain rewards"
},
{
"name": "XAMINI",
"url": "https://xamini.io/",
"logo": null,
"desc": "Mini-application ecosystem on Xahau"
},
{
"name": "XAH Invest",
"url": "https://xahinvest.com/",
"logo": null,
"desc": "Portfolio and investment tracker for XAH"
},
{
"name": "DinoXAHur",
"url": "https://xaman.app/detect/xapp:dino.xahur",
"logo": null,
"desc": "Collectible dino game via Xaman xApp"
},
{
"name": "Xaman DEX Trade",
"url": "https://xumm.app/detect/xapp:xumm.dex",
"logo": null,
"desc": "DEX trading via Xaman xApp"
},
{
"name": "Voucher",
"url": "https://xumm.app/detect/xapp:xaman.voucher",
"logo": null,
"desc": "Gift voucher xApp for Xaman"
},
{
"name": "Xahau Radio",
"url": "https://xahauradio.com/",
"logo": null,
"desc": "Community internet radio for Xahau"
},
{
"name": "Xahau Journal",
"url": "https://github.com/Cbot-XRPL/Xahau-Journal?tab=readme-ov-file",
"logo": null,
"desc": "News and updates for the Xahau community"
},
{
"name": "Hooks 101",
"url": "https://github.com/Handy4ndy/XahauHooks101",
"logo": null,
"desc": "Beginner's guide to writing Hooks"
},
{
"name": "HandyHooks",
"url": "https://github.com/Handy4ndy/HandyHooks",
"logo": null,
"desc": "Ready-to-use Hook templates and tools"
}
]
}
]
}

439
src/data/features.json Normal file
View File

@@ -0,0 +1,439 @@
{
"content": {
"en": {
"title": "Features",
"subtitle": "Proven technology with a fresh approach",
"chips": [
"10+ Protocol Features",
"Native DEX",
"NFTs Built-In",
"No Runtime Overhead"
],
"features": [
{
"id": "hooks",
"label": "Programmability",
"type": "protocol",
"graphic": "hooks",
"heading": "Hooks: Account-Level Smart Contract Logic",
"paragraphs": [
"Xahau introduces Hooks — a unique form of on-ledger smart contract logic that runs directly at the account level. Unlike smart contracts on most blockchains that require interacting with external contract addresses, Hooks are lightweight programs embedded inside user accounts themselves. These Hooks can automatically inspect, modify, or reject any transaction involving that account, without the need for explicit function calls.",
"Because Hooks are executed inline and within consensus, they offer real-time programmability with minimal overhead. This allows for powerful use cases such as rejecting unauthorized token transfers, triggering actions on deposits, or implementing compliance logic — all without slowing down the network. Hooks represent a new security and programmability paradigm, making accounts active participants in transaction logic."
]
},
{
"id": "tokens",
"label": "Asset Control",
"type": "finance",
"graphic": "token",
"heading": "Token and Asset Control by Design",
"paragraphs": [
"Xahau gives issuers and users granular control over tokens and trustlines. Features like TrustSet, Clawback, Freeze, and Deposit Authorization allow full customization of how tokens can be used or received. Assets can be whitelisted, blocked, or burned, all enforced at the protocol level.",
"This makes Xahau uniquely suited for regulated financial instruments, stablecoins, loyalty programs, or enterprise supply chains — any scenario where compliance, safety, and precision are critical."
]
},
{
"id": "governance",
"label": "Governance",
"type": "governance",
"graphic": "consensus",
"heading": "Governance Game: Decentralized Coordination with Purpose",
"paragraphs": [
"Xahau features a novel governance system backed by the Governance Game, a transparent, on-ledger mechanism for proposing, reviewing, and voting on amendments. Validator operators (Governors) participate directly in shaping the protocol, while also competing in a structured reward system based on accountability and engagement.",
"This system ensures that protocol upgrades and policy decisions are open and participatory, not dictated by a centralized entity. It combines the benefits of structured enterprise coordination with the transparency and resilience of decentralized consensus. By gamifying governance in a secure and incentive-aligned way, Xahau sets a new standard for on-chain coordination."
]
},
{
"id": "rewards",
"label": "Economics",
"type": "finance",
"graphic": null,
"heading": "Balance Rewards: Passive Yield Without Staking",
"paragraphs": [
"Xahau offers a Balance Reward system that lets accounts passively accumulate value simply by holding assets. These rewards are calculated based on account balance and distributed through a consensus-enforced mechanism, without requiring staking, delegation, or third-party contracts.",
"The mechanism is powered by protocol-level logic and on-chain Hooks, ensuring rewards are automatic, fair, and sustainable. Unlike yield farming or staking systems on other blockchains, Xahau's reward model doesn't require users to lock assets or chase complex DeFi strategies — it works natively, with transparency and simplicity."
]
},
{
"id": "escrow",
"label": "Primitives",
"type": "finance",
"graphic": null,
"heading": "Escrow: Conditional Transfers for Any Asset",
"paragraphs": [
"Xahau supports on-ledger escrow of both native and issued tokens, enabling secure conditional transfers for a broad range of business and financial use cases. Funds or tokens can be locked with time-based or condition-based release logic, enforced by the network itself.",
"Whether you're building a milestone-based payment system, marketplace settlement, or trusted token distribution, Xahau's escrows offer a simple yet powerful tool — without the need for external smart contracts. Native support for both fungible and non-fungible assets in escrow makes this a uniquely versatile feature."
]
},
{
"id": "remit",
"label": "Payments",
"type": "finance",
"graphic": "global",
"heading": "Remit: Native Cross-Account Transfers",
"paragraphs": [
"The Remit feature allows streamlined, multi-operation transactions between accounts — ideal for complex or high-volume payment flows. Instead of sending multiple separate instructions, a single Remit transaction can distribute value to multiple recipients or trigger multiple balance changes atomically.",
"This improves efficiency and reliability, especially for payment processors, marketplaces, or applications that need to perform bundled operations. Because it's built into the protocol, Remit ensures predictable performance, low latency, and strong auditability."
]
},
{
"id": "fees",
"label": "Economics",
"type": "protocol",
"graphic": null,
"heading": "Low Fees with Fee Burning",
"paragraphs": [
"Xahau maintains consistently low transaction fees, with a built-in fee-burning model that reduces spam and rewards long-term network health. Every transaction pays a minimal fee in XAH, and a portion of that fee is permanently destroyed — creating a deflationary effect over time.",
"This approach discourages network abuse while preserving accessibility, particularly for high-throughput or cost-sensitive applications. Unlike inflationary models or auction-style fees, Xahau provides predictability and economic alignment for all users."
]
},
{
"id": "performance",
"label": "Infrastructure",
"type": "protocol",
"graphic": null,
"heading": "Fast, Green, and Scalable",
"paragraphs": [
"Built on a refined version of XRPL's consensus protocol, Xahau offers fast finality, low energy usage, and reliable scalability. Transactions confirm in seconds, with no mining and minimal hardware requirements. The result is a network that can serve real-world financial and enterprise use cases without compromising the environment or user experience.",
"Xahau's architecture is ideal for global payment systems, tokenized asset platforms, or high-volume applications where performance and sustainability are non-negotiable."
]
},
{
"id": "uritokens",
"label": "NFTs",
"type": "governance",
"graphic": null,
"heading": "URITokens: Native NFTs on Xahau",
"paragraphs": [
"URITokens represent Xahau's approach to non-fungible tokens (NFTs), implemented as a native part of the ledger rather than via separate smart contracts. A URIToken is a first-class on-ledger object uniquely identified by the issuing account and a Uniform Resource Identifier (URI) that typically points to the token's metadata or content. Only one URIToken with a given URI can exist per account, ensuring true uniqueness for each digital asset.",
"This built-in NFT standard means creators can mint, trade, or burn NFTs with simple transactions (e.g. URITokenMint, URITokenBuy, URITokenBurn) without deploying custom code. The issuer of a URIToken can even allow it to be destroyed (burned) by setting a flag, giving flexibility in how NFTs are managed. By integrating NFTs at the protocol level, Xahau makes issuing and managing digital collectibles or credentials more efficient and secure."
]
},
{
"id": "dex",
"label": "Exchange",
"type": "protocol",
"graphic": "token",
"heading": "Offers: Built-In Decentralized Exchange (DEX)",
"paragraphs": [
"Xahau includes a native Offers system, powering a built-in decentralized exchange on the ledger. Users can create Offer entries to buy or sell assets (such as tokens or issued currencies) directly on the network, and these offers are automatically matched by the protocol's order book.",
"This feature, inherited from XRPL's DEX, enables a dynamic and responsive trading environment where exchange of value happens peer-to-peer without intermediary exchanges. The ability to place and cancel trade orders is provided by dedicated transactions (OfferCreate and OfferCancel). Unlike many blockchains that require smart contracts or external platforms for trading, Xahau's DEX is a first-class feature of the ledger. This on-ledger exchange offers fast settlement and low fees, making asset trading seamless for users and applications."
]
},
{
"id": "checks",
"label": "Payments",
"type": "finance",
"graphic": null,
"heading": "Checks: Deferred Payment System",
"paragraphs": [
"Xahau supports Checks, a deferred payment system akin to writing digital checks on the blockchain. One party can issue a Check (promise of payment) that the intended recipient may cash at a later time or cancel if needed. This feature allows secure, flexible transactions — for example, a business can issue payment that the receiver will claim when certain conditions are met.",
"The ledger has dedicated transactions for creating a check, cashing it, or canceling it. Few other platforms have this kind of native deferred payment instrument; Xahau's check system provides an extra layer of payment control, all enforced by the network's rules without requiring custom smart contracts."
]
},
{
"id": "payments",
"label": "Payments",
"type": "finance",
"graphic": "global",
"heading": "Payments: Multi-Asset Transfers & Channels",
"paragraphs": [
"The Payments functionality in Xahau is designed to facilitate fast, flexible transfer of value across the network. Uniquely, Xahau (like XRPL) supports multi-asset payments through a system of trust lines and issued currencies. Using a TrustSet transaction, two parties can establish a trust line to transact in a custom asset or IOU, enabling built-in support for multiple currencies or tokens without requiring smart contracts.",
"This means businesses can issue stablecoins or tokens on Xahau and users can send or exchange them natively. The Payments suite also includes advanced features like Deposit Preauthorization, which lets an account whitelist who can send it funds, adding security against unwanted transactions.",
"In addition, Xahau supports payment channels for scalability. Payment channels allow two parties to conduct rapid, high-volume transactions off-ledger and then settle the net result on the blockchain. With transactions like PaymentChannelCreate, Fund, and Claim, Xahau enables micropayments or streaming payments that are secured by the ledger but don't congest it."
]
}
]
},
"es": {
"title": "Características",
"subtitle": "Tecnología probada con un enfoque innovador",
"chips": [
"10+ Funciones de Protocolo",
"DEX Nativo",
"NFTs Integrados",
"Sin Sobrecarga de Ejecución"
],
"features": [
{
"id": "hooks",
"label": "Programabilidad",
"type": "protocol",
"graphic": "hooks",
"heading": "Hooks: Lógica de Contrato Inteligente a Nivel de Cuenta",
"paragraphs": [
"Xahau introduce los Hooks, una forma única de lógica de contrato inteligente on-ledger que se ejecuta directamente a nivel de cuenta. A diferencia de los contratos inteligentes en la mayoría de blockchains, que requieren interactuar con direcciones de contratos externas, los Hooks son programas ligeros incrustados dentro de las propias cuentas de usuario. Estos Hooks pueden inspeccionar, modificar o rechazar automáticamente cualquier transacción que involucre esa cuenta, sin necesidad de llamadas a funciones explícitas.",
"Dado que los Hooks se ejecutan inline y dentro del consenso, ofrecen programabilidad en tiempo real con una sobrecarga mínima. Esto permite casos de uso potentes como rechazar transferencias de tokens no autorizadas, desencadenar acciones en depósitos, o implementar lógica de cumplimiento normativo, todo sin ralentizar la red. Los Hooks representan un nuevo paradigma de seguridad y programabilidad, haciendo de las cuentas participantes activos en la lógica de transacciones."
]
},
{
"id": "tokens",
"label": "Control de Activos",
"type": "finance",
"graphic": "token",
"heading": "Control de Tokens y Activos por Diseño",
"paragraphs": [
"Xahau otorga a los emisores y usuarios un control granular sobre tokens y líneas de confianza. Características como TrustSet, Clawback, Freeze y Deposit Authorization permiten una personalización completa de cómo se pueden usar o recibir los tokens. Los activos pueden ser incluidos en listas blancas, bloqueados o quemados, todo ello aplicado a nivel de protocolo.",
"Esto hace a Xahau especialmente adecuado para instrumentos financieros regulados, stablecoins, programas de fidelización o cadenas de suministro empresariales: cualquier escenario donde el cumplimiento normativo, la seguridad y la precisión sean críticos."
]
},
{
"id": "governance",
"label": "Gobernanza",
"type": "governance",
"graphic": "consensus",
"heading": "Juego de Gobernanza: Coordinación Descentralizada con Propósito",
"paragraphs": [
"Xahau cuenta con un novedoso sistema de gobernanza respaldado por el Juego de Gobernanza, un mecanismo transparente y on-ledger para proponer, revisar y votar enmiendas. Los operadores de validadores (Gobernadores) participan directamente en la configuración del protocolo, compitiendo también en un sistema de recompensas estructurado basado en la responsabilidad y el compromiso.",
"Este sistema garantiza que las actualizaciones del protocolo y las decisiones de política sean abiertas y participativas, no dictadas por una entidad centralizada. Combina los beneficios de la coordinación empresarial estructurada con la transparencia y resiliencia del consenso descentralizado. Al gamificar la gobernanza de forma segura y alineada con los incentivos, Xahau establece un nuevo estándar para la coordinación on-chain."
]
},
{
"id": "rewards",
"label": "Economía",
"type": "finance",
"graphic": null,
"heading": "Recompensas de Saldo: Rendimiento Pasivo Sin Staking",
"paragraphs": [
"Xahau ofrece un sistema de Recompensas de Saldo que permite a las cuentas acumular valor pasivamente simplemente manteniendo activos. Estas recompensas se calculan en función del saldo de la cuenta y se distribuyen mediante un mecanismo aplicado por consenso, sin necesidad de staking, delegación ni contratos de terceros.",
"El mecanismo está impulsado por lógica a nivel de protocolo y Hooks on-chain, garantizando que las recompensas sean automáticas, justas y sostenibles. A diferencia del yield farming o los sistemas de staking en otras blockchains, el modelo de recompensas de Xahau no requiere que los usuarios bloqueen activos ni persigan complejas estrategias DeFi: funciona de forma nativa, con transparencia y sencillez."
]
},
{
"id": "escrow",
"label": "Primitivas",
"type": "finance",
"graphic": null,
"heading": "Escrow: Transferencias Condicionales para Cualquier Activo",
"paragraphs": [
"Xahau soporta escrow on-ledger tanto de tokens nativos como emitidos, permitiendo transferencias condicionales seguras para una amplia gama de casos de uso empresariales y financieros. Los fondos o tokens se pueden bloquear con lógica de liberación basada en tiempo o condiciones, aplicada por la propia red.",
"Ya sea que estés construyendo un sistema de pago por hitos, liquidación de marketplace, o distribución de tokens de confianza, los escrows de Xahau ofrecen una herramienta simple pero potente, sin necesidad de contratos inteligentes externos. El soporte nativo tanto para activos fungibles como no fungibles en escrow hace de esta una característica excepcionalmente versátil."
]
},
{
"id": "remit",
"label": "Pagos",
"type": "finance",
"graphic": "global",
"heading": "Remit: Transferencias Nativas entre Cuentas",
"paragraphs": [
"La función Remit permite transacciones simplificadas y multi-operación entre cuentas, ideal para flujos de pago complejos o de alto volumen. En lugar de enviar múltiples instrucciones separadas, una sola transacción Remit puede distribuir valor a múltiples destinatarios o desencadenar múltiples cambios de saldo de forma atómica.",
"Esto mejora la eficiencia y la fiabilidad, especialmente para procesadores de pago, marketplaces o aplicaciones que necesitan realizar operaciones agrupadas. Al estar integrado en el protocolo, Remit garantiza un rendimiento predecible, baja latencia y una sólida trazabilidad."
]
},
{
"id": "fees",
"label": "Economía",
"type": "protocol",
"graphic": null,
"heading": "Bajas Comisiones con Quema de Fees",
"paragraphs": [
"Xahau mantiene comisiones de transacción consistentemente bajas, con un modelo integrado de quema de fees que reduce el spam y premia la salud a largo plazo de la red. Cada transacción paga una comisión mínima en XAH, y una parte de esa comisión se destruye permanentemente, creando un efecto deflacionario con el tiempo.",
"Este enfoque desalienta el abuso de la red a la vez que preserva la accesibilidad, especialmente para aplicaciones de alto rendimiento o sensibles al coste. A diferencia de los modelos inflacionarios o las comisiones de tipo subasta, Xahau proporciona previsibilidad y alineación económica para todos los usuarios."
]
},
{
"id": "performance",
"label": "Infraestructura",
"type": "protocol",
"graphic": null,
"heading": "Rápido, Verde y Escalable",
"paragraphs": [
"Construida sobre una versión refinada del protocolo de consenso del XRPL, Xahau ofrece finalidad rápida, bajo consumo de energía y escalabilidad fiable. Las transacciones se confirman en segundos, sin minería y con requisitos mínimos de hardware. El resultado es una red que puede servir casos de uso financieros y empresariales del mundo real sin comprometer el medio ambiente ni la experiencia del usuario.",
"La arquitectura de Xahau es ideal para sistemas de pago globales, plataformas de activos tokenizados o aplicaciones de alto volumen donde el rendimiento y la sostenibilidad son innegociables."
]
},
{
"id": "uritokens",
"label": "NFTs",
"type": "governance",
"graphic": null,
"heading": "URITokens: NFTs Nativos en Xahau",
"paragraphs": [
"Los URITokens representan el enfoque de Xahau hacia los tokens no fungibles (NFTs), implementados como una parte nativa del ledger en lugar de mediante contratos inteligentes separados. Un URIToken es un objeto on-ledger de primera clase, identificado de forma única por la cuenta emisora y un Identificador de Recurso Uniforme (URI) que típicamente apunta a los metadatos o contenido del token. Solo puede existir un URIToken con un URI dado por cuenta, garantizando la verdadera unicidad de cada activo digital.",
"Este estándar NFT integrado significa que los creadores pueden acuñar, intercambiar o quemar NFTs con transacciones simples (por ejemplo, URITokenMint, URITokenBuy, URITokenBurn) sin desplegar código personalizado. El emisor de un URIToken puede incluso permitir que sea destruido (quemado) al establecer un flag, dando flexibilidad en cómo se gestionan los NFTs. Al integrar los NFTs a nivel de protocolo, Xahau hace que la emisión y gestión de coleccionables digitales o credenciales sea más eficiente y segura."
]
},
{
"id": "dex",
"label": "Exchange",
"type": "protocol",
"graphic": "token",
"heading": "Ofertas: Exchange Descentralizado (DEX) Integrado",
"paragraphs": [
"Xahau incluye un sistema de Ofertas nativo, que impulsa un exchange descentralizado integrado en el ledger. Los usuarios pueden crear entradas de Oferta para comprar o vender activos (como tokens o monedas emitidas) directamente en la red, y estas ofertas son emparejadas automáticamente por el libro de órdenes del protocolo.",
"Esta función, heredada del DEX del XRPL, permite un entorno de trading dinámico y receptivo donde el intercambio de valor ocurre de igual a igual sin exchanges intermediarios. La capacidad de colocar y cancelar órdenes de trading se proporciona mediante transacciones dedicadas (OfferCreate y OfferCancel). A diferencia de muchas blockchains que requieren contratos inteligentes o plataformas externas para el trading, el DEX de Xahau es una característica de primera clase del ledger. Este exchange on-ledger ofrece liquidación rápida y bajas comisiones, haciendo que el trading de activos sea fluido para usuarios y aplicaciones."
]
},
{
"id": "checks",
"label": "Pagos",
"type": "finance",
"graphic": null,
"heading": "Cheques: Sistema de Pago Diferido",
"paragraphs": [
"Xahau soporta Cheques, un sistema de pago diferido similar a escribir cheques digitales en la blockchain. Una parte puede emitir un Cheque (promesa de pago) que el destinatario previsto puede cobrar en un momento posterior o cancelar si es necesario. Esta función permite transacciones seguras y flexibles: por ejemplo, una empresa puede emitir un pago que el receptor reclamará cuando se cumplan ciertas condiciones.",
"El ledger tiene transacciones dedicadas para crear un cheque, cobrarlo o cancelarlo. Pocas plataformas tienen este tipo de instrumento de pago diferido nativo; el sistema de cheques de Xahau proporciona una capa adicional de control de pagos, todo ello aplicado por las reglas de la red sin necesidad de contratos inteligentes personalizados."
]
},
{
"id": "payments",
"label": "Pagos",
"type": "finance",
"graphic": "global",
"heading": "Pagos: Transferencias Multi-Activo y Canales",
"paragraphs": [
"La funcionalidad de Pagos en Xahau está diseñada para facilitar la transferencia rápida y flexible de valor a través de la red. De forma única, Xahau (como el XRPL) soporta pagos multi-activo a través de un sistema de líneas de confianza y monedas emitidas. Usando una transacción TrustSet, dos partes pueden establecer una línea de confianza para transaccionar en un activo personalizado o IOU, habilitando el soporte integrado para múltiples monedas o tokens sin necesidad de contratos inteligentes.",
"Esto significa que las empresas pueden emitir stablecoins o tokens en Xahau y los usuarios pueden enviarlos o intercambiarlos de forma nativa. La suite de Pagos también incluye características avanzadas como Preautorización de Depósito, que permite a una cuenta incluir en una lista blanca quién puede enviarle fondos, añadiendo seguridad contra transacciones no deseadas.",
"Además, Xahau soporta canales de pago para escalabilidad. Los canales de pago permiten a dos partes realizar transacciones rápidas y de alto volumen fuera del ledger y luego liquidar el resultado neto en la blockchain. Con transacciones como PaymentChannelCreate, Fund y Claim, Xahau permite micropagos o pagos en streaming que están asegurados por el ledger pero no lo congestionan."
]
}
]
},
"ja": {
"title": "機能",
"subtitle": "実証された技術と革新的なアプローチ",
"chips": [
"10以上のプロトコル機能",
"ネイティブDEX",
"NFT組み込み済み",
"実行オーバーヘッドなし"
],
"features": [
{
"id": "hooks",
"label": "プログラマビリティ",
"type": "protocol",
"graphic": "hooks",
"heading": "Hooksアカウントレベルのスマートコントラクトロジック",
"paragraphs": [
"Xahauはアカウントレベルで直接動作するユニークな形式のオンレジャースマートコントラクトロジックであるHooksを導入しています。外部のコントラクトアドレスとの対話を必要とする他のブロックチェーンのスマートコントラクトとは異なり、Hooksはユーザーアカウント自体に組み込まれた軽量なプログラムです。これらのHooksは、明示的な関数呼び出しなしに、そのアカウントに関わるあらゆる取引を自動的に検査、変更、または拒否することができます。",
"Hooksはインラインかつコンセンサス内で実行されるため、最小限のオーバーヘッドでリアルタイムのプログラマビリティを提供します。これにより、不正なトークン転送の拒否、入金時のアクションのトリガー、コンプライアンスロジックの実装などの強力なユースケースが可能になります。Hooksは新しいセキュリティとプログラマビリティのパラダイムを表し、アカウントをトランザクションロジックのアクティブな参加者にします。"
]
},
{
"id": "tokens",
"label": "資産管理",
"type": "finance",
"graphic": "token",
"heading": "設計によるトークンと資産の制御",
"paragraphs": [
"Xahauは発行者とユーザーにトークンとトラストラインに対する詳細な制御を与えます。TrustSet、Clawback、Freeze、Deposit Authorizationなどの機能により、トークンの使用方法や受け取り方を完全にカスタマイズできます。資産はホワイトリスト化、ブロック、または燃焼させることができ、すべてプロトコルレベルで適用されます。",
"これにより、Xahauは規制された金融商品、ステーブルコイン、ロイヤルティプログラム、エンタープライズサプライチェーンなど、コンプライアンス、安全性、精度が重要なシナリオに特に適しています。"
]
},
{
"id": "governance",
"label": "ガバナンス",
"type": "governance",
"graphic": "consensus",
"heading": "ガバナンスゲーム:目的を持った分散型調整",
"paragraphs": [
"Xahauはガバナンスゲームに裏付けられた新しいガバナンスシステムを特徴としています。これは、修正案を提案、審査、投票するための透明でオンレジャーのメカニズムです。バリデーターオペレーターガバナーは、説明責任とエンゲージメントに基づく構造化された報酬システムで競いながら、プロトコルの形成に直接参加します。",
"このシステムにより、プロトコルのアップグレードとポリシー決定が、中央集権的なエンティティによって指示されるのではなく、オープンで参加型になることが保証されます。構造化されたエンタープライズ調整の利点と、分散型コンセンサスの透明性と回復力を組み合わせています。"
]
},
{
"id": "rewards",
"label": "エコノミクス",
"type": "finance",
"graphic": null,
"heading": "残高報酬:ステーキングなしのパッシブ収益",
"paragraphs": [
"Xahauは残高報酬システムを提供しており、アカウントが資産を保有するだけで価値を受動的に積み立てることができます。これらの報酬はアカウント残高に基づいて計算され、ステーキング、委任、サードパーティのコントラクトを必要とせず、コンセンサスによって適用されるメカニズムを通じて分配されます。",
"このメカニズムはプロトコルレベルのロジックとオンチェーンHooksによって支えられており、報酬が自動的、公正、持続可能であることを保証します。"
]
},
{
"id": "escrow",
"label": "プリミティブ",
"type": "finance",
"graphic": null,
"heading": "エスクロー:あらゆる資産の条件付き転送",
"paragraphs": [
"Xahauはネイティブおよび発行済みトークンのオンレジャーエスクローをサポートし、幅広いビジネスおよび金融ユースケースのための安全な条件付き転送を可能にします。資金またはトークンは、ネットワーク自体によって適用される時間ベースまたは条件ベースのリリースロジックでロックできます。",
"マイルストーンベースの支払いシステム、マーケットプレイスの決済、または信頼できるトークン配布を構築する場合でも、Xahauのエスクローは外部のスマートコントラクトを必要とせず、シンプルながら強力なツールを提供します。エスクローにおける代替可能および代替不可能な資産の両方に対するネイティブサポートにより、この機能は特に多用途です。"
]
},
{
"id": "remit",
"label": "決済",
"type": "finance",
"graphic": "global",
"heading": "Remitネイティブのクロスアカウント転送",
"paragraphs": [
"Remit機能により、アカウント間での合理化されたマルチオペレーション取引が可能になり、複雑または大量の支払いフローに最適です。複数の個別の命令を送信する代わりに、単一のRemit取引が複数の受取人に価値を配布したり、複数の残高変更をアトミックにトリガーしたりできます。",
"これにより、特に支払い処理業者、マーケットプレイス、またはバンドル操作を実行する必要があるアプリケーションの効率性と信頼性が向上します。プロトコルに組み込まれているため、Remitは予測可能なパフォーマンス、低レイテンシ、および強力な監査可能性を保証します。"
]
},
{
"id": "fees",
"label": "エコノミクス",
"type": "protocol",
"graphic": null,
"heading": "手数料燃焼による低手数料",
"paragraphs": [
"Xahauは一貫して低い取引手数料を維持し、スパムを減らしてネットワークの長期的な健全性を報酬する組み込みの手数料燃焼モデルを持っています。各取引はXAHで最小限の手数料を支払い、その手数料の一部は永久に破壊されます。",
"このアプローチはネットワークの乱用を抑止しながらアクセシビリティを維持し、特に高スループットやコスト重視のアプリケーションに対応します。インフレモデルやオークション形式の手数料とは異なり、Xahauはすべてのユーザーに予測可能性と経済的整合性を提供します。"
]
},
{
"id": "performance",
"label": "インフラストラクチャ",
"type": "protocol",
"graphic": null,
"heading": "高速、グリーン、スケーラブル",
"paragraphs": [
"XRPLのコンセンサスプロトコルの洗練されたバージョンの上に構築されたXahauは、高速なファイナリティ、低エネルギー使用量、信頼性の高いスケーラビリティを提供します。取引は数秒で確認され、マイニングなし、最小限のハードウェア要件で行われます。その結果、環境やユーザーエクスペリエンスを損なうことなく、実世界の金融およびエンタープライズのユースケースに対応できるネットワークが実現します。",
"Xahauのアーキテクチャは、パフォーマンスと持続可能性が交渉の余地のないグローバル決済システム、トークン化資産プラットフォーム、または高ボリュームアプリケーションに最適です。"
]
},
{
"id": "uritokens",
"label": "NFT",
"type": "governance",
"graphic": null,
"heading": "URITokensXahauのネイティブNFT",
"paragraphs": [
"URITokensは、別のスマートコントラクトを介してではなく、レジャーのネイティブな部分として実装されたXahauの非代替トークンNFTへのアプローチを表しています。URITokenは、発行アカウントとトークンのメタデータやコンテンツを通常指すUniform Resource IdentifierURIによって一意に識別される、ファーストクラスのオンレジャーオブジェクトです。アカウントごとに特定のURIを持つURITokenは1つしか存在できず、各デジタル資産の真の独自性を確保します。",
"この組み込みNFT標準により、クリエイターはカスタムコードをデプロイすることなく、シンプルな取引URITokenMint、URITokenBuy、URITokenBurnでNFTをミント、取引、または燃焼させることができます。URITokenの発行者はフラグを設定することで破壊燃焼を許可することもでき、NFTの管理方法に柔軟性を与えます。"
]
},
{
"id": "dex",
"label": "取引所",
"type": "protocol",
"graphic": "token",
"heading": "オファー内蔵の分散型取引所DEX",
"paragraphs": [
"Xahauはネイティブのオファーシステムを含み、レジャー上の内蔵分散型取引所を動かしています。ユーザーはネットワーク上で直接資産トークンや発行通貨などを売買するためのオファーエントリを作成でき、これらのオファーはプロトコルのオーダーブックによって自動的にマッチングされます。",
"XRPLのDEXから継承されたこの機能は、仲介取引所なしに価値の交換がピアツーピアで行われるダイナミックで応答性の高いトレーディング環境を可能にします。取引注文の配置とキャンセルの機能は、専用のトランザクションOfferCreateとOfferCancelによって提供されます。取引のためにスマートコントラクトや外部プラットフォームを必要とする多くのブロックチェーンとは異なり、XahauのDEXはレジャーのファーストクラスの機能です。"
]
},
{
"id": "checks",
"label": "決済",
"type": "finance",
"graphic": null,
"heading": "チェック:繰延決済システム",
"paragraphs": [
"Xahauはブロックチェーン上でデジタル小切手を書くような繰延決済システムであるチェックをサポートしています。一方が後で現金化するか、必要に応じてキャンセルできるチェック支払いの約束を発行できます。この機能により、安全で柔軟な取引が可能になります。例えば、企業は受取人が特定の条件が満たされたときに請求する支払いを発行できます。",
"レジャーにはチェックの作成、現金化、またはキャンセルのための専用トランザクションがあります。このような種類のネイティブな繰延支払い手段を持つプラットフォームはほとんどありません。Xahauのチェックシステムは、カスタムスマートコントラクトを必要とせず、ネットワークのルールによってすべて適用される追加の支払い制御層を提供します。"
]
},
{
"id": "payments",
"label": "決済",
"type": "finance",
"graphic": "global",
"heading": "支払い:マルチアセット転送とチャンネル",
"paragraphs": [
"Xahauの支払い機能は、ネットワーク全体での価値の高速かつ柔軟な転送を容易にするように設計されています。Xahauはトラストラインと発行通貨のシステムを通じてマルチアセット支払いをサポートし、スマートコントラクトを必要とせずに複数の通貨やトークンの組み込みサポートを可能にします。",
"これは、企業がXahau上でステーブルコインやトークンを発行し、ユーザーがそれらをネイティブに送受信または交換できることを意味します。支払いスイートには、口座に資金を送れる人をホワイトリスト化できる入金事前承認など、不要な取引に対するセキュリティを追加する高度な機能も含まれています。",
"さらに、Xahauはスケーラビリティのためのペイメントチャンネルをサポートしています。ペイメントチャンネルにより、2者がオフレジャーで高速・大量の取引を行い、その後正味の結果をブロックチェーン上で決済することができます。PaymentChannelCreate、Fund、Claimなどのトランザクションにより、Xahauはレジャーによって保護されるがそれを混雑させないマイクロペイメントやストリーミングペイメントを可能にします。"
]
}
]
}
}
}

67
src/data/home.json Normal file
View File

@@ -0,0 +1,67 @@
{
"stats": [
{
"value": "22M+",
"label": {
"en": "Ledgers closed",
"es": "Ledgers cerrados",
"ja": "閉鎖済みレジャー"
},
"theme": "dark",
"col": 5
},
{
"value": "1.5M+",
"label": {
"en": "Transactions / 24h",
"es": "Transacciones/24h",
"ja": "取引/24時間"
},
"theme": "teal",
"col": 4
},
{
"value": "200K+",
"label": { "en": "Accounts", "es": "Cuentas", "ja": "アカウント" },
"theme": "light",
"col": 3
},
{
"value": "10K+",
"label": {
"en": "Hooks installed",
"es": "Hooks instalados",
"ja": "インストール済みHooks"
},
"theme": "sage",
"col": 3
},
{
"value": "300+",
"label": { "en": "Nodes", "es": "Nodos", "ja": "ノード" },
"theme": "light",
"col": 3
},
{
"value": "500M+",
"label": {
"en": "Hook executions",
"es": "Ejecuciones de Hooks",
"ja": "Hook実行回数"
},
"theme": "dark",
"col": 6
},
{
"type": "cta",
"theme": "light",
"col": 3,
"label": {
"en": "Want to run a node?",
"es": "¿Quieres ejecutar un nodo?",
"ja": "ノードを運用しませんか?"
},
"url": "/docs/infrastructure/system-requirements"
}
]
}

448
src/data/roadmap.json Normal file
View File

@@ -0,0 +1,448 @@
{
"$comment": "Xahau roadmap source of truth. Edit this file to add/update/remove items. Committed JSON is rendered at build time by src/components/XahauRoadmap.astro — no runtime JS required.",
"meta": {
"updated": "2026-04-19",
"window": {
"mode": "auto",
"$comment_mode": "'auto' = current quarter + next 5. 'manual' = use the `start` field below.",
"start": null,
"$comment_start": "ISO date e.g. '2026-04-01', or null. Ignored when mode=auto."
},
"i18n": {
"defaultLocale": "en",
"locales": ["en", "es"]
}
},
"labels": {
"en": {
"title": "Xahau Roadmap",
"subtitle": "Enterprise network with minimal feature additions, maximal reliability",
"statement": "Xahau is an <em>Enterprise Grade</em> Layer-1 Blockchain. Protocol changes are deliberate and few. Most of the work is in <em>rollouts</em>: audits, integrations and partnerships that put the network in the hands of real users. Items listed here are indicative and subject to change. This roadmap currently only covers core development and activities shared by INFTF.",
"kpis": {
"features": "new protocol features",
"quarters": "quarters ahead",
"rollouts": "rollout milestones"
},
"laneTech": "Protocol features",
"laneRollout": "Rollouts & deployments",
"now": "NOW",
"updated": "updated",
"philosophy": [
{
"t": "Posture",
"v": "Enterprise-grade - change is deliberate, tested, and reversible before live."
},
{
"t": "New features",
"v": "Only what users/enterprises genuinely need."
},
{
"t": "Focus",
"v": "Rollouts, corridors and partnerships - putting Xahau to work."
},
{
"t": "Open",
"v": "Transparent amendment process, public audits, open standards."
}
],
"legend": {
"feature": "Protocol feature",
"live": "Live",
"pilot": "Pilot",
"partnership": "Partnership",
"launch": "Launch / public good"
},
"foot": "Directional - subject to change - xahau.network"
},
"es": {
"title": "Hoja de ruta de Xahau",
"subtitle": "Red empresarial con adiciones mínimas de funciones, máxima fiabilidad",
"statement": "Xahau es una Blockchain Layer-1 de <em>Grado Empresarial</em>. Los cambios de protocolo son deliberados y escasos. La mayor parte del trabajo está en los <em>despliegues</em>: auditorías, integraciones y alianzas que ponen la red en manos de usuarios reales. Los elementos aquí listados son orientativos y están sujetos a cambios. Esta hoja de ruta cubre actualmente solo el desarrollo principal y las actividades compartidas por INFTF.",
"kpis": {
"features": "nuevas funciones de protocolo",
"quarters": "trimestres por delante",
"rollouts": "hitos de despliegue"
},
"laneTech": "Funciones de protocolo",
"laneRollout": "Despliegues y puestas en marcha",
"now": "AHORA",
"updated": "actualizado",
"philosophy": [
{
"t": "Postura",
"v": "Grado empresarial - cambios deliberados, probados y reversibles antes del despliegue."
},
{
"t": "Nuevas funciones",
"v": "Solo lo que usuarios/empresas realmente necesitan."
},
{
"t": "Enfoque",
"v": "Despliegues, corredores y alianzas - poniendo Xahau a trabajar."
},
{
"t": "Apertura",
"v": "Proceso de enmiendas transparente, auditorías públicas, estándares abiertos."
}
],
"legend": {
"feature": "Función de protocolo",
"live": "En vivo",
"pilot": "Piloto",
"partnership": "Alianza",
"launch": "Lanzamiento / bien público"
},
"foot": "Orientativo - sujeto a cambios - xahau.network"
}
},
"items": [
{
"id": "rng",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"endQuarter": "2026-Q2",
"tag": {
"en": "Feature · in beta development",
"es": "Función · en desarrollo beta"
},
"title": {
"en": "Random Number Generator",
"es": "Generador de números aleatorios"
},
"description": {
"en": "Native on-ledger RNG primitive — verifiable, tamper-resistant randomness for Hooks and applications.",
"es": "Primitiva RNG nativa en el ledger — aleatoriedad verificable y resistente a manipulación para Hooks y aplicaciones."
}
},
{
"id": "export",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"endQuarter": "2026-Q3",
"tag": {
"en": "Feature · in development",
"es": "Función · en desarrollo"
},
"title": { "en": "FeatureExport", "es": "FeatureExport" },
"description": {
"en": "Export lets a Xahau user or hook request that the Xahau UNL sign a transaction destined for the XRPL — an ordinary transaction with a MultiSign block in which each UNL member contributes one of the signatures. This allows Xahau hooks to effectively control XRPL accounts and issue and manage assets on XRPL.",
"es": "Export permite que un usuario o un Hook de Xahau solicite que la UNL de Xahau firme una transacción destinada al XRPL — una transacción ordinaria con un bloque MultiSign en el que cada miembro de la UNL aporta una de las firmas. Esto permite que los Hooks de Xahau controlen cuentas del XRPL y emitan y gestionen activos en XRPL."
}
},
{
"id": "amm",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"span": 2,
"tag": {
"en": "Feature · ready for amendment",
"es": "Función · lista para enmienda"
},
"title": { "en": "AMM", "es": "AMM" },
"description": {
"en": "Automated Market Maker primitive for deep native liquidity on the Xahau DEX. Merged into the xahaud dev branch, awaiting amendment vote.",
"es": "Primitiva Automated Market Maker para liquidez nativa profunda en el DEX de Xahau. Integrada en la rama dev de xahaud, a la espera de la votación de enmienda."
}
},
{
"id": "price-oracle",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"span": 2,
"tag": {
"en": "Feature · ready for amendment",
"es": "Función · lista para enmienda"
},
"title": { "en": "PriceOracle", "es": "PriceOracle" },
"description": {
"en": "Native on-ledger price feed primitive — tamper-resistant asset prices for DeFi, AMM and Hooks. Merged into the xahaud dev branch, awaiting amendment vote.",
"es": "Primitiva nativa de precios en el ledger — precios de activos resistentes a manipulación para DeFi, AMM y Hooks. Integrada en la rama dev de xahaud, a la espera de la votación de enmienda."
}
},
{
"id": "iou-reward-claim",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"endQuarter": "2026-Q3",
"tag": {
"en": "Feature · in development",
"es": "Función · en desarrollo"
},
"title": { "en": "IOURewardClaim", "es": "IOURewardClaim" },
"description": {
"en": "Extends the current RewardClaim for XAH to make it available for IOU tokens as well — letting projects use Hooks to distribute rewards based on a user's token holdings.",
"es": "Extiende el RewardClaim actual de XAH para ofrecerlo también a tokens IOU — permitiendo a los proyectos usar Hooks para distribuir recompensas según las tenencias de tokens de un usuario."
}
},
{
"id": "named-hook",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q3",
"endQuarter": "2026-Q4",
"tag": {
"en": "Feature · in development",
"es": "Función · en desarrollo"
},
"title": { "en": "NamedHook", "es": "NamedHook" },
"description": {
"en": "Allows names to be set to identify Hooks, so different Hooks can be invoked even within the same transaction type.",
"es": "Permite asignar nombres para identificar Hooks, de modo que se puedan invocar diferentes Hooks incluso dentro del mismo tipo de transacción."
}
},
{
"id": "js-hooks",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"span": 3,
"tag": {
"en": "Feature · in alpha development",
"es": "Función · en desarrollo alfa"
},
"title": { "en": "JSHooks", "es": "JSHooks" },
"description": {
"en": "JavaScript runtime for Hooks — write Xahau smart-contract logic in JavaScript alongside the existing WebAssembly runtime, broadening the developer surface.",
"es": "Entorno de ejecución JavaScript para Hooks — escribir la lógica de smart contracts en JavaScript junto al entorno WebAssembly existente, ampliando la superficie para desarrolladores."
}
},
{
"id": "audit-optimisations",
"lane": "tech",
"status": "feature",
"quarter": "2026-Q2",
"openEnded": true,
"tag": {
"en": "Ongoing · audits + optimisations",
"es": "Continuo · auditorías y optimizaciones"
},
"title": {
"en": "Audit & optimisations",
"es": "Auditorías y optimizaciones"
},
"description": {
"en": "Continuous security audits and performance work across the protocol, Hooks and tooling.",
"es": "Auditorías de seguridad y trabajo de rendimiento continuos en el protocolo, Hooks y herramientas."
}
},
{
"id": "coopbank-eur",
"lane": "rollout",
"status": "live",
"quarter": "2026-Q2",
"openEnded": false,
"span": 2,
"tag": { "en": "Live · remittance", "es": "En vivo · remesas" },
"title": {
"en": "COOP Bank EUR corridor scale-up to entire country.",
"es": "Escalado del corredor EUR de COOP Bank a todo el país."
},
"description": {
"en": "InFTF × Cooperative Bank of Oromia growing EUR → ETB volume.",
"es": "InFTF × Cooperative Bank of Oromia aumentando el volumen EUR → ETB."
}
},
{
"id": "stablecoinUSD",
"lane": "rollout",
"status": "partnership",
"quarter": "2026-Q2",
"endQuarter": "2026-Q3",
"tag": { "en": "Launch", "es": "Lanzamiento" },
"title": {
"en": "USD stablecoin on Xahau",
"es": "Stablecoin USD en Xahau"
},
"description": {
"en": "Addition of compliant USD stablecoin",
"es": "Incorporación de una stablecoin USD que cumple con la normativa"
}
},
{
"id": "stablecoinOthers",
"lane": "rollout",
"status": "partnership",
"quarter": "2026-Q4",
"openEnded": true,
"tag": { "en": "Launch", "es": "Lanzamiento" },
"title": {
"en": "Currencies from multiple countries on Xahau",
"es": "Divisas de múltiples países en Xahau"
},
"description": {
"en": "Addition of regulated currencies from multiple countries",
"es": "Incorporación de divisas reguladas de múltiples países"
}
},
{
"id": "stablecoinGBP",
"lane": "rollout",
"status": "partnership",
"quarter": "2026-Q3",
"endQuarter": "2026-Q4",
"tag": { "en": "Launch", "es": "Lanzamiento" },
"title": {
"en": "GBP stablecoin on Xahau",
"es": "Stablecoin GBP en Xahau"
},
"description": {
"en": "Addition of compliant GBP stablecoin",
"es": "Incorporación de una stablecoin GBP que cumple con la normativa"
}
},
{
"id": "usd-corridor",
"lane": "rollout",
"status": "pilot",
"quarter": "2026-Q3",
"endQuarter": "2026-Q4",
"tag": { "en": "Pilot", "es": "Piloto" },
"title": { "en": "USD corridor pilot", "es": "Piloto del corredor USD" },
"description": {
"en": "Second fiat corridor (USD → ETB) opens to selected diaspora markets.",
"es": "Un segundo corredor fiat (USD → ETB) se abre a mercados de diáspora seleccionados."
}
},
{
"id": "bank-partners",
"lane": "rollout",
"status": "partnership",
"quarter": "2026-Q4",
"openEnded": true,
"tag": { "en": "Partnerships", "es": "Alianzas" },
"title": {
"en": "Additional bank & remittance partners",
"es": "Bancos y socios de remesas adicionales"
},
"description": {
"en": "New regulated remittance partners across East & West Africa.",
"es": "Nuevos socios de remesas regulados en África Oriental y Occidental."
}
},
{
"id": "corridor-ga",
"lane": "rollout",
"status": "live",
"quarter": "2027-Q1",
"span": 1,
"tag": { "en": "GA · remittance", "es": "GA · remesas" },
"title": {
"en": "Corridor expansion · GA",
"es": "Expansión de corredores · GA"
},
"description": {
"en": "Additional diaspora corridors graduate from pilot to production.",
"es": "Corredores adicionales de diáspora pasan de piloto a producción."
}
},
{
"id": "merchant-pilot",
"lane": "rollout",
"status": "pilot",
"quarter": "2027-Q2",
"endQuarter": "2027-Q3",
"tag": { "en": "Pilot · payments", "es": "Piloto · pagos" },
"title": {
"en": "Merchant settlement pilot",
"es": "Piloto de liquidación para comercios"
},
"description": {
"en": "Stablecoin settlement with Hooks-based compliance for merchants.",
"es": "Liquidación con stablecoins y cumplimiento basado en Hooks para comercios."
}
},
{
"id": "enterprise-ga",
"lane": "rollout",
"status": "partnership",
"quarter": "2027-Q3",
"openEnded": true,
"tag": { "en": "Enterprise", "es": "Empresarial" },
"title": {
"en": "Enterprise settlement GA",
"es": "GA de liquidación empresarial"
},
"description": {
"en": "Production offering for regulated partners, built on audited Hooks components.",
"es": "Oferta de producción para socios regulados, construida sobre componentes Hooks auditados."
}
},
{
"id": "ngo-donations",
"lane": "rollout",
"status": "launch",
"quarter": "2026-Q4",
"openEnded": true,
"tag": {
"en": "Launch · public good",
"es": "Lanzamiento · bien público"
},
"title": {
"en": "NGO donation platform",
"es": "Plataforma de donaciones para ONG"
},
"description": {
"en": "Multi-currency, on-ledger donations for NGOs and public-good initiatives.",
"es": "Donaciones multimoneda en el ledger para ONG e iniciativas de bien público."
}
},
{
"id": "on-off-ramp",
"lane": "rollout",
"status": "partnership",
"quarter": "2026-Q2",
"openEnded": true,
"tag": {
"en": "On-off ramps and XAH listings",
"es": "Rampas on/off y listados de XAH"
},
"title": {
"en": "On and off ramps and token listing",
"es": "Rampas de entrada y salida y listado del token"
},
"description": {
"en": "Work with multiple partners to enhance the ability to on and off ramp on Xahau",
"es": "Colaboración con múltiples socios para ampliar las rampas de entrada y salida en Xahau"
}
},
{
"id": "xahau-connect",
"lane": "rollout",
"status": "launch",
"quarter": "2026-Q2",
"openEnded": true,
"tag": { "en": "Event · quarterly", "es": "Evento · trimestral" },
"title": { "en": "Xahau Connect", "es": "Xahau Connect" },
"description": {
"en": "Recurring community + ecosystem event, held once each quarter.",
"es": "Evento recurrente de comunidad y ecosistema, celebrado una vez por trimestre."
}
},
{
"id": "inftf-event",
"lane": "rollout",
"status": "launch",
"quarter": "2026-Q4",
"tag": {
"en": "Event · enterprise + devs",
"es": "Evento · empresas y desarrolladores"
},
"title": { "en": "InFTF event", "es": "Evento InFTF" },
"description": {
"en": "InFTF event bringing enterprise partners and developers together.",
"es": "Evento InFTF que reúne a socios empresariales y desarrolladores."
}
}
]
}

View File

@@ -1,18 +1,19 @@
---
import CookieConsent from '../components/CookieConsent.astro'
import Footer from '../components/Footer.astro'
import Header from '../components/Header.jsx'
import CookieConsent from '../components/CookieConsent.astro'
import Footer from '../components/Footer.astro'
import Header from '../components/Header.jsx'
const _lang = Astro.currentLocale ?? 'en'
const _canonicalURL = new URL(Astro.url.pathname, Astro.site)
const _socialImageURL = new URL('/xahau-logo.png', Astro.site)
const _title = Astro.props.frontmatter?.title
? `Xahau: ${Astro.props.frontmatter?.title}`
: 'Xahau'
const _description = Astro.props.frontmatter?.description
? Astro.props.frontmatter?.description
: 'Xahau is a blockchain for the real world. It is a smart blockchain with account-based programmability. It is cheap and fast by design. It is built for the real world.'
const _lang = Astro.currentLocale ?? 'en'
const _canonicalURL = new URL(Astro.url.pathname, Astro.site)
const _socialImageURL = new URL('/xahau-logo.png', Astro.site)
const _title = Astro.props.frontmatter?.title
? `Xahau: ${Astro.props.frontmatter?.title}`
: 'Xahau'
const _description = Astro.props.frontmatter?.description
? Astro.props.frontmatter?.description
: 'Xahau is a blockchain for the real world. It is a smart blockchain with account-based programmability. It is cheap and fast by design. It is built for the real world.'
---
<html lang={_lang}>
<head>
<link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml">
@@ -40,9 +41,9 @@
<meta name="twitter:image" content={_socialImageURL}>
</head>
<body class="font-[Onest] bg-xahau-background min-h-screen flex flex-col">
<Header client:load url={Astro.url} locale={_lang}/>
<slot/>
<Footer/>
<CookieConsent/>
<Header client:load url={Astro.url} locale={_lang} />
<slot />
<Footer />
<CookieConsent />
</body>
</html>

View File

@@ -1,23 +1,23 @@
---
import '../styles/docs.css'
import CookieConsent from '../components/CookieConsent.astro'
import DocsMobileMenuToggle from '../components/DocsMobileMenuToggle.astro'
import Footer from '../components/Footer.astro'
import Header from '../components/Header.jsx'
import '../styles/docs.css'
import CookieConsent from '../components/CookieConsent.astro'
import DocsMobileMenuToggle from '../components/DocsMobileMenuToggle.astro'
import Footer from '../components/Footer.astro'
import Header from '../components/Header.jsx'
const _hasSidebar = Astro.locals.starlightRoute.hasSidebar
const _hasSidebar = Astro.locals.starlightRoute.hasSidebar
---
<link
href="https://fonts.googleapis.com/css2?family=Onest:wght@400;700&display=swap"
rel="stylesheet"
>
<div class="font-[Onest] bg-xahau-background min-h-screen flex flex-col">
<Header client:load url={Astro.url} locale={Astro.currentLocale ?? 'en'}/>
<Header client:load url={Astro.url} locale={Astro.currentLocale ?? 'en'} />
<div class="page-content flex-1 container mx-auto p-6">
<div class="grid grid-cols-1 md:grid-cols-5 gap-4">
<div>
{
_hasSidebar && (
{_hasSidebar && (
<nav class="sidebar print:hidden" aria-label={Astro.locals.t('sidebarNav.accessibleLabel')}>
<DocsMobileMenuToggle />
<div id="starlight__sidebar" class="sidebar-pane">
@@ -26,16 +26,13 @@
</div>
</div>
</nav>
)
}
</div>
<div class="col-span-4">
<slot/>
)}
</div>
<div class="col-span-4"><slot /></div>
</div>
</div>
<Footer/>
<CookieConsent/>
<Footer />
<CookieConsent />
</div>
<style>

View File

@@ -1,16 +1,18 @@
---
import '../styles/main.css'
import { getRelativeLocaleUrl } from 'astro:i18n'
import worldmap from '../assets/worldmap.svg'
import type { IndexLocale } from '../i18n/indexTranslations'
import { indexTranslations } from '../i18n/indexTranslations'
import BaseLayout from '../layouts/BaseLayout.astro'
import '../styles/main.css'
import { getRelativeLocaleUrl } from 'astro:i18n'
import worldmap from '../assets/worldmap.svg'
import XahauHome from '../components/XahauHome.astro'
import type { IndexLocale } from '../i18n/indexTranslations'
import { indexTranslations } from '../i18n/indexTranslations'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = Astro.props.frontmatter
const _frontmatter = Astro.props.frontmatter
const locale = (Astro.currentLocale ?? 'en') as IndexLocale
const i = indexTranslations[locale]
const locale = (Astro.currentLocale ?? 'en') as IndexLocale
const i = indexTranslations[locale]
---
<BaseLayout frontmatter={_frontmatter}>
<div
class="relative flex flex-col items-center justify-center min-h-[80vh] py-40"
@@ -39,13 +41,13 @@
<div class="flex gap-4">
<a
href={getRelativeLocaleUrl(locale, '/about')}
class="px-10 h-12 flex items-center justify-center bg-xahau-green text-black text-base font-bold hover:bg-black hover:text-white transition"
class="hero-btn hero-btn-primary"
>
{i.hero_learn}
</a>
<a
href={getRelativeLocaleUrl(locale, '/docs')}
class="px-10 h-12 flex items-center justify-center bg-gray-300 text-black text-base font-bold hover:bg-black hover:text-white transition"
class="hero-btn hero-btn-secondary"
>
{i.hero_docs}
</a>
@@ -53,100 +55,41 @@
</div>
</div>
</div>
<div class="flex flex-col">
<div class="flex-none container mx-auto py-12 text-left max-w-7xl p-6">
<h1 class="text-3xl md:text-4xl font-extrabold text-black mb-4">
{i.network_title}
</h1>
<h2 class="text-xl md:text-2xl font-semibold text-black mb-8">
{i.network_subtitle}
</h2>
<div class="items-start grid grid-cols-1 md:grid-cols-3 gap-8">
<div>
<h3 class="text-xl md:text-2xl font-bold text-black mb-2">
{i.feat1_title}
</h3>
<p class="text-base font-light text-black">{i.feat1_desc}</p>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold text-black mb-2">
{i.feat2_title}
</h3>
<p class="text-base font-light text-black">{i.feat2_desc}</p>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold text-black mb-2">
{i.feat3_title}
</h3>
<p class="text-base font-light text-black">{i.feat3_desc}</p>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold text-black mb-2">
{i.feat4_title}
</h3>
<p class="text-base font-light text-black">{i.feat4_desc}</p>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold text-black mb-2">
{i.feat5_title}
</h3>
<p class="text-base font-light text-black">{i.feat5_desc}</p>
</div>
<a
href={getRelativeLocaleUrl(locale, '/features')}
class="self-end px-10 h-12 flex items-center justify-center bg-xahau-green text-black text-base font-bold hover:bg-black hover:text-white transition"
>
{i.feat_more}
</a>
</div>
</div>
<div class="flex-none container mx-auto max-w-7xl p-6 pb-12">
<XahauHome />
</div>
<div class="flex flex-col items-end">
<div class="flex-none container mx-auto py-12 text-left max-w-7xl p-6">
<h1 class="text-3xl md:text-4xl font-extrabold text-black mb-4">
{i.stats_title}
</h1>
<h2 class="text-xl md:text-2xl font-semibold text-black mb-8">
{i.stats_subtitle}
</h2>
<div class="items-end grid grid-cols-6 md:grid-cols-9 gap-4">
<div
class="text-black flex flex-col col-span-4 md:col-span-3 min-h-40 items-start justify-end p-4 bg-white border-black border-2"
>
<h3 class="text-xl md:text-2xl font-semibold">{i.stats_accounts}</h3>
<h4 class="text-4xl md:text-6xl font-extrabold">200K+</h4>
</div>
<div
class="text-black flex flex-col col-span-2 md:col-span-2 min-h-40 items-start justify-end p-4 bg-white border-black border-2"
>
<h3 class="text-xl md:text-2xl font-semibold">{i.stats_hooks}</h3>
<h4 class="text-4xl md:text-6xl font-extrabold">5K+</h4>
</div>
<div
class="text-xahau-secondary flex flex-col col-span-2 md:col-span-2 min-h-40 items-start justify-end p-4 bg-xahau-gray border-black border-2"
>
<h3 class="text-xl md:text-2xl font-semibold">{i.stats_nodes}</h3>
<h4 class="text-4xl md:text-6xl font-extrabold">300+</h4>
</div>
<div
class="text-xahau-secondary flex flex-col col-span-4 md:col-span-2 row-start-auto md:row-start-2 min-h-40 items-start justify-end p-4 bg-xahau-gray border-black border-2"
>
<h3 class="text-xl md:text-2xl font-semibold">{i.stats_txs}</h3>
<h4 class="text-4xl md:text-6xl font-extrabold">1.5M+</h4>
</div>
<div
class="text-black flex flex-col col-span-6 md:col-span-3 row-start-auto md:row-start-2 min-h-40 items-start justify-end p-4 bg-white border-black border-2"
>
<h3 class="text-xl md:text-2xl font-semibold">{i.stats_ledgers}</h3>
<h4 class="text-4xl md:text-6xl font-extrabold">22M+</h4>
</div>
<a
href={getRelativeLocaleUrl(locale, '/docs/infrastructure/system-requirements/')}
class="col-span-6 row-start-auto md:row-start-2 px-10 h-12 flex items-center justify-center bg-xahau-green text-black text-base font-bold hover:bg-black hover:text-white transition"
>{i.stats_node_cta}</a
>
</div>
</div>
</div>
<slot/>
<slot />
</BaseLayout>
<style>
.hero-btn {
display: inline-flex;
align-items: center;
justify-content: center;
height: 48px;
padding: 0 36px;
border-radius: 6px;
font-size: 0.9375rem;
font-weight: 600;
text-decoration: none;
transition:
background 0.15s,
color 0.15s;
}
.hero-btn-primary {
background: #007a28;
color: #ffffff;
}
.hero-btn-primary:hover {
background: #005a1e;
color: #ffffff;
}
.hero-btn-secondary {
background: #e4edef;
color: #0f2328;
}
.hero-btn-secondary:hover {
background: #cdd7dc;
color: #0f2328;
}
</style>

View File

@@ -1,9 +1,10 @@
---
import '../styles/main.css'
import BaseLayout from '../layouts/BaseLayout.astro'
import '../styles/main.css'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = Astro.props.frontmatter
const _frontmatter = Astro.props.frontmatter
---
<BaseLayout frontmatter={_frontmatter}>
<div class="flex-none container mx-auto py-12 text-left max-w-7xl p-6">
<h1 class="text-5xl font-extrabold mb-2">{_frontmatter.title}</h1>

16
src/pages/about.astro Normal file
View File

@@ -0,0 +1,16 @@
---
import '../styles/main.css'
import XahauAbout from '../components/XahauAbout.astro'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'About Xahau',
description: 'Enterprise L1 blockchain with account-based programmability',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauAbout />
</div>
</BaseLayout>

View File

@@ -1,50 +0,0 @@
---
title: About Xahau
description: What is Xahau? The short explainer
---
import PageLayout from '../layouts/PageLayout.astro';
import PageSection from '../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="center">
<div class="w-full relative pb-[56.25%]">
<iframe width="560" height="315" class="absolute h-full w-full top-0 left-0" src="https://www.youtube.com/embed/4pruN6sWJho?si=IlxKDlD2LFLwS6EK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
</PageSection>
<PageSection align="left" gem="10" gemSize="large" loading="eager">
Xahau is a L1 blockchain with a unique composition of features and a fresh approach to blockchain programmability, also known as smart contracts.
The long-term proven technology settles transactions in ~4 seconds at very low costs down to fractions of a USD cent. It is scalable, currently with up to 10,000 transactions per ledger, and is an inherently green and energy friendly blockchain.
Xahau offers native features for issuing and trading currencies on the built-in decentralised exchange, native non-fungible tokens, and endless opportunities for DeFi with custom logic through Xahau smart contracts, known as Hooks.
Hooks lives on accounts, making it a fresh take on how custom logic can be used to act on account-based events, such as receiving transactions. Hooks are currently developed in C, but JavaScript support is already developed and in testing, with other programming languages in the scope as well. This makes the world of smart contracts available, without a steep learning curve, to millions of developers.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="1">
### What is the technology behind Xahau?
Xahau is proven technology, as it is an evolved iteration of the XRP Ledger code, enhanced with smart contract, account-based programmability (Hooks), and equal support for issued currencies in native features such as escrows and payment channels.
Xahau, like the XRPL, uses a Federated Consensus mechanism as its method of validating transactions. Transactions are confirmed through a consensus protocol, in which designated independent servers called validators come to an agreement on the order and outcome of transactions. All servers in the network process each transaction according to the same rules, and any transaction that follows the protocol is confirmed right away. All transactions are public and transparent, and anyone can operate a validator.
Xahau introduces a governance game to ensure a community-centric approach towards decision-making of the network. To play the game, the members of the tables cast votes. The topics discussed on this 2 layers table system include seats, hooks and rewards topics.
</PageSection>
<PageSection align="left" gem="14">
## XAH, the native currency of Xahau
The native currency on Xahau is called XAH and is an inflationary currency. Every account can participate in balance adjustment by interacting with a Hook on the genesis account, monthly accruing 4% of the account balance.
XAH is used to prevent network spam, by adding a cost of transacting. Normal transactions cost fractions of a XAH, while the price of transacting increases if interacting with Hooks. XAH is also required as a locked balance, or reserve, to own an account, own objects, or storing data for smart contract consumption.
Because of Hooks, the burn-rate of XAH is higher compared to that of XRPL. For projects that rely on Hooks for custom logic, it is recommended that they keep a balance of XAH that can generate a monthly balance adjustment to pay for fees.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="12">
## What key events have there been for Xahau?
Xahau was launched on October 30, 2023 by the Xahau Launch Alliance, an interim alliance formed by long-term, non-Ripple, XRPL developers, organisations and infrastructure providers: XRPL Labs, GateHub Limited, Titanium OU, Evernode Labs Ltd, and Digital Governing OU.
In the first year Xahau has received many updates, such as a new native feature, Remit, in March 2024, performance improvements, memory only nodes and JavaScript hook support.
Within the first year, the first cross-border remittance service was launched in collaboration between The Inclusive Financial Technologies Foundation (InFTF) and the Cooperative Bank of Oromia (COOP), one of Ethiopia's largest banks with more than 13 million account holders. The inward remittance solution helps the African Diaspora, many of whom work as blue-collar workers throughout the Middle East, US, and Europe, send money back to their friends and family in Ethiopia. With the service, initially launched for inward remittances using EUR, anyone can buy digital EUR, send it via blockchain for little to no cost, and have it settle in the bank account of a family member or friend in the local currency, ETB, within seconds.
The InFTF also signed a Memorandum of Understanding with the African Union to advance the work of the AU Peace Fund through the deployment of cutting-edge innovative financial technologies. This collaboration will unlock new pathways for contributions, making it easier and more accessible for individuals and organizations to support peace initiatives in Africa through the development of a seamless donation platform using Xahau enabling contributions in multiple currencies.
</PageSection>
</PageLayout>

17
src/pages/connect.astro Normal file
View File

@@ -0,0 +1,17 @@
---
import '../styles/main.css'
import XahauConnect from '../components/XahauConnect.astro'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahau Connect',
description:
'Professional blockchain events for serious discussion and innovation',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauConnect />
</div>
</BaseLayout>

View File

@@ -1,140 +0,0 @@
---
title: Xahau Connect
description: Professional blockchain events for serious discussion and innovation
---
import PageLayout from '../layouts/PageLayout.astro';
import PageSection from '../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Upcoming Events
### Non-EVM Blockchain Programming Course
<div class="space-y-3">
<div>
<strong>📅 Date & Time:</strong> Friday, February 27th, 2026 at 4:00 PM (16:00) CET
</div>
<div>
<strong>📍 Location:</strong> MIL (Madrid Innovation Lab)<br/>
Calle Bravo Murillo 37-39<br/>
Madrid, Spain<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=es-ES&entry=ttu&g_ep=EgoyMDI1MTEwNS4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noopener noreferrer">View on Google Maps</a>
</div>
<div>
<strong>🎟️ Registration:</strong> Register to attend in person using this [form](https://luma.com/hiy3lsdq)
</div>
</div>
Join us for a free introductory course on Xahau blockchain programming, designed to help you take your first steps in this type of technology. This 4-hour in-person course focuses on learning fundamental concepts and tools through practical exercises. Whether you're a developer curious about Non-EVM alternatives, an entrepreneur, or someone with no prior blockchain experience, this course will cover topics from basic architecture and wallet creation to smart contracts in Non-EVM environments. Language: Spanish & English.
</PageSection>
<PageSection align="right" gem="3">
## Past Events
### Institutional Custody of Crypto Assets & Gold Tokenization
<div class="space-y-3">
<div>
<strong>📅 Date & Time:</strong> Wednesday, February 11th, 2026 at 06:30 PM (18:30) CET
</div>
<div>
<strong>📍 Location:</strong> MIL (Madrid Innovation Lab)<br/>
Calle Bravo Murillo 37-39<br/>
Madrid, Spain<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=en&entry=ttu" target="_blank" rel="noopener noreferrer">View on Google Maps</a>
</div>
<div>
<strong>🎤 Featured Speakers:</strong>
<div class="ml-6 mt-1 space-y-1">
<div>• <strong>José Ángel Fernández</strong> CEO, Prosegur Crypto</div>
</div>
</div>
<div>
<strong>📺 Recorded Session:</strong> Watch online at <a href="https://www.youtube.com/watch?v=GJPq3y5x5FA" target="_blank" rel="noopener noreferrer">Madrid Innovation Lab YouTube</a>
</div>
</div>
An in-person session of <strong>Xahau Connect</strong> featuring <strong>José Ángel Fernández</strong>, CEO of Prosegur Crypto. This talk explored Prosegur's journey into the blockchain ecosystem through Prosegur Crypto, covering the institutional custody of crypto assets, how these systems work from a technological and security perspective, and the services offered to institutional clients. The session also covered Prosegur Crypto's gold tokenization offering, discussing both the technical implementation and the business model behind tokenizing physical gold and its real-world use cases.
### Blockchain and Regulation: Europe Under Legal Scrutiny
<div class="space-y-3">
<div>
<strong>📅 Date & Time:</strong> Thursday, December 4th, 2025 at 6:30 PM (18:30) CET
</div>
<div>
<strong>📍 Location:</strong> MIL (Madrid Innovation Lab)<br/>
Calle Bravo Murillo 37-39<br/>
Madrid, Spain<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=es-ES&entry=ttu&g_ep=EgoyMDI1MTEwNS4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noopener noreferrer">View on Google Maps</a>
</div>
<div>
<strong>🎤 Featured Speakers:</strong>
<div class="ml-6 mt-1 space-y-1">
<div>• <strong>Horacio Gómez Rey</strong> Head of Legal Spain, N26</div>
<div>• <strong>Pedro Méndez de Vigo</strong> AVP Legal Europe, Crypto.com</div>
</div>
</div>
<div>
<strong>📺 Recorded Session:</strong> Watch online at <a href="https://www.youtube.com/watch?v=Koq8LqR7qyc" target="_blank" rel="noopener noreferrer">Madrid Innovation Lab YouTube</a>
</div>
</div>
Join us for an in-depth discussion on blockchain regulation in Europe, featuring leading legal experts from major fintech and crypto companies. This session explored the evolving regulatory landscape, compliance challenges, and the future of blockchain under European legal scrutiny.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="left" gem="9">
## About Xahau Connect
**Xahau Connect** is a series of professional blockchain events created by [**INFTF**](https://www.inftf.org) (Inclusive Financial Technology Foundation) to foster serious, agnostic discussions about blockchain technology and its real-world applications.
The events bring together experts, professional builders, researchers, and innovators from diverse blockchain ecosystems to share knowledge, explore challenges, and collaborate on advancing the technology beyond hype and speculation.
## Our Mission
At Xahau Connect, we focus on:
<div class="space-y-2">
<div>• <strong>Serious Technical Discussion:</strong> In-depth conversations on blockchain architecture, business, opportunities, regulation, innovation and more topics.</div>
<div>• <strong>Blockchain Agnosticism:</strong> Welcoming perspectives from all blockchain ecosystems and technologies.</div>
<div>• <strong>Professional Networking:</strong> Connecting builders, experts, developers, researchers, and industry leaders.</div>
<div>• <strong>Real-World Applications:</strong> Focusing on practical implementations and use cases that drive adoption.</div>
<div>• <strong>Knowledge Sharing:</strong> Learning from experts across different blockchain domains and industries.</div>
</div>
## Who Should Attend
Xahau Connect events are designed for:
<div class="space-y-2">
<div>• <strong>Blockchain Developers & Builders</strong> working on protocols, smart contracts, dApps, and infrastructure.</div>
<div>• <strong>Technical Architects</strong> designing blockchain solutions and integrations.</div>
<div>• <strong>Researchers & Academics</strong> exploring blockchain theory, cryptography, and distributed systems.</div>
<div>• <strong>Enterprise Leaders</strong> evaluating blockchain for business applications.</div>
<div>• <strong>Ecosystem Contributors</strong> building tools, documentation, and community resources.</div>
<div>• <strong>Industry Professionals</strong> applying blockchain in finance, supply chain, identity, and other sectors. If you're serious about the technology and its potential, Xahau Connect is for you.</div>
</div>
</PageSection>
<PageSection align="right" gem="2">
## Speakers, Sponsors & Contact
### Get Involved
<div class="space-y-2">
<div>• <strong>Speaking Proposals & Sponsorship Inquiries:</strong> <a href="mailto:connect@xahau.org">connect@xahau.org</a></div>
</div>
We're grateful to our partners who support Xahau Connect's mission of fostering professional blockchain discourse. Partner and speaker details will be announced as we confirm participation for upcoming events.
### Subscribe for Updates
To receive notifications about upcoming Xahau Connect events:
<div class="space-y-2">
<div>• Follow <a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a> and <a href="https://x.com/incfintech" target="_blank" rel="noopener noreferrer">INFTF</a> on X</div>
<div>• Email us at <a href="mailto:connect@xahau.org">connect@xahau.org</a></div>
</div>
</PageSection>
</PageLayout>

16
src/pages/contest.astro Normal file
View File

@@ -0,0 +1,16 @@
---
import '../styles/main.css'
import XahauContest from '../components/XahauContest.astro'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahau Dev Contest',
description: 'Ecosystem Rising — Build user-facing services powered by Xahau',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="flex-none container mx-auto max-w-7xl p-6 pb-12">
<XahauContest />
</div>
</BaseLayout>

View File

@@ -1,210 +0,0 @@
---
title: Xahau Dev Contest
description: Ecosystem Rising - Build user-facing services powered by Xahau
---
import PageLayout from '../layouts/PageLayout.astro';
import PageSection from '../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Introduction
Welcome to the **Xahau Dev Contest: Ecosystem Rising**!
This contest invites innovators to build **user-facing services powered by Xahau** and compete for prizes while strengthening the Xahau ecosystem.
## Prizes
* **3 main prizes in XAH** for the winning projects.
* **🥇 1st Prize** 4000 USD value in XAH.
* **🥈 2nd Prize** 2000 USD value in XAH.
* **🥉 3rd Prize** 1000 USD value in XAH.
## Timeline
* **Submission deadline:** February 1st, 2026.
* **Judging panel:** 5 members from the Xahau and XRPL community (see below).
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="9">
## Judges Panel
The contest will be evaluated by **five community members**:
* • [**tequ**](https://x.com/_tequ_) Xahau Blockchain Developer
* • [**Robert Kiuru**](https://x.com/robertkiuru) COO, *XRPL Labs*
* • **[gadget78](https://x.com/gadget78)** Evernode Developer
* • [**Andrei Rosseti**](https://x.com/andreirosseti) Architect of Xahau DocProof | CTO, *EleveCRM*
* • [**Vet**](https://x.com/Vet_X0) XRPL Community contributor
## Theme: Services on Xahau
Participants must build **web-based services that interact with Xahau (Mainnet)** and are designed for the **end user**, whether casual users, power users, public sector, or private sector audiences.
Examples include **(but are not limited to)**:
<div class="space-y-2">
<div>
<strong>• Everyday user tools:</strong>
<div class="ml-6 space-y-1">
<div>◦ Personal finance dashboards</div>
<div>◦ Wallet managers</div>
<div>◦ Community apps</div>
</div>
</div>
<div>
<strong>• Business services:</strong>
<div class="ml-6 space-y-1">
<div>◦ Payment portals</div>
<div>◦ Loyalty platforms</div>
<div>◦ Client service tools</div>
</div>
</div>
<div>
<strong>• Public platforms:</strong>
<div class="ml-6 space-y-1">
<div>◦ NFT marketplaces</div>
<div>◦ Voting systems</div>
<div>◦ Donation hubs</div>
<div>◦ Cultural apps</div>
<div>◦ Utilities for social good</div>
</div>
</div>
</div>
</PageSection>
<PageSection align="left" gem="4">
## Participation Rules
<div class="space-y-2">
<div>• You can submit <strong>as many projects as you like</strong>.</div>
<div>• Each project may be submitted by an individual or a group of participants.</div>
<div>• Different projects from the same participant(s) can be eligible for different prizes.</div>
<div>• Projects <strong>must run on the Xahau Mainnet</strong>.</div>
<div>
<div>• Each project <strong>must be accessible online</strong>, so that both judges and the public can use or view it.</div>
<div class="ml-6 mt-1">◦ This avoids the need for judges to install or configure projects locally, and reduces the risk of unexpected errors or participant assistance being required.</div>
</div>
<div>
<div>• Each submission must include <strong>basic documentation</strong> to help others understand the project.</div>
<div class="ml-6 mt-1">◦ Optionally, you can also include <strong>multimedia material</strong> (videos, slides, demos, etc.) to better explain your work.</div>
</div>
<div>• <strong>AI tools</strong> may be used both for development and documentation.</div>
<div>• If your project uses <strong>Hooks</strong>, the Hook code must be open source, so that it can be audited for safety and serve as a learning resource for the community. You must attach their C code in your submission along with the hook hash. Check the "Submission Format" section.</div>
<div>• Projects that clearly offer regulated financial services or that target illegal activities are not eligible.</div>
<div>• To be evaluated by the judges, you must include your submission with a PR as indicated in the "Submission Format" section.</div>
<div>• Once your submission PR has been created, post a tweet on X about your project, tagging <a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a>, to announce that you've participated in the Xahau Dev Contest.</div>
</div>
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="13">
## Evaluation Criteria
When reviewing submissions, judges will especially value:
<div class="space-y-2">
<div>• <strong>Originality and creativity</strong> of the idea.</div>
<div>• <strong>Absence of existing competitors</strong> providing the same service on Xahau Mainnet prior to the contest.</div>
<div>• <strong>Impact and usefulness</strong> for end users (individuals, businesses, or public sector).</div>
<div>• <strong>Quality of execution</strong> (stability, documentation, user experience).</div>
<div>• <strong>Use of Hooks (Smart Contracts on Xahau)</strong>.</div>
</div>
</PageSection>
<PageSection align="left" gem="2">
## Submission Format
Each project must include a folder and at least a **submission file** inside submissions directory of **[this repository](https://github.com/xahau/xahau-2nd-dev-contest)**.
The file and directory must be named with your GitHub username followed by the project name, separated by an underscore, and using the .md extension for the file.
Example: submissions/GitHubName_ProjectName/GitHubName_ProjectName.md
The file should contain the following fields:
<div class="space-y-2">
<div>• <strong>Project Title</strong></div>
<div>• <strong>Brief Description</strong></div>
<div>• <strong>Participants</strong> (names or nicknames)</div>
<div>• <strong>Participants' Social Media</strong></div>
<div>• <strong>Contact Email</strong></div>
<div>• <strong>Link to the Online Project</strong></div>
<div>• <strong>Xahau Address to receive the prize in case of winning</strong></div>
<div>• <strong>Link to Documentation</strong></div>
<div>• <strong>Hooks code in C and matching hash</strong> (in case your project uses one or more, to confirm it's safe, you should add .c files in your submission folder)</div>
<div>• <strong>Hooks account of the project</strong> (to confirm you are using the hooks previously provided for this project)</div>
<div>• <strong>Link to Project's Repository</strong> (optional)</div>
<div>• <strong>Other Links</strong> (optional, e.g., demo video, presentation, slides)</div>
</div>
A template directory and file are available in the repository folder, which participants can use to fill in their project details.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="11">
## Support & Community
If you have questions or need guidance:
* Join the **[Xahau Builders Discord](https://discord.gg/ds7nb93mYj)**.
* Or email us at **[contests@xahau.org](mailto:contests@xahau.org)**.
We will try to answer as soon as possible. Your questions may also be added to the FAQ in this README so that others can benefit from the answers.
## Ownership
* All submitted projects remain the **property of their original creators**.
## Useful Links
Here are some useful resources for Xahau developers:
* [Xahau Documentation](https://docs.xahau.network)
* [Xahau Hooks Documentation](https://xahau.network/docs/hooks/)
* [Xahau GitHub Repositories](https://github.com/Xahau)
* [Xaman Website](https://xaman.app)
* [Xahau Testnet Faucet](https://xahau-test.net/)
* [Xahau Discord](https://discord.gg/ds7nb93mYj)
## Recap: What You Need to Do
<div class="space-y-2">
<div>• Get inspired. Be creative and motivated to build something that strengthens the Xahau ecosystem.</div>
<div>• Build your project. Develop your web-based service using the Xahau Mainnet.</div>
<div>• Submit your work, Create a PR (Pull Request) following the instructions in the "Submission Format" section.</div>
<div>• Announce your participation. Post a tweet on X about your project, tagging <a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a>, and share that you've joined the <strong>Xahau Dev Contest</strong>.</div>
</div>
</PageSection>
<PageSection align="left" gem="6">
## FAQ
**Q: Can I submit more than one project?**
- A: Yes! You can submit as many as you want, individually or as part of a group.
**Q: Do the projects have to be open source?**
- A: No, but they must include at least basic documentation so the judges can understand how they work. If your project includes Hooks, you must attach their C code in your submission along with the hook hash. Check the "Submission Format" section.
**Q: Can I use AI to help me build or document my project?**
- A: Yes, AI usage is fully allowed.
**Q: What kind of services are you expecting?**
- A: Any service that provides **value to end users** — whether individuals, businesses, or the public sector. From NFT marketplaces and financial dashboards to voting systems, payment apps, donation hubs, or any innovative public/private service.
**Q: Is there an advantage to using Hooks?**
- A: Yes, projects that creatively implement **Hooks (smart contracts in Xahau)** will receive special recognition.
**Q: What happens to my project after the contest?**
- A: You keep full ownership.
**Q: Where can I ask questions?**
- A: On the **[Xahau Community Discord](https://discord.gg/ds7nb93mYj)** or by emailing **[contests@xahau.org](mailto:contests@xahau.org)**.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="7">
## Final Disclaimer
By participating, you agree to the following:
<div class="space-y-2">
<div>• Participants must meet eligibility criteria and adhere to all rules. It is not allowed to submit projects that have already been published before the competition.</div>
<div>• Projects remain the property of their creators, but organizers reserve the right to showcase, share, or feature submissions with appropriate credit.</div>
<div>• The organizers retain the right to disqualify submissions that violate rules or compromise the contest's integrity. All jury decisions are final and not subject to appeal.</div>
<div>• Organizers are not liable for damages, expenses or losses during participation. The organizers also reserve the right to modify the contest requirements at any time if necessary.</div>
<div>• You acknowledge that sanctions and certain jurisdictional restrictions may apply. Eligibility to receive rewards may require compliance with applicable laws, including the completion of KYC (Know Your Customer) verification.</div>
<div>• All taxes, fees, or other financial obligations related to rewards are the sole responsibility of the participants.</div>
<div>• If you have any concerns or doubts regarding eligibility, requirements, or tax obligations, please reach out to us through the provided communication channels before submitting your entry.</div>
<div>Now it's your turn: **Build, submit, and showcase your innovation with Xahau blockchain!**</div>
</div>
</PageSection>
</PageLayout>

16
src/pages/ecosystem.astro Normal file
View File

@@ -0,0 +1,16 @@
---
import '../styles/main.css'
import XahauEcosystem from '../components/XahauEcosystem.astro'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Ecosystem',
description: 'Xahau around the world',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauEcosystem />
</div>
</BaseLayout>

View File

@@ -1,68 +0,0 @@
---
layout: ../layouts/PageLayout.astro
title: Ecosystem
description: Xahau around the world
---
import EcosystemButton from '../components/EcosystemButton.astro';
import gatehub from'../assets/ecosystem-logos/gatehub.png'
import bitrue from'../assets/ecosystem-logos/bitrue.png'
import bithomp from'../assets/ecosystem-logos/bithomp.png'
import xahscan from'../assets/ecosystem-logos/xahscan.png'
import xahau_services from '../assets/ecosystem-logos/xahau-services.png'
import xrplwin from'../assets/ecosystem-logos/xrplwin.png'
import xaman from'../assets/ecosystem-logos/xaman.png'
import dcent from'../assets/ecosystem-logos/dcent.png'
import bitmart from'../assets/ecosystem-logos/bitmart.png'
import coinex from'../assets/ecosystem-logos/coinex.png'
## Wallets
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xaman.app/" title="Xaman" imageSrc={xaman} class="!bg-black" />
<EcosystemButton class="h-30" href="https://www.dcentwallet.com/" title="D'CENT" imageSrc={dcent} class="!bg-black" />
<EcosystemButton class="h-30" href="https://gemwallet.app/" title="GemWallet" />
<EcosystemButton class="h-30" href="https://www.ledger.com/" title="Ledger" />
</div>
## Exchanges
<div class="grid gap-3 md:grid-cols-3 grid-cols-1 pt-2 pb-20">
<EcosystemButton class="h-40" title="Gatehub" imageSrc={gatehub} href="https://gatehub.net/" />
<EcosystemButton class="h-40" href="https://www.bitrue.com/" imageSrc={bitrue} title="Bitrue" />
<EcosystemButton class="h-40" title="BitMart" imageSrc={bitmart} href="https://www.bitmart.com/" />
<EcosystemButton class="h-40" title="CoinEx" imageSrc={coinex} href="https://www.coinex.com/" />
</div>
## Explorers and utilities
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xahscan.com/" title="XAHSCAN" imageSrc={xahscan} class="!bg-[#1E3B70]" />
<EcosystemButton class="h-30" href="https://xahauexplorer.com/" title="Xahau Explorer" imageSrc={bithomp} />
<EcosystemButton class="h-30" href="https://xahau.xrplwin.com/" title="XRPLWin" imageSrc={xrplwin} />
<EcosystemButton class="h-30" href="https://xahau.services/" title="Xahau Services" imageSrc={xahau_services} />
</div>
## Projects
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xahaudocproof.com/" title="Xahau DocProof" />
<EcosystemButton class="h-30" href="https://www.evernode.org/" title="Evernode" />
<EcosystemButton class="h-30" href="https://xmerch.app/" title="xMerch" />
<EcosystemButton class="h-30" href="https://evergram.app/" title="Evergram" />
<EcosystemButton class="h-30" href="https://xamini.io/" title="XAMINI" />
<EcosystemButton class="h-30" href="https://xmagnetic.org/?network=xahau" title="Magnetic" />
<EcosystemButton class="h-30" href="https://xahinvest.com/" title="XAH Invest" />
<EcosystemButton class="h-30" href="https://xpert.page/" title="Xpert Page" />
<EcosystemButton class="h-30" href="https://vpra.app/" title="VPRA" />
<EcosystemButton class="h-30" href="https://xaman.app/detect/xapp:dino.xahur" title="DinoXAHur" />
<EcosystemButton class="h-30" href="https://xumm.app/detect/xapp:xumm.dex" title="Xaman DEX Trade" />
<EcosystemButton class="h-30" href="https://xumm.app/detect/xapp:xaman.voucher" title="Voucher" />
<EcosystemButton class="h-30" href="https://www.dallipay.com/" title="Dallipay" />
<EcosystemButton class="h-30" href="https://dhali.io/" title="Dhali" />
<EcosystemButton class="h-30" href="https://xahauradio.com/" title="Xahau Radio" />
<EcosystemButton class="h-30" href="https://github.com/Cbot-XRPL/Xahau-Journal?tab=readme-ov-file" title="Xahau Journal" />
<EcosystemButton class="h-30" href="https://github.com/Handy4ndy/XahauHooks101" title="Hooks 101" />
<EcosystemButton class="h-30" href="https://github.com/Handy4ndy/HandyHooks" title="HandyHooks" />
</div>

17
src/pages/es/about.astro Normal file
View File

@@ -0,0 +1,17 @@
---
import '../../styles/main.css'
import XahauAboutEs from '../../components/XahauAboutEs.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Sobre Xahau',
description:
'Blockchain L1 empresarial con programabilidad basada en cuentas',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauAboutEs />
</div>
</BaseLayout>

View File

@@ -1,49 +0,0 @@
---
title: Sobre Xahau
description: ¿Qué es Xahau? El resumen breve
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="center">
<div class="w-full relative pb-[56.25%]">
<iframe width="560" height="315" class="absolute h-full w-full top-0 left-0" src="https://www.youtube.com/embed/4pruN6sWJho?si=IlxKDlD2LFLwS6EK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
</PageSection>
<PageSection align="left" gem="10" gemSize="large" loading="eager">
Xahau es una blockchain L1 con una composición única de características y un enfoque innovador sobre la programabilidad blockchain, también conocida como contratos inteligentes.
La tecnología, probada a largo plazo, liquida transacciones en aproximadamente 4 segundos a costes muy bajos, por fracciones de un centavo de USD. Es escalable, actualmente con hasta 10.000 transacciones por ledger, y es una blockchain inherentemente verde y respetuosa con el medio ambiente.
Xahau ofrece características nativas para emitir y negociar monedas en el exchange descentralizado integrado, tokens no fungibles nativos, y oportunidades infinitas para DeFi con lógica personalizada a través de los contratos inteligentes de Xahau, conocidos como Hooks.
Los Hooks residen en cuentas, lo que supone un enfoque innovador sobre cómo se puede usar la lógica personalizada para actuar sobre eventos de cuentas, como recibir transacciones. Los Hooks se desarrollan actualmente en C, pero el soporte para JavaScript ya está desarrollado y en pruebas, con otros lenguajes de programación en perspectiva. Esto pone el mundo de los contratos inteligentes al alcance de millones de desarrolladores, sin una curva de aprendizaje empinada.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="1">
### ¿Cuál es la tecnología detrás de Xahau?
Xahau es tecnología probada, ya que es una iteración evolucionada del código del XRPL, mejorada con contratos inteligentes, programabilidad basada en cuentas (Hooks), e igual soporte para monedas emitidas en características nativas como garantías y canales de pago.
Xahau, como el XRPL, utiliza un mecanismo de Consenso Federado como método de validación de transacciones. Las transacciones se confirman mediante un protocolo de consenso, en el que servidores independientes designados llamados validadores alcanzan un acuerdo sobre el orden y el resultado de las transacciones. Todos los servidores de la red procesan cada transacción según las mismas reglas, y cualquier transacción que siga el protocolo se confirma de inmediato. Todas las transacciones son públicas y transparentes, y cualquiera puede operar un validador.
Xahau introduce un juego de gobernanza para garantizar un enfoque centrado en la comunidad en la toma de decisiones de la red. Para jugar, los miembros de las mesas emiten votos. Los temas discutidos en este sistema de 2 capas de mesas incluyen asientos, hooks y temas de recompensas.
</PageSection>
<PageSection align="left" gem="14">
## XAH, la moneda nativa de Xahau
La moneda nativa de Xahau se llama XAH y es una moneda inflacionaria. Cada cuenta puede participar en el ajuste de saldo interactuando con un Hook en la cuenta génesis, acumulando mensualmente el 4% del saldo de la cuenta.
XAH se utiliza para prevenir el spam de red, añadiendo un coste de transacción. Las transacciones normales cuestan fracciones de un XAH, mientras que el precio de transacción aumenta al interactuar con Hooks. XAH también se requiere como saldo bloqueado, o reserva, para poseer una cuenta, poseer objetos o almacenar datos para el consumo de contratos inteligentes.
Debido a los Hooks, la tasa de quema de XAH es mayor en comparación con la del XRPL. Para los proyectos que dependen de Hooks para lógica personalizada, se recomienda que mantengan un saldo de XAH que pueda generar un ajuste de saldo mensual para pagar las comisiones.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="12">
## ¿Cuáles han sido los eventos clave para Xahau?
Xahau fue lanzado el 30 de octubre de 2023 por la Xahau Launch Alliance, una alianza interina formada por desarrolladores, organizaciones y proveedores de infraestructura de XRPL de largo plazo, no relacionados con Ripple: XRPL Labs, GateHub Limited, Titanium OU, Evernode Labs Ltd y Digital Governing OU.
En el primer año, Xahau recibió muchas actualizaciones, como una nueva característica nativa, Remit, en marzo de 2024, mejoras de rendimiento, nodos solo en memoria y soporte para hooks en JavaScript.
En el primer año, se lanzó el primer servicio de remesas transfronterizas en colaboración entre The Inclusive Financial Technologies Foundation (InFTF) y el Cooperative Bank of Oromia (COOP), uno de los bancos más grandes de Etiopía con más de 13 millones de titulares de cuentas. La solución de remesas entrantes ayuda a la diáspora africana, muchos de los cuales trabajan como trabajadores de cuello azul en todo Oriente Medio, EE.UU. y Europa, a enviar dinero a sus amigos y familiares en Etiopía. Con el servicio, inicialmente lanzado para remesas entrantes usando EUR, cualquiera puede comprar EUR digital, enviarlo a través de blockchain por poco o ningún costo, y liquidarlo en la cuenta bancaria de un familiar o amigo en la moneda local, ETB, en segundos.
InFTF también firmó un Memorando de Entendimiento con la Unión Africana para avanzar en el trabajo del Fondo de Paz de la UA a través del despliegue de tecnologías financieras innovadoras de vanguardia. Esta colaboración abrirá nuevas vías para las contribuciones, haciendo más fácil y accesible para individuos y organizaciones apoyar iniciativas de paz en África a través del desarrollo de una plataforma de donación fluida que permita contribuciones en múltiples monedas.
</PageSection>
</PageLayout>

View File

@@ -0,0 +1,17 @@
---
import '../../styles/main.css'
import XahauConnect from '../../components/XahauConnect.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahau Connect',
description:
'Eventos profesionales de blockchain para debates serios e innovación',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauConnect />
</div>
</BaseLayout>

View File

@@ -1,140 +0,0 @@
---
title: Xahau Connect
description: Eventos profesionales de blockchain para debates serios e innovación
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Próximos Eventos
### Curso de Programación Blockchain Non-EVM
<div class="space-y-3">
<div>
<strong>📅 Fecha y hora:</strong> Viernes, 27 de febrero de 2026 a las 4:00 PM (16:00) CET
</div>
<div>
<strong>📍 Ubicación:</strong> MIL (Madrid Innovation Lab)<br/>
Calle Bravo Murillo 37-39<br/>
Madrid, España<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=es-ES&entry=ttu&g_ep=EgoyMDI1MTEwNS4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noopener noreferrer">Ver en Google Maps</a>
</div>
<div>
<strong>🎟️ Registro:</strong> Regístrate para asistir en persona usando este [formulario](https://luma.com/hiy3lsdq)
</div>
</div>
Únete a nosotros para un curso introductorio gratuito sobre programación blockchain en Xahau, diseñado para ayudarte a dar tus primeros pasos en este tipo de tecnología. Este curso presencial de 4 horas se centra en aprender conceptos y herramientas fundamentales a través de ejercicios prácticos. Tanto si eres un desarrollador curioso sobre alternativas Non-EVM, un emprendedor, o alguien sin experiencia previa en blockchain, este curso cubrirá temas desde arquitectura básica y creación de wallets hasta contratos inteligentes en entornos Non-EVM. Idioma: Español e Inglés.
</PageSection>
<PageSection align="right" gem="3">
## Eventos Pasados
### Custodia Institucional de Criptoactivos y Tokenización del Oro
<div class="space-y-3">
<div>
<strong>📅 Fecha y hora:</strong> Miércoles, 11 de febrero de 2026 a las 06:30 PM (18:30) CET
</div>
<div>
<strong>📍 Ubicación:</strong> MIL (Madrid Innovation Lab)<br/>
Calle Bravo Murillo 37-39<br/>
Madrid, España<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=en&entry=ttu" target="_blank" rel="noopener noreferrer">Ver en Google Maps</a>
</div>
<div>
<strong>🎤 Ponentes destacados:</strong>
<div class="ml-6 mt-1 space-y-1">
<div>• <strong>José Ángel Fernández</strong> CEO, Prosegur Crypto</div>
</div>
</div>
<div>
<strong>📺 Sesión grabada:</strong> Ver online en <a href="https://www.youtube.com/watch?v=GJPq3y5x5FA" target="_blank" rel="noopener noreferrer">Madrid Innovation Lab YouTube</a>
</div>
</div>
Una sesión presencial de <strong>Xahau Connect</strong> con <strong>José Ángel Fernández</strong>, CEO de Prosegur Crypto. Esta charla exploró el camino de Prosegur hacia el ecosistema blockchain a través de Prosegur Crypto, cubriendo la custodia institucional de criptoactivos, cómo funcionan estos sistemas desde una perspectiva tecnológica y de seguridad, y los servicios ofrecidos a clientes institucionales. La sesión también abordó la oferta de tokenización del oro de Prosegur Crypto, discutiendo tanto la implementación técnica como el modelo de negocio detrás de la tokenización del oro físico y sus casos de uso reales.
### Blockchain y Regulación: Europa bajo Escrutinio Legal
<div class="space-y-3">
<div>
<strong>📅 Fecha y hora:</strong> Jueves, 4 de diciembre de 2025 a las 6:30 PM (18:30) CET
</div>
<div>
<strong>📍 Ubicación:</strong> MIL (Madrid Innovation Lab)<br/>
Calle Bravo Murillo 37-39<br/>
Madrid, España<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=es-ES&entry=ttu&g_ep=EgoyMDI1MTEwNS4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noopener noreferrer">Ver en Google Maps</a>
</div>
<div>
<strong>🎤 Ponentes destacados:</strong>
<div class="ml-6 mt-1 space-y-1">
<div>• <strong>Horacio Gómez Rey</strong> Head of Legal Spain, N26</div>
<div>• <strong>Pedro Méndez de Vigo</strong> AVP Legal Europe, Crypto.com</div>
</div>
</div>
<div>
<strong>📺 Sesión grabada:</strong> Ver online en <a href="https://www.youtube.com/watch?v=Koq8LqR7qyc" target="_blank" rel="noopener noreferrer">Madrid Innovation Lab YouTube</a>
</div>
</div>
Debate en profundidad sobre la regulación blockchain en Europa, con destacados expertos legales de las principales empresas fintech y crypto. Esta sesión exploró el panorama regulatorio en evolución, los desafíos de cumplimiento y el futuro de la blockchain bajo el escrutinio legal europeo.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="left" gem="9">
## Sobre Xahau Connect
**Xahau Connect** es una serie de eventos profesionales de blockchain creados por [**INFTF**](https://www.inftf.org) (Inclusive Financial Technology Foundation) para fomentar debates serios y agnósticos sobre la tecnología blockchain y sus aplicaciones en el mundo real.
Los eventos reúnen a expertos, constructores profesionales, investigadores e innovadores de diversos ecosistemas blockchain para compartir conocimiento, explorar desafíos y colaborar en el avance de la tecnología más allá del hype y la especulación.
## Nuestra Misión
En Xahau Connect, nos centramos en:
<div class="space-y-2">
<div>• <strong>Debate Técnico Serio:</strong> Conversaciones en profundidad sobre arquitectura blockchain, negocio, oportunidades, regulación, innovación y más temas.</div>
<div>• <strong>Agnosticismo Blockchain:</strong> Dando la bienvenida a perspectivas de todos los ecosistemas y tecnologías blockchain.</div>
<div>• <strong>Networking Profesional:</strong> Conectando constructores, expertos, desarrolladores, investigadores y líderes de la industria.</div>
<div>• <strong>Aplicaciones del Mundo Real:</strong> Enfocándonos en implementaciones prácticas y casos de uso que impulsan la adopción.</div>
<div>• <strong>Intercambio de Conocimiento:</strong> Aprendiendo de expertos en diferentes dominios blockchain e industrias.</div>
</div>
## Quién Debe Asistir
Los eventos de Xahau Connect están diseñados para:
<div class="space-y-2">
<div>• <strong>Desarrolladores y Constructores Blockchain</strong> que trabajan en protocolos, contratos inteligentes, dApps e infraestructura.</div>
<div>• <strong>Arquitectos Técnicos</strong> que diseñan soluciones e integraciones blockchain.</div>
<div>• <strong>Investigadores y Académicos</strong> que exploran la teoría blockchain, criptografía y sistemas distribuidos.</div>
<div>• <strong>Líderes Empresariales</strong> que evalúan blockchain para aplicaciones de negocio.</div>
<div>• <strong>Contribuidores del Ecosistema</strong> que construyen herramientas, documentación y recursos comunitarios.</div>
<div>• <strong>Profesionales de la Industria</strong> que aplican blockchain en finanzas, cadena de suministro, identidad y otros sectores. Si te tomas en serio la tecnología y su potencial, Xahau Connect es para ti.</div>
</div>
</PageSection>
<PageSection align="right" gem="2">
## Ponentes, Patrocinadores y Contacto
### Cómo Participar
<div class="space-y-2">
<div>• <strong>Propuestas de Ponencias y Consultas de Patrocinio:</strong> <a href="mailto:connect@xahau.org">connect@xahau.org</a></div>
</div>
Agradecemos a nuestros socios que apoyan la misión de Xahau Connect de fomentar el discurso profesional sobre blockchain. Los detalles de socios y ponentes se anunciarán a medida que confirmemos la participación para próximos eventos.
### Suscríbete para Recibir Actualizaciones
Para recibir notificaciones sobre próximos eventos de Xahau Connect:
<div class="space-y-2">
<div>• Sigue a <a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a> e <a href="https://x.com/incfintech" target="_blank" rel="noopener noreferrer">INFTF</a> en X</div>
<div>• Envíanos un email a <a href="mailto:connect@xahau.org">connect@xahau.org</a></div>
</div>
</PageSection>
</PageLayout>

View File

@@ -0,0 +1,17 @@
---
import '../../styles/main.css'
import XahauContestEs from '../../components/XahauContestEs.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahau Dev Contest',
description:
'Ecosystem Rising — Construye servicios de usuario powered by Xahau',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="flex-none container mx-auto max-w-7xl p-6 pb-12">
<XahauContestEs />
</div>
</BaseLayout>

View File

@@ -1,210 +0,0 @@
---
title: Xahau Dev Contest
description: Ecosystem Rising - Construye servicios de usuario powered by Xahau
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Introducción
¡Bienvenido al **Xahau Dev Contest: Ecosystem Rising**!
Este concurso invita a innovadores a construir **servicios de usuario powered by Xahau** y competir por premios mientras fortalecen el ecosistema Xahau.
## Premios
* **3 premios principales en XAH** para los proyectos ganadores.
* **🥇 1er Premio** Valor de 4000 USD en XAH.
* **🥈 2º Premio** Valor de 2000 USD en XAH.
* **🥉 3er Premio** Valor de 1000 USD en XAH.
## Cronograma
* **Fecha límite de envío:** 1 de febrero de 2026.
* **Panel de jueces:** 5 miembros de la comunidad Xahau y XRPL (ver más abajo).
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="9">
## Panel de Jueces
El concurso será evaluado por **cinco miembros de la comunidad**:
* • [**tequ**](https://x.com/_tequ_) Desarrollador Blockchain de Xahau
* • [**Robert Kiuru**](https://x.com/robertkiuru) COO, *XRPL Labs*
* • **[gadget78](https://x.com/gadget78)** Desarrollador de Evernode
* • [**Andrei Rosseti**](https://x.com/andreirosseti) Arquitecto de Xahau DocProof | CTO, *EleveCRM*
* • [**Vet**](https://x.com/Vet_X0) Contribuidor de la comunidad XRPL
## Tema: Servicios en Xahau
Los participantes deben construir **servicios basados en web que interactúen con Xahau (Mainnet)** y estén diseñados para el **usuario final**, ya sean usuarios casuales, usuarios avanzados, sector público o sector privado.
Ejemplos **(sin limitarse a)**:
<div class="space-y-2">
<div>
<strong>• Herramientas para usuarios cotidianos:</strong>
<div class="ml-6 space-y-1">
<div>◦ Paneles de finanzas personales</div>
<div>◦ Gestores de wallets</div>
<div>◦ Apps comunitarias</div>
</div>
</div>
<div>
<strong>• Servicios empresariales:</strong>
<div class="ml-6 space-y-1">
<div>◦ Portales de pago</div>
<div>◦ Plataformas de fidelización</div>
<div>◦ Herramientas de atención al cliente</div>
</div>
</div>
<div>
<strong>• Plataformas públicas:</strong>
<div class="ml-6 space-y-1">
<div>◦ Marketplaces de NFT</div>
<div>◦ Sistemas de votación</div>
<div>◦ Hubs de donaciones</div>
<div>◦ Apps culturales</div>
<div>◦ Utilidades para el bien social</div>
</div>
</div>
</div>
</PageSection>
<PageSection align="left" gem="4">
## Reglas de Participación
<div class="space-y-2">
<div>• Puedes enviar <strong>tantos proyectos como quieras</strong>.</div>
<div>• Cada proyecto puede ser enviado por un individuo o un grupo de participantes.</div>
<div>• Distintos proyectos del mismo participante o participantes pueden optar a diferentes premios.</div>
<div>• Los proyectos <strong>deben ejecutarse en la Mainnet de Xahau</strong>.</div>
<div>
<div>• Cada proyecto <strong>debe ser accesible online</strong>, para que tanto los jueces como el público puedan usarlo o verlo.</div>
<div class="ml-6 mt-1">◦ Esto evita que los jueces tengan que instalar o configurar proyectos localmente, y reduce el riesgo de errores inesperados o que se requiera asistencia del participante.</div>
</div>
<div>
<div>• Cada envío debe incluir <strong>documentación básica</strong> para ayudar a otros a entender el proyecto.</div>
<div class="ml-6 mt-1">◦ Opcionalmente, también puedes incluir <strong>material multimedia</strong> (vídeos, diapositivas, demos, etc.) para explicar mejor tu trabajo.</div>
</div>
<div>• Se pueden usar <strong>herramientas de IA</strong> tanto para el desarrollo como para la documentación.</div>
<div>• Si tu proyecto usa <strong>Hooks</strong>, el código del Hook debe ser de código abierto, para que pueda ser auditado por seguridad y servir como recurso de aprendizaje para la comunidad. Debes adjuntar su código C en tu envío junto con el hash del hook. Consulta la sección "Formato de Envío".</div>
<div>• Los proyectos que claramente ofrezcan servicios financieros regulados o que tengan como objetivo actividades ilegales no son elegibles.</div>
<div>• Para ser evaluado por los jueces, debes incluir tu envío con un PR como se indica en la sección "Formato de Envío".</div>
<div>• Una vez creado el PR de tu envío, publica un tweet en X sobre tu proyecto, etiquetando a <a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a>, para anunciar que has participado en el Xahau Dev Contest.</div>
</div>
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="13">
## Criterios de Evaluación
Al revisar los envíos, los jueces valorarán especialmente:
<div class="space-y-2">
<div>• <strong>Originalidad y creatividad</strong> de la idea.</div>
<div>• <strong>Ausencia de competidores existentes</strong> que ofrezcan el mismo servicio en Xahau Mainnet antes del concurso.</div>
<div>• <strong>Impacto y utilidad</strong> para los usuarios finales (individuos, empresas o sector público).</div>
<div>• <strong>Calidad de ejecución</strong> (estabilidad, documentación, experiencia de usuario).</div>
<div>• <strong>Uso de Hooks (Smart Contracts en Xahau)</strong>.</div>
</div>
</PageSection>
<PageSection align="left" gem="2">
## Formato de Envío
Cada proyecto debe incluir una carpeta y al menos un **archivo de envío** dentro del directorio de envíos de **[este repositorio](https://github.com/xahau/xahau-2nd-dev-contest)**.
El archivo y el directorio deben nombrarse con tu nombre de usuario de GitHub seguido del nombre del proyecto, separados por un guión bajo, y usando la extensión .md para el archivo.
Ejemplo: submissions/NombreGitHub_NombreProyecto/NombreGitHub_NombreProyecto.md
El archivo debe contener los siguientes campos:
<div class="space-y-2">
<div>• <strong>Título del Proyecto</strong></div>
<div>• <strong>Descripción Breve</strong></div>
<div>• <strong>Participantes</strong> (nombres o apodos)</div>
<div>• <strong>Redes Sociales de los Participantes</strong></div>
<div>• <strong>Email de Contacto</strong></div>
<div>• <strong>Enlace al Proyecto Online</strong></div>
<div>• <strong>Dirección Xahau para recibir el premio en caso de ganar</strong></div>
<div>• <strong>Enlace a la Documentación</strong></div>
<div>• <strong>Código de Hooks en C y hash correspondiente</strong> (en caso de que tu proyecto use uno o más, para confirmar que es seguro, debes añadir archivos .c en tu carpeta de envío)</div>
<div>• <strong>Cuenta Hooks del proyecto</strong> (para confirmar que estás usando los hooks previamente proporcionados para este proyecto)</div>
<div>• <strong>Enlace al Repositorio del Proyecto</strong> (opcional)</div>
<div>• <strong>Otros Enlaces</strong> (opcional, p.ej., vídeo demo, presentación, diapositivas)</div>
</div>
Un directorio y archivo de plantilla están disponibles en la carpeta del repositorio, que los participantes pueden usar para rellenar los detalles de su proyecto.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="11">
## Soporte y Comunidad
Si tienes preguntas o necesitas orientación:
* Únete al **[Discord de Xahau Builders](https://discord.gg/ds7nb93mYj)**.
* O envíanos un email a **[contests@xahau.org](mailto:contests@xahau.org)**.
Intentaremos responder lo antes posible. Tus preguntas también pueden añadirse a las FAQ de este README para que otros puedan beneficiarse de las respuestas.
## Propiedad
* Todos los proyectos enviados siguen siendo **propiedad de sus creadores originales**.
## Enlaces Útiles
Aquí tienes algunos recursos útiles para los desarrolladores de Xahau:
* [Documentación de Xahau](https://docs.xahau.network)
* [Documentación de Xahau Hooks](https://xahau.network/docs/hooks/)
* [Repositorios GitHub de Xahau](https://github.com/Xahau)
* [Sitio web de Xaman](https://xaman.app)
* [Faucet de Xahau Testnet](https://xahau-test.net/)
* [Discord de Xahau](https://discord.gg/ds7nb93mYj)
## Resumen: Qué Necesitas Hacer
<div class="space-y-2">
<div>• Inspírate. Sé creativo y motivado para construir algo que fortalezca el ecosistema Xahau.</div>
<div>• Construye tu proyecto. Desarrolla tu servicio web usando Xahau Mainnet.</div>
<div>• Envía tu trabajo, Crea un PR (Pull Request) siguiendo las instrucciones de la sección "Formato de Envío".</div>
<div>• Anuncia tu participación. Publica un tweet en X sobre tu proyecto, etiquetando a <a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a>, y comparte que te has unido al <strong>Xahau Dev Contest</strong>.</div>
</div>
</PageSection>
<PageSection align="left" gem="6">
## FAQ
**P: ¿Puedo enviar más de un proyecto?**
- R: ¡Sí! Puedes enviar tantos como quieras, individualmente o como parte de un grupo.
**P: ¿Los proyectos tienen que ser de código abierto?**
- R: No, pero deben incluir al menos documentación básica para que los jueces puedan entender cómo funcionan. Si tu proyecto incluye Hooks, debes adjuntar su código C en tu envío junto con el hash del hook. Consulta la sección "Formato de Envío".
**P: ¿Puedo usar IA para ayudarme a construir o documentar mi proyecto?**
- R: Sí, el uso de IA está completamente permitido.
**P: ¿Qué tipo de servicios esperáis?**
- R: Cualquier servicio que proporcione **valor a los usuarios finales**, ya sean individuos, empresas o el sector público. Desde marketplaces de NFT y paneles financieros hasta sistemas de votación, apps de pago, hubs de donaciones, o cualquier servicio público/privado innovador.
**P: ¿Hay alguna ventaja en usar Hooks?**
- R: Sí, los proyectos que implementen creativamente **Hooks (contratos inteligentes en Xahau)** recibirán un reconocimiento especial.
**P: ¿Qué pasa con mi proyecto después del concurso?**
- R: Conservas la propiedad total.
**P: ¿Dónde puedo hacer preguntas?**
- R: En el **[Discord de la Comunidad Xahau](https://discord.gg/ds7nb93mYj)** o enviando un email a **[contests@xahau.org](mailto:contests@xahau.org)**.
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="7">
## Aviso Legal Final
Al participar, aceptas lo siguiente:
<div class="space-y-2">
<div>• Los participantes deben cumplir los criterios de elegibilidad y respetar todas las reglas. No está permitido enviar proyectos que ya hayan sido publicados antes del concurso.</div>
<div>• Los proyectos siguen siendo propiedad de sus creadores, pero los organizadores se reservan el derecho de mostrar, compartir o destacar los envíos con el crédito apropiado.</div>
<div>• Los organizadores se reservan el derecho de descalificar envíos que violen las reglas o comprometan la integridad del concurso. Todas las decisiones del jurado son definitivas y no están sujetas a apelación.</div>
<div>• Los organizadores no son responsables de daños, gastos o pérdidas durante la participación. Los organizadores también se reservan el derecho de modificar los requisitos del concurso en cualquier momento si fuera necesario.</div>
<div>• Reconoces que pueden aplicarse sanciones y ciertas restricciones jurisdiccionales. La elegibilidad para recibir recompensas puede requerir el cumplimiento de las leyes aplicables, incluida la verificación KYC (Know Your Customer).</div>
<div>• Todos los impuestos, tasas u otras obligaciones financieras relacionadas con las recompensas son responsabilidad exclusiva de los participantes.</div>
<div>• Si tienes alguna duda o incertidumbre sobre elegibilidad, requisitos u obligaciones fiscales, contáctanos a través de los canales de comunicación proporcionados antes de enviar tu participación.</div>
<div>Ahora es tu turno: **¡Construye, envía y muestra tu innovación con la blockchain Xahau!**</div>
</div>
</PageSection>
</PageLayout>

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauEcosystem from '../../components/XahauEcosystem.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Ecosistema',
description: 'Xahau alrededor del mundo',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauEcosystem />
</div>
</BaseLayout>

View File

@@ -1,68 +0,0 @@
---
layout: ../../layouts/PageLayout.astro
title: Ecosistema
description: Xahau alrededor del mundo
---
import EcosystemButton from '../../components/EcosystemButton.astro';
import gatehub from'../../assets/ecosystem-logos/gatehub.png'
import bitrue from'../../assets/ecosystem-logos/bitrue.png'
import bithomp from'../../assets/ecosystem-logos/bithomp.png'
import xahscan from'../../assets/ecosystem-logos/xahscan.png'
import xahau_services from '../../assets/ecosystem-logos/xahau-services.png'
import xrplwin from'../../assets/ecosystem-logos/xrplwin.png'
import xaman from'../../assets/ecosystem-logos/xaman.png'
import dcent from'../../assets/ecosystem-logos/dcent.png'
import bitmart from'../../assets/ecosystem-logos/bitmart.png'
import coinex from'../../assets/ecosystem-logos/coinex.png'
## Carteras
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xaman.app/" title="Xaman" imageSrc={xaman} class="!bg-black" />
<EcosystemButton class="h-30" href="https://www.dcentwallet.com/" title="D'CENT" imageSrc={dcent} class="!bg-black" />
<EcosystemButton class="h-30" href="https://gemwallet.app/" title="GemWallet" />
<EcosystemButton class="h-30" href="https://www.ledger.com/" title="Ledger" />
</div>
## Exchanges
<div class="grid gap-3 md:grid-cols-3 grid-cols-1 pt-2 pb-20">
<EcosystemButton class="h-40" title="Gatehub" imageSrc={gatehub} href="https://gatehub.net/" />
<EcosystemButton class="h-40" href="https://www.bitrue.com/" imageSrc={bitrue} title="Bitrue" />
<EcosystemButton class="h-40" title="BitMart" imageSrc={bitmart} href="https://www.bitmart.com/" />
<EcosystemButton class="h-40" title="CoinEx" imageSrc={coinex} href="https://www.coinex.com/" />
</div>
## Exploradores y utilidades
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xahscan.com/" title="XAHSCAN" imageSrc={xahscan} class="!bg-[#1E3B70]" />
<EcosystemButton class="h-30" href="https://xahauexplorer.com/" title="Xahau Explorer" imageSrc={bithomp} />
<EcosystemButton class="h-30" href="https://xahau.xrplwin.com/" title="XRPLWin" imageSrc={xrplwin} />
<EcosystemButton class="h-30" href="https://xahau.services/" title="Xahau Services" imageSrc={xahau_services} />
</div>
## Proyectos
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xahaudocproof.com/" title="Xahau DocProof" />
<EcosystemButton class="h-30" href="https://www.evernode.org/" title="Evernode" />
<EcosystemButton class="h-30" href="https://xmerch.app/" title="xMerch" />
<EcosystemButton class="h-30" href="https://evergram.app/" title="Evergram" />
<EcosystemButton class="h-30" href="https://xamini.io/" title="XAMINI" />
<EcosystemButton class="h-30" href="https://xmagnetic.org/?network=xahau" title="Magnetic" />
<EcosystemButton class="h-30" href="https://xahinvest.com/" title="XAH Invest" />
<EcosystemButton class="h-30" href="https://xpert.page/" title="Xpert Page" />
<EcosystemButton class="h-30" href="https://vpra.app/" title="VPRA" />
<EcosystemButton class="h-30" href="https://xaman.app/detect/xapp:dino.xahur" title="DinoXAHur" />
<EcosystemButton class="h-30" href="https://xumm.app/detect/xapp:xumm.dex" title="Xaman DEX Trade" />
<EcosystemButton class="h-30" href="https://xumm.app/detect/xapp:xaman.voucher" title="Voucher" />
<EcosystemButton class="h-30" href="https://www.dallipay.com/" title="Dallipay" />
<EcosystemButton class="h-30" href="https://dhali.io/" title="Dhali" />
<EcosystemButton class="h-30" href="https://xahauradio.com/" title="Xahau Radio" />
<EcosystemButton class="h-30" href="https://github.com/Cbot-XRPL/Xahau-Journal?tab=readme-ov-file" title="Xahau Journal" />
<EcosystemButton class="h-30" href="https://github.com/Handy4ndy/XahauHooks101" title="Hooks 101" />
<EcosystemButton class="h-30" href="https://github.com/Handy4ndy/HandyHooks" title="HandyHooks" />
</div>

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauFeaturesEs from '../../components/XahauFeaturesEs.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Características',
description: 'Tecnología probada con un enfoque renovado',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauFeaturesEs />
</div>
</BaseLayout>

View File

@@ -1,89 +0,0 @@
---
title: Características
description: Tecnología probada con un enfoque innovador
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Hooks: Lógica de Contrato Inteligente a Nivel de Cuenta
Xahau introduce los **Hooks**, una forma única de lógica de contrato inteligente on-ledger que se ejecuta directamente a **nivel de cuenta**. A diferencia de los contratos inteligentes en la mayoría de blockchains, que requieren interactuar con direcciones de contratos externas, los Hooks son programas ligeros incrustados dentro de las propias cuentas de usuario. Estos Hooks pueden inspeccionar, modificar o rechazar automáticamente cualquier transacción que involucre esa cuenta, sin necesidad de llamadas a funciones explícitas.
Dado que los Hooks se ejecutan inline y dentro del consenso, ofrecen programabilidad en tiempo real con una sobrecarga mínima. Esto permite casos de uso potentes como rechazar transferencias de tokens no autorizadas, desencadenar acciones en depósitos, o implementar lógica de cumplimiento normativo, todo sin ralentizar la red. Los Hooks representan un nuevo paradigma de seguridad y programabilidad, haciendo de las cuentas participantes activos en la lógica de transacciones.
## Control de Tokens y Activos por Diseño
Xahau otorga a los emisores y usuarios un **control granular sobre tokens y líneas de confianza**. Características como `TrustSet`, `Clawback`, `Freeze` y `Deposit Authorization` permiten una personalización completa de cómo se pueden usar o recibir los tokens. Los activos pueden ser incluidos en listas blancas, bloqueados o quemados, todo ello aplicado a nivel de protocolo.
Esto hace a Xahau especialmente adecuado para instrumentos financieros regulados, stablecoins, programas de fidelización o cadenas de suministro empresariales: cualquier escenario donde el cumplimiento normativo, la seguridad y la precisión sean críticos.
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="9" align="right">
## Juego de Gobernanza: Coordinación Descentralizada con Propósito
Xahau cuenta con un novedoso sistema de gobernanza respaldado por el **Juego de Gobernanza**, un mecanismo transparente y on-ledger para proponer, revisar y votar enmiendas. Los operadores de validadores (Gobernadores) participan directamente en la configuración del protocolo, compitiendo también en un sistema de recompensas estructurado basado en la responsabilidad y el compromiso.
Este sistema garantiza que las actualizaciones del protocolo y las decisiones de política sean abiertas y participativas, no dictadas por una entidad centralizada. Combina los beneficios de la coordinación empresarial estructurada con la transparencia y resiliencia del consenso descentralizado. Al gamificar la gobernanza de forma segura y alineada con los incentivos, Xahau establece un nuevo estándar para la coordinación on-chain.
## Recompensas de Saldo: Rendimiento Pasivo Sin Staking
Xahau ofrece un sistema de **Recompensas de Saldo** que permite a las cuentas acumular valor pasivamente simplemente manteniendo activos. Estas recompensas se calculan en función del saldo de la cuenta y se distribuyen mediante un mecanismo aplicado por consenso, sin necesidad de staking, delegación ni contratos de terceros.
El mecanismo está impulsado por lógica a nivel de protocolo y Hooks on-chain, garantizando que las recompensas sean automáticas, justas y sostenibles. A diferencia del yield farming o los sistemas de staking en otras blockchains, el modelo de recompensas de Xahau no requiere que los usuarios bloqueen activos ni persigan complejas estrategias DeFi: funciona de forma nativa, con transparencia y sencillez.
</PageSection>
<PageSection align="center">
## Escrow: Transferencias Condicionales para Cualquier Activo
Xahau soporta **escrow on-ledger** tanto de tokens nativos como **emitidos**, permitiendo transferencias condicionales seguras para una amplia gama de casos de uso empresariales y financieros. Los fondos o tokens se pueden bloquear con lógica de liberación basada en tiempo o condiciones, aplicada por la propia red.
Ya sea que estés construyendo un sistema de pago por hitos, liquidación de marketplace, o distribución de tokens de confianza, los escrows de Xahau ofrecen una herramienta simple pero potente, sin necesidad de contratos inteligentes externos. El soporte nativo tanto para activos fungibles como no fungibles en escrow hace de esta una característica excepcionalmente versátil.
## Remit: Transferencias Nativas entre Cuentas
La función **Remit** permite transacciones simplificadas y multi-operación entre cuentas, ideal para flujos de pago complejos o de alto volumen. En lugar de enviar múltiples instrucciones separadas, una sola transacción Remit puede distribuir valor a múltiples destinatarios o desencadenar múltiples cambios de saldo de forma atómica.
Esto mejora la eficiencia y la fiabilidad, especialmente para procesadores de pago, marketplaces o aplicaciones que necesitan realizar operaciones agrupadas. Al estar integrado en el protocolo, Remit garantiza un rendimiento predecible, baja latencia y una sólida trazabilidad.
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="4" align="right">
## Bajas Comisiones con Quema de Fees
Xahau mantiene **comisiones de transacción consistentemente bajas**, con un modelo integrado de **quema de fees** que reduce el spam y premia la salud a largo plazo de la red. Cada transacción paga una comisión mínima en XAH, y una parte de esa comisión se destruye permanentemente, creando un efecto deflacionario con el tiempo.
Este enfoque desalienta el abuso de la red a la vez que preserva la accesibilidad, especialmente para aplicaciones de alto rendimiento o sensibles al coste. A diferencia de los modelos inflacionarios o las comisiones de tipo subasta, Xahau proporciona previsibilidad y alineación económica para todos los usuarios.
## Rápido, Verde y Escalable
Construida sobre una versión refinada del protocolo de consenso del XRPL, Xahau ofrece **finalidad rápida**, bajo consumo de energía y escalabilidad fiable. Las transacciones se confirman en segundos, sin minería y con requisitos mínimos de hardware. El resultado es una red que puede servir casos de uso financieros y empresariales del mundo real sin comprometer el medio ambiente ni la experiencia del usuario.
La arquitectura de Xahau es ideal para sistemas de pago globales, plataformas de activos tokenizados o aplicaciones de alto volumen donde el rendimiento y la sostenibilidad son innegociables.
</PageSection>
<PageSection align="left" gem="13">
## URITokens: NFTs Nativos en Xahau
Los **URITokens** representan el enfoque de Xahau hacia los tokens no fungibles (NFTs), implementados como una parte nativa del ledger en lugar de mediante contratos inteligentes separados. Un URIToken es un objeto on-ledger de primera clase, identificado de forma única por la cuenta emisora y un Identificador de Recurso Uniforme (URI) que típicamente apunta a los metadatos o contenido del token. Solo puede existir un URIToken con un URI dado por cuenta, garantizando la verdadera unicidad de cada activo digital.
Este estándar NFT integrado significa que los creadores pueden acuñar, intercambiar o quemar NFTs con transacciones simples (por ejemplo, URITokenMint, URITokenBuy, URITokenBurn) sin desplegar código personalizado. El emisor de un URIToken puede incluso permitir que sea destruido (quemado) al establecer un flag, dando flexibilidad en cómo se gestionan los NFTs. Al integrar los NFTs a nivel de protocolo, Xahau hace que la emisión y gestión de coleccionables digitales o credenciales sea más eficiente y segura.
## Ofertas: Exchange Descentralizado (DEX) Integrado
Xahau incluye un sistema de **Ofertas** nativo, que impulsa un exchange descentralizado integrado en el ledger. Los usuarios pueden crear entradas de **Oferta** para comprar o vender activos (como tokens o monedas emitidas) directamente en la red, y estas ofertas son emparejadas automáticamente por el libro de órdenes del protocolo.
Esta función, heredada del DEX del XRPL, permite un entorno de trading dinámico y receptivo donde el intercambio de valor ocurre de igual a igual sin exchanges intermediarios. La capacidad de colocar y cancelar órdenes de trading se proporciona mediante transacciones dedicadas (OfferCreate y OfferCancel). A diferencia de muchas blockchains que requieren contratos inteligentes o plataformas externas para el trading, el DEX de Xahau es una característica de primera clase del ledger. Este exchange on-ledger ofrece liquidación rápida y bajas comisiones, haciendo que el trading de activos sea fluido para usuarios y aplicaciones.
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="2" align="right">
## Cheques: Sistema de Pago Diferido
Xahau soporta **Cheques**, un sistema de pago diferido similar a escribir cheques digitales en la blockchain. Una parte puede emitir un Cheque (promesa de pago) que el destinatario previsto puede cobrar en un momento posterior o cancelar si es necesario. Esta función permite transacciones seguras y flexibles: por ejemplo, una empresa puede emitir un pago que el receptor reclamará cuando se cumplan ciertas condiciones.
El ledger tiene transacciones dedicadas para crear un cheque, cobrarlo o cancelarlo. Pocas plataformas tienen este tipo de instrumento de pago diferido nativo; el sistema de cheques de Xahau proporciona una capa adicional de control de pagos, todo ello aplicado por las reglas de la red sin necesidad de contratos inteligentes personalizados.
## Pagos: Transferencias Multi-Activo y Canales
La funcionalidad de **Pagos** en Xahau está diseñada para facilitar la transferencia rápida y flexible de valor a través de la red. De forma única, Xahau (como el XRPL) soporta *pagos multi-activo* a través de un sistema de líneas de confianza y monedas emitidas. Usando una transacción `TrustSet`, dos partes pueden establecer una línea de confianza para transaccionar en un activo personalizado o IOU, habilitando el soporte integrado para múltiples monedas o tokens sin necesidad de contratos inteligentes.
Esto significa que las empresas pueden emitir stablecoins o tokens en Xahau y los usuarios pueden enviarlos o intercambiarlos de forma nativa. La suite de Pagos también incluye características avanzadas como **Preautorización de Depósito**, que permite a una cuenta incluir en una lista blanca quién puede enviarle fondos, añadiendo seguridad contra transacciones no deseadas.
Además, Xahau soporta **canales de pago** para escalabilidad. Los canales de pago permiten a dos partes realizar transacciones rápidas y de alto volumen fuera del ledger y luego liquidar el resultado neto en la blockchain. Con transacciones como PaymentChannelCreate, Fund y Claim, Xahau permite micropagos o pagos en streaming que están asegurados por el ledger pero no lo congestionan.
</PageSection>
</PageLayout>

View File

@@ -1,5 +1,6 @@
---
import FraudReportPage from '../../components/FraudReportPage.astro'
import { fraudReportTranslations } from '../../i18n/fraudReportTranslations'
import FraudReportPage from '../../components/FraudReportPage.astro'
import { fraudReportTranslations } from '../../i18n/fraudReportTranslations'
---
<FraudReportPage t={fraudReportTranslations.es}/>
<FraudReportPage t={fraudReportTranslations.es} />

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauRoadmap from '../../components/XahauRoadmap.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Hoja de ruta',
description: 'Hoja de ruta de Xahau para los próximos trimestres',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauRoadmap lang="es" theme="light" />
</div>
</BaseLayout>

View File

@@ -1,69 +0,0 @@
---
title: Hoja de ruta
description: Este año, la Red Xahau tiene previsto recibir potentes actualizaciones en escalabilidad, accesibilidad, seguridad e innovación
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
import roadmap from '../../assets/roadmap_2025.jpeg'
import { Image } from 'astro:assets';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="center">
<Image src={roadmap} alt="Hoja de ruta de Xahau 2025" />
# H1 2025
## 1. Proyecto "L10K"
Mejorar la eficiencia de la tecnología central para aumentar la capacidad de transacciones a 10.000 transacciones por ledger, mejorando la eficiencia y la seguridad.
¡Un hito en el rendimiento para el ecosistema Xahau!
## 2. Mejorar la Monitorización UDP y RPC
Las funciones de monitorización sin conexión y RPC para los operadores de nodos optimizan el rendimiento y la escalabilidad en toda la red.
Permite una monitorización pasiva y eficiente de entornos de uno o varios nodos, reduciendo significativamente la sobrecarga.
## 3. Nuevas Características Finalizadas (Remarks, Touch, Blackhole, DataMonitor)
Completar el desarrollo e integración de estas características de vanguardia, mejorando la interacción con Xahau tanto para desarrolladores como para usuarios finales a través de productos construidos por desarrolladores.
## 4. Soporte Completo de Ledger Hardware Wallet para Xahau
Garantizar transacciones seguras y simplificadas de Xahau con compatibilidad con Ledger Hardware Wallet, abriendo la accesibilidad a Xahau a nivel mundial.
## 5. Acceso a Exchanges y Plataformas On/Off-Ramp
Se prevé que Xahau sea más accesible a través de exchanges y plataformas on/off-ramp, apoyando una mayor participación e integración dentro del ecosistema.
## 6. Soporte para LedgerLive
Integración de Xahau con Ledger Live, permitiendo un acceso y gestión sencillos mediante el popular producto Ledger Live.
## 7. Marco Universal de Explicación de Hooks Integrable
Permitir que cualquier wallet integre fácilmente una explicación clara de la influencia de los Hooks en las transacciones (web, móvil, escritorio) con imágenes claras e integradas para transacciones HookSet, garantizando una adopción más sencilla.
# H2 2025
## 8. Implementación de JavaScript Hooks
Pendiente de aprobación de auditoría, llevar los Hooks basados en JavaScript y sus herramientas a decenas de millones de desarrolladores de todo el mundo para desarrollar con Xahau lógica avanzada on-chain y capacidades de transacciones programables.
## 9. Auditorías Completas y Controles de Seguridad
Completar las auditorías de todas las principales características de 2025 para demostrar la seguridad y estabilidad de la red, proporcionando una garantía verificable al mundo a medida que nos adentramos en 2026.
## 10. Mejora de la Experiencia de Usuario
Guiados por los comentarios recibidos, el ecosistema Xahau tiene previsto garantizar una integración y usabilidad fluidas en todas las wallets y aplicaciones.
## 11. Implementación de Batch
Habilitar verificaciones eficientes de múltiples transacciones, garantizando que todas o ninguna de las transacciones ocurran, a la vez que se permite a los proveedores de servicios incorporar operaciones específicas del flujo de trabajo de forma fluida en el flujo de transacciones.
**2025 es el año en que Xahau se vuelve más fácil de acceder, usar, aprovechar y construir, mientras escala de forma más inteligente, rápida y sólida.**
</PageSection>
</PageLayout>

16
src/pages/features.astro Normal file
View File

@@ -0,0 +1,16 @@
---
import '../styles/main.css'
import XahauFeatures from '../components/XahauFeatures.astro'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Features',
description: 'Proven technology with a fresh approach',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauFeatures lang="en" />
</div>
</BaseLayout>

View File

@@ -1,89 +0,0 @@
---
title: Features
description: Proven technology with a fresh approach
---
import PageLayout from '../layouts/PageLayout.astro';
import PageSection from '../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Hooks: Account-Level Smart Contract Logic
Xahau introduces **Hooks**—a unique form of on-ledger smart contract logic that runs directly at the **account level**. Unlike smart contracts on most blockchains that require interacting with external contract addresses, Hooks are lightweight programs embedded inside user accounts themselves. These Hooks can automatically inspect, modify, or reject any transaction involving that account, without the need for explicit function calls.
Because Hooks are executed inline and within consensus, they offer real-time programmability with minimal overhead. This allows for powerful use cases such as rejecting unauthorized token transfers, triggering actions on deposits, or implementing compliance logic—all without slowing down the network. Hooks represent a new security and programmability paradigm, making accounts active participants in transaction logic.
## Token and Asset Control by Design
Xahau gives issuers and users granular **control over tokens and trustlines**. Features like `TrustSet`, `Clawback`, `Freeze`, and `Deposit Authorization` allow full customization of how tokens can be used or received. Assets can be whitelisted, blocked, or burned, all enforced at the protocol level.
This makes Xahau uniquely suited for regulated financial instruments, stablecoins, loyalty programs, or enterprise supply chains—any scenario where compliance, safety, and precision are critical.
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="9" align="right">
## Governance Game: Decentralized Coordination with Purpose
Xahau features a novel governance system backed by the **Governance Game**, a transparent, on-ledger mechanism for proposing, reviewing, and voting on amendments. Validator operators (Governors) participate directly in shaping the protocol, while also competing in a structured reward system based on accountability and engagement.
This system ensures that protocol upgrades and policy decisions are open and participatory, not dictated by a centralized entity. It combines the benefits of structured enterprise coordination with the transparency and resilience of decentralized consensus. By gamifying governance in a secure and incentive-aligned way, Xahau sets a new standard for on-chain coordination.
## Balance Rewards: Passive Yield Without Staking
Xahau offers a **Balance Reward** system that lets accounts passively accumulate value simply by holding assets. These rewards are calculated based on account balance and distributed through a consensus-enforced mechanism, without requiring staking, delegation, or third-party contracts.
The mechanism is powered by protocol-level logic and on-chain Hooks, ensuring rewards are automatic, fair, and sustainable. Unlike yield farming or staking systems on other blockchains, Xahaus reward model doesnt require users to lock assets or chase complex DeFi strategies—it works natively, with transparency and simplicity.
</PageSection>
<PageSection align="center">
## Escrow: Conditional Transfers for Any Asset
Xahau supports **on-ledger escrow** of both native and **issued tokens**, enabling secure conditional transfers for a broad range of business and financial use cases. Funds or tokens can be locked with time-based or condition-based release logic, enforced by the network itself.
Whether youre building a milestone-based payment system, marketplace settlement, or trusted token distribution, Xahaus escrows offer a simple yet powerful tool—without the need for external smart contracts. Native support for both fungible and non-fungible assets in escrow makes this a uniquely versatile feature.
## Remit: Native Cross-Account Transfers
The **Remit** feature allows streamlined, multi-operation transactions between accounts—ideal for complex or high-volume payment flows. Instead of sending multiple separate instructions, a single Remit transaction can distribute value to multiple recipients or trigger multiple balance changes atomically.
This improves efficiency and reliability, especially for payment processors, marketplaces, or applications that need to perform bundled operations. Because its built into the protocol, Remit ensures predictable performance, low latency, and strong auditability.
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="4" align="right">
## Low Fees with Fee Burning
Xahau maintains consistently **low transaction fees**, with a built-in **fee-burning** model that reduces spam and rewards long-term network health. Every transaction pays a minimal fee in XAH, and a portion of that fee is permanently destroyed—creating a deflationary effect over time.
This approach discourages network abuse while preserving accessibility, particularly for high-throughput or cost-sensitive applications. Unlike inflationary models or auction-style fees, Xahau provides predictability and economic alignment for all users.
## Fast, Green, and Scalable
Built on a refined version of XRPLs consensus protocol, Xahau offers **fast finality**, low energy usage, and reliable scalability. Transactions confirm in seconds, with no mining and minimal hardware requirements. The result is a network that can serve real-world financial and enterprise use cases without compromising the environment or user experience.
Xahaus architecture is ideal for global payment systems, tokenized asset platforms, or high-volume applications where performance and sustainability are non-negotiable.
</PageSection>
<PageSection align="left" gem="13">
## URITokens: Native NFTs on Xahau
**URITokens** represent Xahaus approach to non-fungible tokens (NFTs), implemented as a native part of the ledger rather than via separate smart contracts. A URIToken is a first-class on-ledger object uniquely identified by the issuing account and a Uniform Resource Identifier (URI) that typically points to the tokens metadata or content. Only one URIToken with a given URI can exist per account, ensuring true uniqueness for each digital asset.
This built-in NFT standard means creators can mint, trade, or burn NFTs with simple transactions (e.g. URITokenMint, URITokenBuy, URITokenBurn) without deploying custom code. The issuer of a URIToken can even allow it to be destroyed (burned) by setting a flag, giving flexibility in how NFTs are managed. By integrating NFTs at the protocol level, Xahau makes issuing and managing digital collectibles or credentials more efficient and secure.
## Offers: Built-In Decentralized Exchange (DEX)
Xahau includes a native **Offers** system, powering a built-in decentralized exchange on the ledger. Users can create **Offer** entries to buy or sell assets (such as tokens or issued currencies) directly on the network, and these offers are automatically matched by the protocols order book.
This feature, inherited from XRPLs DEX, enables a dynamic and responsive trading environment where exchange of value happens peer-to-peer without intermediary exchanges. The ability to place and cancel trade orders is provided by dedicated transactions (OfferCreate and OfferCancel). Unlike many blockchains that require smart contracts or external platforms for trading, Xahaus DEX is a first-class feature of the ledger. This on-ledger exchange offers fast settlement and low fees, making asset trading seamless for users and applications.
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="2" align="right">
## Checks: Deferred Payment System
Xahau supports **Checks**, a deferred payment system akin to writing digital checks on the blockchain. One party can issue a Check (promise of payment) that the intended recipient may cash at a later time or cancel if needed. This feature allows secure, flexible transactions for example, a business can issue payment that the receiver will claim when certain conditions are met.
The ledger has dedicated transactions for creating a check, cashing it, or canceling it. Few other platforms have this kind of native deferred payment instrument; Xahaus check system provides an extra layer of payment control, all enforced by the networks rules without requiring custom smart contracts.
## Payments: Multi-Asset Transfers & Channels
The **Payments** functionality in Xahau is designed to facilitate fast, flexible transfer of value across the network. Uniquely, Xahau (like XRPL) supports *multi-asset payments* through a system of trust lines and issued currencies. Using a `TrustSet` transaction, two parties can establish a trust line to transact in a custom asset or IOU, enabling built-in support for multiple currencies or tokens without requiring smart contracts.
This means businesses can issue stablecoins or tokens on Xahau and users can send or exchange them natively. The Payments suite also includes advanced features like **Deposit Preauthorization**, which lets an account whitelist who can send it funds, adding security against unwanted transactions.
In addition, Xahau supports **payment channels** for scalability. Payment channels allow two parties to conduct rapid, high-volume transactions off-ledger and then settle the net result on the blockchain. With transactions like PaymentChannelCreate, Fund, and Claim, Xahau enables micropayments or streaming payments that are secured by the ledger but dont congest it.
</PageSection>
</PageLayout>

View File

@@ -1,5 +1,6 @@
---
import FraudReportPage from '../components/FraudReportPage.astro'
import { fraudReportTranslations } from '../i18n/fraudReportTranslations'
import FraudReportPage from '../components/FraudReportPage.astro'
import { fraudReportTranslations } from '../i18n/fraudReportTranslations'
---
<FraudReportPage t={fraudReportTranslations.en}/>
<FraudReportPage t={fraudReportTranslations.en} />

17
src/pages/ja/about.astro Normal file
View File

@@ -0,0 +1,17 @@
---
import '../../styles/main.css'
import XahauAboutJa from '../../components/XahauAboutJa.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahauについて',
description:
'アカウントベースプログラマビリティを持つエンタープライズL1ブロックチェーン',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauAboutJa />
</div>
</BaseLayout>

View File

@@ -1,49 +0,0 @@
---
title: Xahauについて
description: Xahauとは簡単な説明
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="center">
<div class="w-full relative pb-[56.25%]">
<iframe width="560" height="315" class="absolute h-full w-full top-0 left-0" src="https://www.youtube.com/embed/4pruN6sWJho?si=IlxKDlD2LFLwS6EK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
</PageSection>
<PageSection align="left" gem="10" gemSize="large" loading="eager">
XahauはユニークなL1ブロックチェーンであり、スマートコントラクトとも呼ばれるブロックチェーンプログラマビリティへの革新的なアプローチを持っています。
長年にわたって実証された技術は、約4秒で取引を決済し、1 USDセント未満の非常に低いコストで行います。現在、レジャーあたり最大10,000取引でスケーラブルであり、本質的にグリーンで環境に優しいブロックチェーンです。
Xahauは、内蔵の分散型取引所での通貨の発行と取引、ネイティブの非代替トークン、そしてHooksとして知られるXahauスマートコントラクトによるカスタムロジックでのDeFiの無限の機会のためのネイティブ機能を提供します。
Hooksはアカウントに存在し、取引の受信などのアカウントベースのイベントに対してカスタムロジックを使用する新しいアプローチを提供します。HooksはC言語で開発されていますが、JavaScriptのサポートはすでに開発されテスト中であり、他のプログラミング言語も視野に入っています。これにより、急な学習曲線なしに、何百万人もの開発者にスマートコントラクトの世界が利用可能になります。
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="1">
### Xahauの背後にある技術は何ですか
Xahauは実証済みの技術であり、スマートコントラクト、アカウントベースのプログラマビリティHooks、そしてエスクローやペイメントチャンネルなどのネイティブ機能での発行通貨への等しいサポートで強化されたXRPレジャーコードの進化した反復です。
Xahauは、XRPLと同様に、取引を検証する方法として連合コンセンサスメカニズムを使用します。取引は、バリデーターと呼ばれる指定された独立したサーバーが取引の順序と結果について合意するコンセンサスプロトコルを通じて確認されます。ネットワーク内のすべてのサーバーは同じルールに従って各取引を処理し、プロトコルに従う取引はすぐに確認されます。すべての取引は公開かつ透明であり、誰でもバリデーターを運営できます。
Xahauはネットワークの意思決定に対するコミュニティ中心のアプローチを確保するためにガバナンスゲームを導入しています。ゲームをプレイするために、テーブルのメンバーは投票を行います。この2層テーブルシステムで議論されるトピックには、席、Hooks、報酬のトピックが含まれます。
</PageSection>
<PageSection align="left" gem="14">
## XAHXahauのネイティブ通貨
Xahauのネイティブ通貨はXAHと呼ばれ、インフレ通貨です。すべてのアカウントは、ジェネシスアカウントのHookと対話することで残高調整に参加でき、月々のアカウント残高の4%を積み立てます。
XAHは取引コストを追加することでネットワークスパムを防ぐために使用されます。通常の取引はXAHの何分の一かのコストがかかりますが、Hooksと対話する場合は取引価格が上昇します。XAHはまた、アカウントを所有したり、オブジェクトを所有したり、スマートコントラクト消費のためのデータを保存するために、ロックされた残高または準備金として必要です。
Hooksのため、XAHの燃焼率はXRPLと比較して高くなっています。カスタムロジックのためにHooksに依存するプロジェクトは、手数料を支払うための月次残高調整を生成できるXAHの残高を維持することをお勧めします。
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="12">
## Xahauにとって重要なイベントは何でしたか
Xahauは、非RippleのXRPL開発者、組織、インフラプロバイダーによって形成された暫定的な同盟であるXahau Launch Allianceによって2023年10月30日にローンチされましたXRPL Labs、GateHub Limited、Titanium OU、Evernode Labs Ltd、Digital Governing OU。
最初の1年で、Xahauは2024年3月の新しいネイティブ機能Remit、パフォーマンスの改善、メモリのみのード、JavaScriptフックサポートなど、多くの更新を受けました。
最初の1年で、The Inclusive Financial Technologies FoundationInFTFとエチオピア最大の銀行の一つで1,300万以上のアカウント保有者を持つCooperative Bank of OromiaCOOPの協力により、最初の国際送金サービスが開始されました。着信送金ソリューションは、中東、米国、欧州全域でブルーカラー労働者として働くアフリカン・ディアスポラの多くが、エチオピアの友人や家族にお金を送るのを助けます。このサービスは当初EURを使用した着信送金のために開始され、誰でもデジタルEURを購入し、ほぼゼロのコストでブロックチェーン経由で送信し、数秒以内に現地通貨ETBで家族や友人の銀行口座に決済できます。
InFTFはまた、最先端の革新的な金融技術の展開を通じてAU平和基金の活動を進めるためにアフリカ連合と覚書を締結しました。この協力は、複数の通貨での寄付を可能にするシームレスな寄付プラットフォームの開発を通じて、個人や組織がアフリカの平和イニシアチブを支援することをより簡単でアクセスしやすくする新しい経路を開きます。
</PageSection>
</PageLayout>

View File

@@ -0,0 +1,17 @@
---
import '../../styles/main.css'
import XahauConnect from '../../components/XahauConnect.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahau Connect',
description:
'真剣な議論とイノベーションのためのプロフェッショナルなブロックチェーンイベント',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauConnect />
</div>
</BaseLayout>

View File

@@ -1,132 +0,0 @@
---
title: Xahau Connect
description: 真剣な議論とイノベーションのためのプロフェッショナルなブロックチェーンイベント
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## 今後のイベント
### 非EVMブロックチェーンプログラミングコース
<div class="space-y-3">
<div>
<strong>📅 日時:</strong> 2026年2月27日午後4時16:00CET
</div>
<div>
<strong>📍 場所:</strong> MILMadrid Innovation Lab<br/>
Calle Bravo Murillo 37-39<br/>
スペイン、マドリード<br/>
<a href="https://www.google.com/maps/place/MIL+(+Madrid+Innovation+Lab+)/@40.434491,-3.7064685,906m/data=!3m1!1e3!4m6!3m5!1s0xd4229d08548c999:0x5f5190cb07369de2!8m2!3d40.4366246!4d-3.7048174!16s%2Fg%2F11snptdnc1?hl=es-ES&entry=ttu&g_ep=EgoyMDI1MTEwNS4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noopener noreferrer">Google マップで見る</a>
</div>
<div>
<strong>🎟️ 登録:</strong> この<a href="https://luma.com/hiy3lsdq">フォーム</a>を使用して対面参加登録
</div>
</div>
Xahauブロックチェーンプログラミングの無料入門コースにご参加ください。このコースは、このタイプの技術で最初の一歩を踏み出すのを助けるために設計されています。この4時間の対面コースは、実践的な演習を通じて基本的な概念とツールを学ぶことに焦点を当てています。言語スペイン語・英語。
</PageSection>
<PageSection align="right" gem="3">
## 過去のイベント
### 暗号資産の機関保管とゴールドトークナイゼーション
<div class="space-y-3">
<div>
<strong>📅 日時:</strong> 2026年2月11日午後6時30分18:30CET
</div>
<div>
<strong>📍 場所:</strong> MILMadrid Innovation Lab<br/>
Calle Bravo Murillo 37-39<br/>
スペイン、マドリード
</div>
<div>
<strong>🎤 注目スピーカー:</strong>
<div class="ml-6 mt-1 space-y-1">
<div>• <strong>José Ángel Fernández</strong> CEO、Prosegur Crypto</div>
</div>
</div>
<div>
<strong>📺 録画セッション:</strong> <a href="https://www.youtube.com/watch?v=GJPq3y5x5FA" target="_blank" rel="noopener noreferrer">Madrid Innovation Lab YouTube</a>でオンライン視聴
</div>
</div>
Prosegur CryptoのCEO、**José Ángel Fernández**を迎えた**Xahau Connect**の対面セッション。このトークでは、Prosegur Cryptoを通じたProsegurのブロックチェーンエコシステムへの旅、暗号資産の機関保管、これらのシステムが技術的・セキュリティの観点からどのように機能するか、そして機関クライアントへのサービスについて探りました。
### ブロックチェーンと規制:法的審査下のヨーロッパ
<div class="space-y-3">
<div>
<strong>📅 日時:</strong> 2025年12月4日午後6時30分18:30CET
</div>
<div>
<strong>📍 場所:</strong> MILMadrid Innovation Lab<br/>
Calle Bravo Murillo 37-39<br/>
スペイン、マドリード
</div>
<div>
<strong>🎤 注目スピーカー:</strong>
<div class="ml-6 mt-1 space-y-1">
<div>• <strong>Horacio Gómez Rey</strong> Head of Legal Spain、N26</div>
<div>• <strong>Pedro Méndez de Vigo</strong> AVP Legal Europe、Crypto.com</div>
</div>
</div>
<div>
<strong>📺 録画セッション:</strong> <a href="https://www.youtube.com/watch?v=Koq8LqR7qyc" target="_blank" rel="noopener noreferrer">Madrid Innovation Lab YouTube</a>でオンライン視聴
</div>
</div>
主要なフィンテックおよび暗号企業の著名な法律専門家を迎えたヨーロッパのブロックチェーン規制に関する詳細な議論。このセッションでは、進化する規制の状況、コンプライアンスの課題、ヨーロッパの法的審査の下でのブロックチェーンの未来を探りました。
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="left" gem="9">
## Xahau Connectについて
**Xahau Connect**は、ブロックチェーン技術とその現実世界のアプリケーションについての真剣で不可知論的な議論を育むために[**INFTF**](https://www.inftf.org)Inclusive Financial Technology Foundationによって作られたプロフェッショナルなブロックチェーンイベントシリーズです。
## 私たちのミッション
Xahau Connectでは以下に焦点を当てています
<div class="space-y-2">
<div>• <strong>真剣な技術的議論:</strong> ブロックチェーンアーキテクチャ、ビジネス、機会、規制、イノベーションなどについての深い会話。</div>
<div>• <strong>ブロックチェーン非依存主義:</strong> すべてのブロックチェーンエコシステムと技術からの視点を歓迎。</div>
<div>• <strong>プロフェッショナルネットワーキング:</strong> ビルダー、専門家、開発者、研究者、業界リーダーをつなぐ。</div>
<div>• <strong>現実世界のアプリケーション:</strong> 採用を促進する実践的な実装とユースケースに焦点を当てる。</div>
<div>• <strong>知識共有:</strong> 異なるブロックチェーンドメインと業界の専門家から学ぶ。</div>
</div>
## 参加すべき人
Xahau Connectのイベントは以下の方々のために設計されています
<div class="space-y-2">
<div>• プロトコル、スマートコントラクト、dApps、インフラに取り組む<strong>ブロックチェーン開発者とビルダー</strong></div>
<div>• ブロックチェーンソリューションと統合を設計する<strong>テクニカルアーキテクト</strong></div>
<div>• ブロックチェーン理論、暗号学、分散システムを探求する<strong>研究者と学者</strong></div>
<div>• ビジネスアプリケーションのためのブロックチェーンを評価する<strong>エンタープライズリーダー</strong></div>
<div>• ツール、ドキュメント、コミュニティリソースを構築する<strong>エコシステムコントリビューター</strong></div>
</div>
</PageSection>
<PageSection align="right" gem="2">
## スピーカー、スポンサー、お問い合わせ
### 参加方法
<div class="space-y-2">
<div>• <strong>講演提案とスポンサー問い合わせ:</strong> <a href="mailto:connect@xahau.org">connect@xahau.org</a></div>
</div>
### 更新情報を受け取る
今後のXahau Connectイベントの通知を受け取るには
<div class="space-y-2">
<div>• XでフォローXで<a href="https://x.com/XahauNetwork" target="_blank" rel="noopener noreferrer">@XahauNetwork</a>と<a href="https://x.com/incfintech" target="_blank" rel="noopener noreferrer">INFTF</a>をフォロー</div>
<div>• <a href="mailto:connect@xahau.org">connect@xahau.org</a>にメール</div>
</div>
</PageSection>
</PageLayout>

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauContestJa from '../../components/XahauContestJa.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Xahau Dev Contest',
description: 'Ecosystem Rising — Xahauを活用したユーザー向けサービスを構築',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="flex-none container mx-auto max-w-7xl p-6 pb-12">
<XahauContestJa />
</div>
</BaseLayout>

View File

@@ -1,165 +0,0 @@
---
title: Xahau Dev Contest
description: Ecosystem Rising - Xahauを活用したユーザー向けサービスを構築
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## はじめに
**Xahau Dev Contest: Ecosystem Rising**へようこそ!
このコンテストは、**Xahauを活用したユーザー向けサービス**を構築するイベーターを招待し、賞品を競いながらXahauエコシステムを強化するものです。
## 賞品
* **XAHの主要賞3つ**(受賞プロジェクト向け)
* **🥇 1位** XAH建て4,000 USD相当
* **🥈 2位** XAH建て2,000 USD相当
* **🥉 3位** XAH建て1,000 USD相当
## スケジュール
* **提出締切:** 2026年2月1日
* **審査パネル:** XahauおよびXRPLコミュニティの5名のメンバー下記参照
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="9">
## 審査パネル
コンテストは**5名のコミュニティメンバー**によって評価されます:
* • [**tequ**](https://x.com/_tequ_) Xahauブロックチェーン開発者
* • [**Robert Kiuru**](https://x.com/robertkiuru) COO、*XRPL Labs*
* • **[gadget78](https://x.com/gadget78)** Evrenodeデベロッパー
* • [**Andrei Rosseti**](https://x.com/andreirosseti) Xahau DocProofアーキテクト | CTO、*EleveCRM*
* • [**Vet**](https://x.com/Vet_X0) XRPLコミュニティコントリビューター
## テーマXahau上のサービス
参加者は**Xahauメインネットと対話するWebベースのサービス**を構築し、**エンドユーザー**(一般ユーザー、パワーユーザー、公共部門、民間部門)向けに設計する必要があります。
例(これらに限りません):
<div class="space-y-2">
<div>
<strong>• 日常ユーザーツール:</strong>
<div class="ml-6 space-y-1">
<div>◦ 個人財務ダッシュボード</div>
<div>◦ ウォレットマネージャー</div>
<div>◦ コミュニティアプリ</div>
</div>
</div>
<div>
<strong>• ビジネスサービス:</strong>
<div class="ml-6 space-y-1">
<div>◦ 決済ポータル</div>
<div>◦ ロイヤルティプラットフォーム</div>
<div>◦ 顧客サービスツール</div>
</div>
</div>
<div>
<strong>• 公共プラットフォーム:</strong>
<div class="ml-6 space-y-1">
<div>◦ NFTマーケットプレイス</div>
<div>◦ 投票システム</div>
<div>◦ 寄付ハブ</div>
<div>◦ 文化アプリ</div>
<div>◦ 社会的善のためのユーティリティ</div>
</div>
</div>
</div>
</PageSection>
<PageSection align="left" gem="4">
## 参加ルール
<div class="space-y-2">
<div>• <strong>好きなだけ多くのプロジェクト</strong>を提出できます。</div>
<div>• 各プロジェクトは個人またはグループの参加者が提出できます。</div>
<div>• プロジェクトは<strong>Xahauメインネットで動作</strong>する必要があります。</div>
<div>• 各プロジェクトは<strong>オンラインでアクセス可能</strong>である必要があります。</div>
<div>• 各提出には他の人がプロジェクトを理解するための<strong>基本的なドキュメント</strong>を含める必要があります。</div>
<div>• <strong>AIツール</strong>は開発とドキュメントの両方に使用できます。</div>
<div>• プロジェクトが<strong>Hooks</strong>を使用する場合、Hookコードはオープンソースである必要があります。</div>
</div>
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="13">
## 評価基準
提出物をレビューする際、審査員は特に以下を重視します:
<div class="space-y-2">
<div>• アイデアの<strong>独自性と創造性</strong></div>
<div>• コンテスト前にXahauメインネットで同じサービスを提供する<strong>既存の競合他社の不在</strong></div>
<div>• エンドユーザーへの<strong>影響と有用性</strong></div>
<div>• <strong>実行の品質</strong>(安定性、ドキュメント、ユーザーエクスペリエンス)</div>
<div>• <strong>Hooksの使用Xahauのスマートコントラクト</strong></div>
</div>
</PageSection>
<PageSection align="left" gem="2">
## 提出フォーマット
各プロジェクトは**[このリポジトリ](https://github.com/xahau/xahau-2nd-dev-contest)**のsubmissionsディレクトリ内にフォルダと少なくとも1つの**提出ファイル**を含める必要があります。
submissions/GitHubName_ProjectName/GitHubName_ProjectName.md
ファイルには以下のフィールドを含める必要があります:
<div class="space-y-2">
<div>• <strong>プロジェクトタイトル</strong></div>
<div>• <strong>簡単な説明</strong></div>
<div>• <strong>参加者</strong>(名前またはニックネーム)</div>
<div>• <strong>参加者のソーシャルメディア</strong></div>
<div>• <strong>連絡先メール</strong></div>
<div>• <strong>オンラインプロジェクトへのリンク</strong></div>
<div>• <strong>賞品受け取り用のXahauアドレス</strong></div>
<div>• <strong>ドキュメントへのリンク</strong></div>
<div>• <strong>CのHooksコードと対応するハッシュ</strong>プロジェクトがHooksを使用する場合</div>
<div>• <strong>プロジェクトのHooksアカウント</strong></div>
<div>• <strong>プロジェクトのリポジトリへのリンク</strong>(任意)</div>
<div>• <strong>その他のリンク</strong>(任意)</div>
</div>
</PageSection>
<PageSection class="bg-xahau-gray text-white" align="right" gem="11">
## サポートとコミュニティ
質問や指導が必要な場合:
* **[Xahau Builders Discord](https://discord.gg/ds7nb93mYj)**に参加してください。
* または**[contests@xahau.org](mailto:contests@xahau.org)**にメールしてください。
## 所有権
* 提出されたすべてのプロジェクトは**元の作成者の財産**のままです。
## 便利なリンク
* [Xahauドキュメント](https://docs.xahau.network)
* [Xahau Hooksドキュメント](https://xahau.network/docs/hooks/)
* [XahauのGitHubリポジトリ](https://github.com/Xahau)
* [Xaman Webサイト](https://xaman.app)
* [Xahau Testnetフォーセット](https://xahau-test.net/)
* [Xahau Discord](https://discord.gg/ds7nb93mYj)
</PageSection>
<PageSection align="left" gem="6">
## FAQ
**Q: 複数のプロジェクトを提出できますか?**
- A: はい!個人でもグループの一部としても、好きなだけ提出できます。
**Q: プロジェクトはオープンソースである必要がありますか?**
- A: いいえ、ただし審査員がどのように機能するかを理解できるように、少なくとも基本的なドキュメントを含める必要があります。
**Q: AIを使用してプロジェクトを構築または文書化できますか**
- A: はい、AIの使用は完全に許可されています。
**Q: どのようなサービスを期待していますか?**
- A: 個人、企業、または公共部門のいずれかの**エンドユーザーに価値を提供する**あらゆるサービス。
**Q: Hooksを使用することに利点はありますか**
- A: はい、**HooksXahauのスマートコントラクト**を創造的に実装したプロジェクトは特別な評価を受けます。
**Q: どこで質問できますか?**
- A: **[XahauコミュニティDiscord](https://discord.gg/ds7nb93mYj)**または**[contests@xahau.org](mailto:contests@xahau.org)**にメールしてください。
</PageSection>
</PageLayout>

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauEcosystem from '../../components/XahauEcosystem.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'エコシステム',
description: '世界中のXahau',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauEcosystem />
</div>
</BaseLayout>

View File

@@ -1,68 +0,0 @@
---
layout: ../../layouts/PageLayout.astro
title: エコシステム
description: 世界中のXahau
---
import EcosystemButton from '../../components/EcosystemButton.astro';
import gatehub from'../../assets/ecosystem-logos/gatehub.png'
import bitrue from'../../assets/ecosystem-logos/bitrue.png'
import bithomp from'../../assets/ecosystem-logos/bithomp.png'
import xahscan from'../../assets/ecosystem-logos/xahscan.png'
import xahau_services from '../../assets/ecosystem-logos/xahau-services.png'
import xrplwin from'../../assets/ecosystem-logos/xrplwin.png'
import xaman from'../../assets/ecosystem-logos/xaman.png'
import dcent from'../../assets/ecosystem-logos/dcent.png'
import bitmart from'../../assets/ecosystem-logos/bitmart.png'
import coinex from'../../assets/ecosystem-logos/coinex.png'
## ウォレット
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xaman.app/" title="Xaman" imageSrc={xaman} class="!bg-black" />
<EcosystemButton class="h-30" href="https://www.dcentwallet.com/" title="D'CENT" imageSrc={dcent} class="!bg-black" />
<EcosystemButton class="h-30" href="https://gemwallet.app/" title="GemWallet" />
<EcosystemButton class="h-30" href="https://www.ledger.com/" title="Ledger" />
</div>
## 取引所
<div class="grid gap-3 md:grid-cols-3 grid-cols-1 pt-2 pb-20">
<EcosystemButton class="h-40" title="Gatehub" imageSrc={gatehub} href="https://gatehub.net/" />
<EcosystemButton class="h-40" href="https://www.bitrue.com/" imageSrc={bitrue} title="Bitrue" />
<EcosystemButton class="h-40" title="BitMart" imageSrc={bitmart} href="https://www.bitmart.com/" />
<EcosystemButton class="h-40" title="CoinEx" imageSrc={coinex} href="https://www.coinex.com/" />
</div>
## エクスプローラーとユーティリティ
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xahscan.com/" title="XAHSCAN" imageSrc={xahscan} class="!bg-[#1E3B70]" />
<EcosystemButton class="h-30" href="https://xahauexplorer.com/" title="Xahau Explorer" imageSrc={bithomp} />
<EcosystemButton class="h-30" href="https://xahau.xrplwin.com/" title="XRPLWin" imageSrc={xrplwin} />
<EcosystemButton class="h-30" href="https://xahau.services/" title="Xahau Services" imageSrc={xahau_services} />
</div>
## プロジェクト
<div class="grid gap-4 md:grid-cols-4 grid-cols-2 pt-2 pb-20">
<EcosystemButton class="h-30" href="https://xahaudocproof.com/" title="Xahau DocProof" />
<EcosystemButton class="h-30" href="https://www.evernode.org/" title="Evernode" />
<EcosystemButton class="h-30" href="https://xmerch.app/" title="xMerch" />
<EcosystemButton class="h-30" href="https://evergram.app/" title="Evergram" />
<EcosystemButton class="h-30" href="https://xamini.io/" title="XAMINI" />
<EcosystemButton class="h-30" href="https://xmagnetic.org/?network=xahau" title="Magnetic" />
<EcosystemButton class="h-30" href="https://xahinvest.com/" title="XAH Invest" />
<EcosystemButton class="h-30" href="https://xpert.page/" title="Xpert Page" />
<EcosystemButton class="h-30" href="https://vpra.app/" title="VPRA" />
<EcosystemButton class="h-30" href="https://xaman.app/detect/xapp:dino.xahur" title="DinoXAHur" />
<EcosystemButton class="h-30" href="https://xumm.app/detect/xapp:xumm.dex" title="Xaman DEX Trade" />
<EcosystemButton class="h-30" href="https://xumm.app/detect/xapp:xaman.voucher" title="Voucher" />
<EcosystemButton class="h-30" href="https://www.dallipay.com/" title="Dallipay" />
<EcosystemButton class="h-30" href="https://dhali.io/" title="Dhali" />
<EcosystemButton class="h-30" href="https://xahauradio.com/" title="Xahau Radio" />
<EcosystemButton class="h-30" href="https://github.com/Cbot-XRPL/Xahau-Journal?tab=readme-ov-file" title="Xahau Journal" />
<EcosystemButton class="h-30" href="https://github.com/Handy4ndy/XahauHooks101" title="Hooks 101" />
<EcosystemButton class="h-30" href="https://github.com/Handy4ndy/HandyHooks" title="HandyHooks" />
</div>

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauFeaturesJa from '../../components/XahauFeaturesJa.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: '機能',
description: '実績ある技術、新鮮なアプローチ',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauFeaturesJa />
</div>
</BaseLayout>

View File

@@ -1,75 +0,0 @@
---
title: 機能
description: 実証された技術と革新的なアプローチ
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="left" gem="5" gemSize="large" loading="eager">
## Hooksアカウントレベルのスマートコントラクトロジック
Xahauは**Hooks**を導入しています。これは、**アカウントレベル**で直接動作するユニークな形式のオンレジャースマートコントラクトロジックです。外部のコントラクトアドレスとの対話を必要とする他のブロックチェーンのスマートコントラクトとは異なり、Hooksはユーザーアカウント自体に組み込まれた軽量なプログラムです。これらのHooksは、明示的な関数呼び出しなしに、そのアカウントに関わるあらゆる取引を自動的に検査、変更、または拒否することができます。
Hooksはインラインかつコンセンサス内で実行されるため、最小限のオーバーヘッドでリアルタイムのプログラマビリティを提供します。これにより、不正なトークン転送の拒否、入金時のアクションのトリガー、コンプライアンスロジックの実装などの強力なユースケースが可能になります。Hooksは新しいセキュリティとプログラマビリティのパラダイムを表し、アカウントをトランザクションロジックのアクティブな参加者にします。
## 設計によるトークンと資産の制御
Xahauは発行者とユーザーにトークンとトラストラインに対する詳細な**制御**を与えます。`TrustSet`、`Clawback`、`Freeze`、`Deposit Authorization`などの機能により、トークンの使用方法や受け取り方を完全にカスタマイズできます。資産はホワイトリスト化、ブロック、または燃焼させることができ、すべてプロトコルレベルで適用されます。
これにより、Xahauは規制された金融商品、ステーブルコイン、ロイヤルティプログラム、エンタープライズサプライチェーンなど、コンプライアンス、安全性、精度が重要なシナリオに特に適しています。
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="9" align="right">
## ガバナンスゲーム:目的を持った分散型調整
Xahauは**ガバナンスゲーム**に裏付けられた新しいガバナンスシステムを特徴としています。これは、修正案を提案、審査、投票するための透明でオンレジャーのメカニズムです。バリデーターオペレーター(ガバナー)は、説明責任とエンゲージメントに基づく構造化された報酬システムで競いながら、プロトコルの形成に直接参加します。
このシステムにより、プロトコルのアップグレードとポリシー決定が、中央集権的なエンティティによって指示されるのではなく、オープンで参加型になることが保証されます。構造化されたエンタープライズ調整の利点と、分散型コンセンサスの透明性と回復力を組み合わせています。
## 残高報酬:ステーキングなしのパッシブ収益
Xahauは**残高報酬**システムを提供しており、アカウントが資産を保有するだけで価値を受動的に積み立てることができます。これらの報酬はアカウント残高に基づいて計算され、ステーキング、委任、サードパーティのコントラクトを必要とせず、コンセンサスによって適用されるメカニズムを通じて分配されます。
このメカニズムはプロトコルレベルのロジックとオンチェーンHooksによって支えられており、報酬が自動的、公正、持続可能であることを保証します。
</PageSection>
<PageSection align="center">
## エスクロー:あらゆる資産の条件付き転送
Xahauはネイティブおよび**発行済みトークン**の**オンレジャーエスクロー**をサポートし、幅広いビジネスおよび金融ユースケースのための安全な条件付き転送を可能にします。資金またはトークンは、ネットワーク自体によって適用される時間ベースまたは条件ベースのリリースロジックでロックできます。
## Remitネイティブのクロスアカウント転送
**Remit**機能により、アカウント間での合理化されたマルチオペレーション取引が可能になり、複雑または大量の支払いフローに最適です。複数の個別の命令を送信する代わりに、単一のRemit取引が複数の受取人に価値を配布したり、複数の残高変更をアトミックにトリガーしたりできます。
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="4" align="right">
## 手数料燃焼による低手数料
Xahauは一貫して**低い取引手数料**を維持し、スパムを減らしてネットワークの長期的な健全性を報酬する組み込みの**手数料燃焼**モデルを持っています。各取引はXAHで最小限の手数料を支払い、その手数料の一部は永久に破壊されます。
## 高速、グリーン、スケーラブル
XRPLのコンセンサスプロトコルの洗練されたバージョンの上に構築されたXahauは、**高速なファイナリティ**、低エネルギー使用量、信頼性の高いスケーラビリティを提供します。取引は数秒で確認され、マイニングなし、最小限のハードウェア要件で行われます。
</PageSection>
<PageSection align="left" gem="13">
## URITokensXahauのネイティブNFT
**URITokens**は、別のスマートコントラクトを介してではなく、レジャーのネイティブな部分として実装されたXahauの非代替トークンNFTへのアプローチを表しています。URITokenは、発行アカウントとトークンのメタデータやコンテンツを通常指すUniform Resource IdentifierURIによって一意に識別される、ファーストクラスのオンレジャーオブジェクトです。
この組み込みNFT標準により、クリエイターはカスタムコードをデプロイすることなく、シンプルな取引URITokenMint、URITokenBuy、URITokenBurnでNFTをミント、取引、または燃焼させることができます。
## オファー内蔵の分散型取引所DEX
Xahauはネイティブの**オファー**システムを含み、レジャー上の内蔵分散型取引所を動かしています。ユーザーはネットワーク上で直接資産(トークンや発行通貨など)を売買するための**オファー**エントリを作成でき、これらのオファーはプロトコルのオーダーブックによって自動的にマッチングされます。
</PageSection>
<PageSection class="bg-xahau-gray text-white" gem="2" align="right">
## チェック:繰延決済システム
Xahauはブロックチェーン上でデジタル小切手を書くような繰延決済システムである**チェック**をサポートしています。一方が後で現金化するか、必要に応じてキャンセルできるチェック(支払いの約束)を発行できます。
## 支払い:マルチアセット転送とチャンネル
Xahauの**支払い**機能は、ネットワーク全体での価値の高速かつ柔軟な転送を容易にするように設計されています。Xahauはトラストラインと発行通貨のシステムを通じて*マルチアセット支払い*をサポートし、スマートコントラクトを必要とせずに複数の通貨やトークンの組み込みサポートを可能にします。
Xahauはまた、スケーラビリティのための**ペイメントチャンネル**をサポートしています。ペイメントチャンネルにより、2者がオフレジャーで高速・大量の取引を行い、その後正味の結果をブロックチェーン上で決済することができます。
</PageSection>
</PageLayout>

View File

@@ -1,5 +1,6 @@
---
import FraudReportPage from '../../components/FraudReportPage.astro'
import { fraudReportTranslations } from '../../i18n/fraudReportTranslations'
import FraudReportPage from '../../components/FraudReportPage.astro'
import { fraudReportTranslations } from '../../i18n/fraudReportTranslations'
---
<FraudReportPage t={fraudReportTranslations.ja}/>
<FraudReportPage t={fraudReportTranslations.ja} />

View File

@@ -0,0 +1,16 @@
---
import '../../styles/main.css'
import XahauRoadmap from '../../components/XahauRoadmap.astro'
import BaseLayout from '../../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'ロードマップ',
description: 'Xahau roadmap across the upcoming quarters',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauRoadmap lang="ja" theme="light" />
</div>
</BaseLayout>

View File

@@ -1,69 +0,0 @@
---
title: ロードマップ
description: 今年、Xahauネットワークはスケーラビリティ、アクセシビリティ、セキュリティ、イベーションにわたる強力なアップデートを予定しています
---
import PageLayout from '../../layouts/PageLayout.astro';
import PageSection from '../../components/PageSection.astro';
import roadmap from '../../assets/roadmap_2025.jpeg'
import { Image } from 'astro:assets';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="center">
<Image src={roadmap} alt="Xahau 2025 ロードマップ" />
# H1 2025
## 1. プロジェクト「L10K」
コア技術の効率を改善し、レジャーあたりの取引容量を10,000トランザクションに増加させ、効率性とセキュリティを向上させます。
Xahauエコシステムにとってパフォーマンスのマイルストーン
## 2. UDPモニタリングとRPCの改善
ードオペレーター向けのコネクションレスモニタリングとRPC機能により、ネットワーク全体のパフォーマンスとスケーラビリティを最適化します。
単一または複数ノード環境の効率的なパッシブモニタリングを可能にし、オーバーヘッドを大幅に削減します。
## 3. 新機能の最終化Remarks、Touch、Blackhole、DataMonitor
これらの最先端機能の開発と統合を完成させ、開発者および開発者が構築した製品を通じてエンドユーザーのXahauとの対話を改善します。
## 4. XahauのLedgerハードウェアウォレット完全サポート
Ledgerハードウェアウォレットとの互換性によりXahauの安全で合理的な取引を確保し、世界中でXahauへのアクセシビリティを開きます。
## 5. 取引所とOn/Off-Rampアクセス
Xahauは取引所とOn/Off-Rampプラットフォームを通じてよりアクセスしやすくなり、エコシステム内でのより広範な参加と統合をサポートすることを目指しています。
## 6. LedgerLiveサポート
Ledger LiveとのXahau統合により、人気のLedger Live製品を使用した簡単なアクセスと管理を可能にします。
## 7. ユニバーサル埋め込み可能なHook説明フレーム
HookSet取引の明確な統合されたビジュアルで、Hooksがトランザクションに与える影響の明確な説明を任意のウォレットウェブ、モバイル、デスクトップに簡単に統合できるようにし、より容易な採用を確保します。
# H2 2025
## 8. JavaScriptフック実装
監査承認待ちで、JavaScriptベースのHooksとツールを世界中の何千万もの開発者にもたらし、高度なオンチェーンロジックとプログラマブルなトランザクション機能のためにXahauを使用した開発を可能にします。
## 9. 包括的な監査とセキュリティチェック
2025年のすべての主要機能の監査を完了し、ネットワークのセキュリティと安定性を示し、2026年に向けて世界に検証可能な保証を提供します。
## 10. ユーザーエクスペリエンスの改善
フィードバックに導かれ、Xahauエコシステムはすべてのウォレットとアプリケーションにわたるシームレスな統合と使いやすさを確保します。
## 11. バッチ実装
効率的なマルチトランザクション検証を可能にし、すべてまたは何も取引が発生しないことを確保しながら、サービスプロバイダーがワークフロー固有の操作をトランザクションフローにシームレスに組み込むことを可能にします。
**2025年は、Xahauがよりスマートに、より速く、より強くスケールしながら、アクセス、使用、活用、構築がより容易になる年です。**
</PageSection>
</PageLayout>

16
src/pages/roadmap.astro Normal file
View File

@@ -0,0 +1,16 @@
---
import '../styles/main.css'
import XahauRoadmap from '../components/XahauRoadmap.astro'
import BaseLayout from '../layouts/BaseLayout.astro'
const _frontmatter = {
title: 'Roadmap',
description: 'Xahau roadmap across the upcoming quarters',
}
---
<BaseLayout frontmatter={_frontmatter}>
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
<XahauRoadmap lang="en" theme="light" />
</div>
</BaseLayout>

View File

@@ -1,69 +0,0 @@
---
title: Roadmap
description: This year, Xahau Network intends to receive powerful updates across scalability, accessibility, security, and innovation
---
import PageLayout from '../layouts/PageLayout.astro';
import PageSection from '../components/PageSection.astro';
import roadmap from '../assets/roadmap_2025.jpeg'
import { Image } from 'astro:assets';
<PageLayout frontmatter={frontmatter} wide="true">
<PageSection align="center">
<Image src={roadmap} alt="Xahau roadmap 2025" />
# H1 2025
## 1. Project "L10K"
Improve core technology efficiency to boost transaction capacity to 10,000 transactions per ledger for better efficiency and security.
A milestone in performance for the Xahau ecosystem!
## 2. Improve UDP Monitoring & RPC
Connection-less monitoring and RPC features for node operators optimize performance and scalability across the network.
Allowing for efficient, passive monitoring of single or multi-node environments - significantly reducing the overhead.
## 3. Finalized New Features (Remarks, Touch, Blackhole, DataMonitor)
Complete development and integration of these cutting-edge features, improving interaction with Xahau for developers as well as end-users through products built by developers.
## 4. Ledger Hardware Wallet Full Support for Xahau
Ensure secure, streamlined Xahau transactions with Ledger Hardware Wallet compatibility, opening up accessibility to Xahau worldwide.
## 5. Exchange and On/Off-Ramp Access
Xahau is intended to become more accessible through exchanges and on/off-ramp platforms, supporting broader participation and integration within the ecosystem.
## 6. LedgerLive Support
Xahau integration with Ledger Live, enabling easy access and management using the popular Ledger Live product.
## 7. Universal Embeddable Hook Explainer Frame
Allowing any wallet to easily integrate a clear explanation of the influence of Hooks on transactions (web, mobile, desktop) with clear, integrated visuals for HookSet transactions, ensuring easier adoption.
# H2 2025
## 8. JavaScript Hooks Implementation
Pending audit approval, bring JavaScript-based Hooks and tooling to tens of millions of developers around the world to develop using Xahau for advanced on-chain logic and programmable transaction capabilities.
## 9. Comprehensive Audits & Security Checks
Complete audits for all major 2025 features to demonstrate the security and stability of the network, providing verifiable assurance to the world as we head into 2026.
## 10. Improved User Experience
Guided by feedback, the Xahau ecosystem is set to ensure seamless integration and usability across all wallets and applications.
## 11. Batch Implementation
Enable efficient multi-transaction verifications, ensuring either all or no transactions occur while allowing service providers to incorporate workflow-specific operations seamlessly into the transaction flow.
**2025 is the year Xahau becomes easier to access, use, leverage, and build on while scaling smarter, faster, and stronger.**
</PageSection>
</PageLayout>

83
src/schemas/roadmap.ts Normal file
View File

@@ -0,0 +1,83 @@
import { z } from 'astro:content'
/**
* Schema for src/data/roadmap.json.
* Keep this in sync with the JSON file — if you add a field there, add it here.
*
* Used by XahauRoadmap.astro (build-time validation) and optionally by a
* Content Collection if you ever promote the JSON to `src/content/`.
*/
const localized = z
.union([z.string(), z.record(z.string(), z.string())])
.transform((v) => (typeof v === 'string' ? { en: v } : v))
export const quarterId = z
.string()
.regex(/^\d{4}-Q[1-4]$/, "Quarter must look like '2026-Q2'")
export const roadmapItem = z.object({
id: z.string().min(1),
lane: z.enum(['tech', 'rollout']),
status: z.enum(['feature', 'live', 'pilot', 'partnership', 'launch']),
// Start quarter (required).
quarter: quarterId,
// How many quarters the activity covers, starting from `quarter`. Defaults to 1.
span: z.number().int().min(1).max(6).default(1),
// Alternative to `span`: an explicit end quarter (inclusive). Takes precedence if set.
endQuarter: quarterId.optional(),
// Ongoing activity with no firm end date. Stretches to the end of the visible
// window and renders a "continues" indicator. Overrides `span`/`endQuarter`.
openEnded: z.boolean().optional().default(false),
tag: localized.optional(),
title: localized,
description: localized.optional(),
link: z.string().url().optional(),
})
export const roadmapLabels = z.object({
title: z.string(),
subtitle: z.string(),
statement: z.string(),
kpis: z.object({
features: z.string(),
quarters: z.string(),
rollouts: z.string(),
}),
laneTech: z.string(),
laneRollout: z.string(),
now: z.string(),
updated: z.string(),
philosophy: z
.array(z.object({ t: z.string(), v: z.string() }))
.min(1)
.max(6),
legend: z.object({
feature: z.string(),
live: z.string(),
pilot: z.string(),
partnership: z.string(),
launch: z.string(),
}),
foot: z.string(),
})
export const roadmapSchema = z.object({
meta: z.object({
updated: z.string(),
window: z.object({
mode: z.enum(['auto', 'manual']).default('auto'),
start: z.string().nullable().default(null),
}),
i18n: z.object({
defaultLocale: z.string(),
locales: z.array(z.string()).min(1),
}),
}),
labels: z.record(z.string(), roadmapLabels),
items: z.array(roadmapItem),
})
export type Roadmap = z.infer<typeof roadmapSchema>
export type RoadmapItem = z.infer<typeof roadmapItem>
export type RoadmapLabels = z.infer<typeof roadmapLabels>