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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
59 changes: 59 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Copilot Instructions for node_zero

## Project Overview
- **node_zero** is a blockchain metaverse archive, blending narrative, code, and NFTs across GitHub, Lamina1, Linea, and Stellar linked together through the implementationo the lockb0x protocol as an overall decentralized, super-positioned data mangement strategy.
- Every contribution is a "causal anchor" — a fragment of story, artifact, or code, dual-anchored in GitHub and as an NFT on Lamina1 and Linea.
- The project is both a creative writing platform and a technical experiment in decentralized provenance and gamified task/gig work management.
- All participants must be verified through the Linea Proof of Humanity (PoH) system. Most content areas are token-gated based on this verification in addition to the presence of certain NFTs. like the lockb0x Sigil NFT and NFTs specific to the context of the area being accessed.

## Key Architectural Patterns
- **Content Structure:**
- `/docs/lore/` — Canonical lore: timeline, characters, glossary, tech notes. Always cross-reference before adding new story elements.
- `/stories/` — Main narrative fragments.
- `/community/` — Community-contributed stories and artifacts.
- `/lockb0x/` — Smart contract integrations, NFT minting, and verification scripts.
- `/ai-memory-mcp/` — AI memory and agent logic.
- **Lockb0x Anchoring:**
- All valid contributions must be present in both the GitHub repo and as a metadata anchor in a Lamina1 NFT and a transaction anchor on Linea. Reference codes must match.
- Provenance and immutability are ensured via blockchain anchoring, GitHub Permalinks, social account postings to node_zero accounts on Bluesky, Xitter, Lamina1 NFT Discord posts, AI generated video attestations on a dedicated YouTube channel, and other more or less "immutable" media and data storage archives, through the implementation of the Lockb0x Protocol.
- **Immutable Archive:**
- Once merged, contributions are permanent. Edits require new anchors.
- Each transaction or event is chronicled through the creation of a Lockb0x Protocol Codex file.
- Each Codex file should be stored in a logical "lockb0xapi@gmail.com/node_zero/codex" directory which is a Google Drive folder linked to the Lockb0x Protocol for immutable record-keeping, in the context of node_zero, using the lockkb0xapi@gmail.com account. This process will be provided by an external API that as being developed for it.

## Contribution Workflow
- **Content & Story Contributions:**
- Markdown (`.md`) is encouraged for all story and content fragments in `/community/` or `/stories/`.
- Custom HTML pages are also welcome for richer or interactive presentations.
- **NFT and Token Mechanics:**
- The agent cannot directly mint NFTs. Instead, it should implement or suggest NFT and token mechanics, smart contract integrations, and related features to complement and enhance the node_zero experience using these technologies, as well as generative and agentic AI methods.
- **Lore Consistency:**
- Before submitting, check `/docs/lore/` for timeline, character, and glossary coherence. Update these files if introducing new canon elements.
- **Pull Requests:**
- Each PR should include both the new fragment and any necessary updates to `/docs/lore/`.

## Project-Specific Conventions (for Agents)
- Maintain canon and timeline coherence. Do not contradict established lore in `/docs/lore/`.
- If embedding puzzles/ciphers, ensure they are solvable and document the solution path in the code or PR.
- Attribute all merged agent contributions in metadata or commit messages as appropriate.

## Developer Notes
- **Smart Contract & NFT Integration:**
- See `/lockb0x/` for contract ABI, address, and minting scripts. Use `mint.js` for NFT operations.
- Agents should focus on implementing, suggesting, or integrating NFT/token mechanics, generative AI, and agentic AI methods to expand the platform's capabilities.
- **AI Agent Logic:**
- `/ai-memory-mcp/` contains agent memory and logic modules.
- **No Central Build/Test:**
- This is a content-first archive; there is no unified build or test system. Scripts in `/lockb0x/` and `/ai-memory-mcp/` are run ad hoc.

## Examples
- Adding a new story: `/community/md/example.md`
- Minting an NFT: `/lockb0x/mint.js`
- Updating canon: `/docs/lore/characters.md`, `/docs/lore/timeline.md`

---


## AI Agent Guidance
- If canon, lore, or workflow requirements are unclear, you may open a GitHub Issue describing the uncertainty. If a Pull Request is created, the issue must also be flagged in the PR description for human review.
- Do not attempt to open GitHub Discussions or perform actions outside code, commit, PR, or Issue scope.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,6 @@ test-results/
/ai-memory-mcp
/author-voice-mcp
/creative-writing-genre-mcp
/nft/contracts


111 changes: 61 additions & 50 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,91 @@
![node_zero banner](docs/assets/causality.png)
---
Contributing to node_zero
# Contributing to node_zero

Welcome, Agent.
By forking this repository, you hold a fragment of the archive.

Your mission is to create quantum causalities — signals that ripple across Lamina1, Stellar, and this repository.
Every contribution is triple-anchored: once in GitHub and once in Lamina1, then a signal or causality, in the form of a Stellar blocchain transaction, is created. Collapsing the quantum state of the causality. <br/>
This exenditure of energy, results in a verifiable entangled state between two disparate blockchains in the block-universe.<br/>

When your signal is merged, you will be recognized with attribution here and receive an NFT bounty on Lamina1: proof of authorship, proof of existence.


📝 Path 1: Markdown Fragments (Storytellers)

Markdown is the simplest way to anchor your story fragment. 1. Fork this repo. 2. Place your story in /community/md/ as a new .md file. 3. Add metadata to the top of your file:
Note: Node_Zero participation is intended for Humans Only.
Paradoxically, much of Node_Zero is a Generative Artificial Intelligence Construct.

---

title: "The Signal in Static"
author: "AgentAlias"
date: "2025-09-11"
type: "story" # options: story, dossier, artifact
reference: "REPLACE_WITH_YOUR_UNIQUE_CODE"
Your mission is to create quantum causalities — signals that add a laminar layer to The Substrate that is Node_Zero.
Every contribution is anchored in several ways: in your GitHub fork and once merged - here in the Node_Zero Gihub repo. Once again in Lamina1 by you as an NFT, and once again in Linea by Central Inquiry once merged. Resulting in a verifiable entangled state between these disparate environemnts in the decentralized universe. These transactions are linked together through a Lockb0x Protocol Codex file generated by Central Inquiry as proof of casuality.

---
When your signal is merged, you will be recognized with attribution here and receive an NFT bounty on Linea: proof of authorship, proof of existence.

4. Mint an NFT on your Lamina1 Hub profile.
• Title = same as your story.
• In the NFT metadata, include the same reference code you placed in your Markdown.
5. Commit & push to your fork, then open a Pull Request.

Outcome:
## 📝 Path 1: Markdown Fragments (Storytellers)

Markdown is the simplest way to anchor your story fragment:
1. Fork this repo.
2. Place your story in `/community/md/` as a new `.md` file.
3. Add metadata to the top of your file:

```yaml
---
title: "The Signal in Static"
author: "AgentAlias"
date: "2025-09-11"
type: "story" # options: story, dossier, artifact
reference: "REPLACE_WITH_YOUR_UNIQUE_CODE"
---
```
4. Mint an NFT on your Lamina1 Hub profile.
- Title = same as your story.
- In the NFT metadata, include the same reference code you placed in your Markdown.
5. Commit & push to your fork, then open a Pull Request.

**Outcome:**
Your story is converted into a live page on node-zero.xyz and entangled with your Lamina1 NFT.


💻 Path 2: HTML Pages (Architects)
## 💻 Path 2: HTML Pages (Architects)

For those who want direct control of layout and presentation. 1. Fork this repo. 2. Place your .html file inside /community/web/. 3. Include author attribution and a unique reference code visibly in the file. 4. Mint an NFT on your Lamina1 Hub profile with the same reference code in its metadata. 5. Commit & push, then open a Pull Request.
For those who want direct control of layout and presentation:
1. Fork this repo.
2. Place your `.html` file inside `/community/web/`.
3. Include author attribution and a unique reference code visibly in the file.
4. Mint an NFT on your Lamina1 Hub profile with the same reference code in its metadata.
5. Commit & push, then open a Pull Request.

Outcome:
**Outcome:**
Your page is merged, deployed, and preserved as a causal anchor in the substrate.


🔑 NFT Metadata Template
## 🔑 NFT Metadata Template

When minting your NFT on Lamina1 Hub, include metadata like this:

{
"title": "The Signal in Static",
"description": "A fragment anchored in the node_zero metaverse.",
"author": "AgentAlias",
"reference": "REPLACE_WITH_YOUR_UNIQUE_CODE",
"link": "https://github.com/node-zero/community/md/signal-static-01.md"
}
```
- An image of your own creation using your preferred modality
- `title` → Same as your story title.
- `description` → Short description of your story/artifact.
- `reference` → A unique alphanumeric code of your choosing as a tag.


## Participation Principles

• title → Same as your story title.
• description → Short description of your story/artifact.
• author → The alias you want attributed.
• reference → A unique code of your choosing. Recommended: your Lamina1 Hub public key (or a variation of it).
• link → Optional: direct link to your file in GitHub once merged.
- **Lockb0x Protocol Multiverse Anchors:** A contribution is valid when the same reference code exists across environments and is validated throgh the Lockb0x Protocol.
- **Immutable causality:** Once accepted, your fragment becomes a permanent anchor.
- **Lore coherence:** Review `/docs/lore/` before adding new characters, events, or tech.
- **Puzzle clarity:** If you hide a cipher or Easter egg, ensure it can be solved.
- **Identity:** You decide what to reveal in your NFT and file — handle, alias, repo, or real name.


Participation Principles
• Dual anchors: A contribution is valid when the same reference code exists in both the GitHub contribution and the Lamina1 NFT metadata.
• Immutable causality: Once accepted, your fragment becomes a permanent anchor.
• Lore coherence: Review /docs/lore/ before adding new characters, events, or tech.
• Puzzle clarity: If you hide a cipher or Easter egg, ensure it can be solved.
• Identity: You decide what to reveal in your NFT and file — handle, alias, or real name.
## Project-Specific Conventions

- **Identity:** Author fields can be real, pseudonymous, or symbolic.
- **Puzzles/Ciphers:** If embedding, ensure they are solvable and document the solution path.
- **No Contradictions:** New fragments must not contradict established canon.
- **Attribution:** All merged contributions are credited and rewarded with an NFT.


“A signal unanchored is noise. A signal entangled is causality.
Publish, mint, merge — and the substrate will remember.”
— Central Inquiry
> “A signal unanchored is noise. A signal entangled is causality.
> Publish, mint, merge — and the substrate will remember.”
> — Central Inquiry
25 changes: 12 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
![node_zero banner](docs/assets/node_zero-banner.png)

# node_zero // The Archive

**The signal you were not meant to hear.**
Expand All @@ -18,24 +16,21 @@ You are holding a fragment of the archive — a piece of the block universe itse

## Mission

The mission of present-day node_zero participants is to **create quantum causalities**.
Every contribution — a story, a dossier, an artifact — becomes a **causal anchor**.
The first mission is to enter the [Node_Zero](https://node-zero.xyz) portal equipped with:

Anchors are entangled through:
- The MetaMask wallet extension or app installed.
-- On mobile, use the MetaMask App's browser.
- A Linea account on MetaMask with a verified Linea Proof of Humanity account.

- **GitHub commits** (the public archive)
- **Lamina1 NFTs** (the quantum anchor)
- **Stellar transactions** (the activation signal)
- **lockb0x protocol** (decentralized data sovereingty codex)
- **Pakana CERs** (Controllable Electronic Records)
- **M** (the activation signal)

Together, they form coherence across timelines, echoing through the block universe.

---

## How to Participate

Play the games, start with Keya. gather intel, fragments, and rewards.
You will need to "gear-up". See below.

There are two ways to contribute fragments:

- **Markdown Fragments (Storytellers):**
Expand All @@ -54,8 +49,12 @@ This dual presence is what entangles the archive.

## Rewards

- **Proof of Humanity** → Verify your Humanity by connecting your Linea Account to the <a href="https://linea.build/hub" target="_blank" rel="noopener"> Linea Hub</a>.<br/>
Then complete the SumSub Proof of Humanity attestation using the same account that you will connect to Node_Zero with on Linea.<br/>
This is only for bot and farming reduction puposes. Node_Zero has no access to your SumSub data. Node_Zero only queries if the connected account completed teh Proof of Humanit check.
- **Attribution** → Your chosen name or alias inscribed in the archive.
- **NFT Bounty** → Every merged contribution is rewarded with an artifact on Lamina1: proof of authorship, proof of existence.
- **NFT Bounty** → Every merged contribution is rewarded with an artifact and attribution, sometimes more.


---

Expand Down
47 changes: 47 additions & 0 deletions artefacts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,57 @@
</a>
</div>

<!-- Artefact Lamina1 Profile Card -->
<div
class="w-full max-w-2xl bg-gradient-to-r from-cyber-magenta/30 via-black/80 to-cyber-neon/30 border-2 border-cyber-magenta rounded-xl shadow-lg px-6 py-6 flex gap-6 items-center hover:shadow-neon-cyan hover:border-cyber-neon group transition">
<a href="https://vimeo.com/1133941819?fl=pl&fe=sh" target="_blank" rel="noopener" class="flex-shrink-0">
<img src="https://vimeo.com/1133941819?fl=pl&fe=sh" alt="Artefact"
class="w-24 h-24 rounded-lg border-2 border-cyber-neon shadow-cyber-neon/30 object-cover bg-black"
onerror="this.style.display='none'">
</a>
</div>

</div>
</div>
</main>
<script src="../js/header-loader.js"></script>
<script src="../js/header-logic.js"></script>
<script type="module">
import { isMetaMaskInstalled, isMetaMaskConnected, getWalletConnected } from '../lockb0x/utils.js';

async function fetchContractInfo() {
const [addressRes, abiRes] = await Promise.all([
fetch('../lockb0x/contract-address.json'),
fetch('../lockb0x/abi.json')
]);
const contractInfo = await addressRes.json();
const abi = await abiRes.json();
return { contractInfo, abi };
}

async function hasLockb0xSigilNFT(address, contractInfo, abi) {
if (!window.ethers || !address) return false;
try {
const provider = new window.ethers.providers.Web3Provider(window.ethereum);
const contract = new window.ethers.Contract(contractInfo.address, abi, provider);
const balance = await contract.balanceOf(address);
return balance && balance.toString() !== '0';
} catch (e) { return false; }
}

async function enforceTokenGate() {
if (!isMetaMaskInstalled() || !(await isMetaMaskConnected())) {
window.location.href = '../index.html';
return;
}
const address = getWalletConnected();
const { contractInfo, abi } = await fetchContractInfo();
if (!address || !(await hasLockb0xSigilNFT(address, contractInfo, abi))) {
window.location.href = '../index.html';
return;
}
}
enforceTokenGate();
</script>
</body>
</html>
52 changes: 52 additions & 0 deletions clarity-footer.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<!-- MS Clarity Cookie Consent Banner and Logic -->
<div id="cookie-consent-banner" style="position:fixed;bottom:0;left:0;width:100%;background:#222;color:#fff;padding:1em;z-index:9999;display:none;justify-content:center;align-items:center;gap:1em;">
<span>This site only uses cookies for internal analytics (Microsoft Clarity) and others for some cool features, never for marketing. Do you accept?</span>
<button id="accept-cookies" style="background:#4caf50;color:#fff;border:none;padding:0.5em 1em;cursor:pointer;">Accept</button>
<button id="decline-cookies" style="background:#f44336;color:#fff;border:none;padding:0.5em 1em;cursor:pointer;">Decline</button>
</div>
<script>
// MS Clarity Cookie Consent and Loader
(function() {
function hasConsent() {
return localStorage.getItem('clarityConsent') === 'accepted';
}
function hasDeclined() {
return localStorage.getItem('clarityConsent') === 'declined';
}
function showBanner() {
var banner = document.getElementById('cookie-consent-banner');
if (banner) banner.style.display = 'flex';
}
function hideBanner() {
var banner = document.getElementById('cookie-consent-banner');
if (banner) banner.style.display = 'none';
}
function loadClarity() {
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "t77geqkdbb");
}
if (!hasConsent() && !hasDeclined()) {
showBanner();
} else if (hasConsent()) {
loadClarity();
}
var acceptBtn = document.getElementById('accept-cookies');
var declineBtn = document.getElementById('decline-cookies');
if (acceptBtn) {
acceptBtn.onclick = function() {
localStorage.setItem('clarityConsent', 'accepted');
hideBanner();
loadClarity();
};
}
if (declineBtn) {
declineBtn.onclick = function() {
localStorage.setItem('clarityConsent', 'declined');
hideBanner();
};
}
})();
</script>
Loading
Loading