Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
2885117
Create package.json
onihaxy Feb 28, 2026
44f3d69
Create server.js
onihaxy Feb 28, 2026
515e4c7
Create index.html
onihaxy Feb 28, 2026
3a1ea40
Update README.md
onihaxy Feb 28, 2026
628be26
Update README.md
onihaxy Feb 28, 2026
9810a10
Create SKILL.md
onihaxy Feb 28, 2026
7059861
Add files via upload
onihaxy Feb 28, 2026
de055d0
Update README.md
onihaxy Feb 28, 2026
b2755e1
Rename index.html timer code.png to index.html.png
onihaxy Feb 28, 2026
3c9c436
Rename main repo.png to mainrepo.png
onihaxy Feb 28, 2026
2e24da1
Update README.md
onihaxy Feb 28, 2026
4b3b8b4
Add files via upload
onihaxy Feb 28, 2026
118e952
Delete mainrepo.png
onihaxy Feb 28, 2026
a14ab83
Delete index.html.png
onihaxy Feb 28, 2026
c853b84
Delete SKILL.md
onihaxy Feb 28, 2026
20ed059
Delete index.html
onihaxy Feb 28, 2026
a3cd978
Delete package.json
onihaxy Feb 28, 2026
c0df03d
Delete server.js
onihaxy Feb 28, 2026
a341eed
Delete tracaddress.png
onihaxy Feb 28, 2026
8822dae
Create package.json
onihaxy Feb 28, 2026
c384eb5
Create server.js
onihaxy Feb 28, 2026
e542661
Create index.html
onihaxy Feb 28, 2026
3cba042
Update README.md
onihaxy Feb 28, 2026
880bc99
Create SKILL.md
onihaxy Feb 28, 2026
a8a5383
Create .gitignore
onihaxy Feb 28, 2026
61b6392
Create LICENSE.md
onihaxy Feb 28, 2026
10b4316
Create checker.js
onihaxy Feb 28, 2026
ed5371a
Create run.sh
onihaxy Feb 28, 2026
989cc96
Create test.js
onihaxy Feb 28, 2026
fcd17eb
Create roadmap.md
onihaxy Feb 28, 2026
682c7bc
Create notes.md
onihaxy Feb 28, 2026
119cb82
Add files via upload
onihaxy Feb 28, 2026
4c2210d
Update README.md
onihaxy Feb 28, 2026
f4efef0
Update index.html
onihaxy Feb 28, 2026
31bcdf2
Delete server.js
onihaxy Feb 28, 2026
e5d39ab
Delete src directory
onihaxy Feb 28, 2026
19d9177
Delete test directory
onihaxy Feb 28, 2026
4a2f95a
Update package.json
onihaxy Feb 28, 2026
ee4b911
Create tsconfig.json
onihaxy Feb 28, 2026
82619c4
Create types.ts
onihaxy Feb 28, 2026
d40b70e
Create wordlist.ts
onihaxy Feb 28, 2026
abe3861
Create checker.ts
onihaxy Feb 28, 2026
b91bb93
Create server.ts
onihaxy Feb 28, 2026
15b20ba
Create test.ts
onihaxy Feb 28, 2026
443e5ab
Update index.html
onihaxy Feb 28, 2026
6ac9427
Delete homepage.png
onihaxy Feb 28, 2026
8517fa7
Delete testing.png
onihaxy Feb 28, 2026
699c5e2
Create main.css
onihaxy Feb 28, 2026
5335cdf
Create Cargo.toml
onihaxy Feb 28, 2026
ee85e67
Create main.rs
onihaxy Feb 28, 2026
706c0ec
Create wordlist.py
onihaxy Feb 28, 2026
95ea5d5
Create generate_wordlist.py
onihaxy Feb 28, 2026
e6d1a5f
Create app.js
onihaxy Feb 28, 2026
218a73e
Update index.html
onihaxy Feb 28, 2026
23fe717
Update README.md
onihaxy Feb 28, 2026
7612860
Update README.md
onihaxy Feb 28, 2026
e242739
Update README.md
onihaxy Feb 28, 2026
bbdf2df
Update README.md
onihaxy Feb 28, 2026
0299e76
Update README.md
onihaxy Feb 28, 2026
289f943
Update README.md
onihaxy Feb 28, 2026
3f3ea9c
Update README.md
onihaxy Feb 28, 2026
37f76cb
Update README.md
onihaxy Feb 28, 2026
9806ad2
Update README.md
onihaxy Feb 28, 2026
0c363bd
Update README.md
onihaxy Feb 28, 2026
8d70d8e
Update README.md
onihaxy Feb 28, 2026
19d8ec2
Update README.md
onihaxy Feb 28, 2026
bd900ac
Update README.md
onihaxy Feb 28, 2026
dafa09c
Update README.md
onihaxy Feb 28, 2026
a758f33
Update README.md
onihaxy Feb 28, 2026
d6d5814
Create contract.js
onihaxy Feb 28, 2026
12e5959
Create protocol.js
onihaxy Feb 28, 2026
3839b93
Rename contract.js to ops: seed phrase validation contract rules
onihaxy Feb 28, 2026
d645321
contract.js
onihaxy Feb 28, 2026
5e3d3e5
ops: seed phrase validation contract rules
onihaxy Feb 28, 2026
cf8a5d5
ops: P2P protocol handler for Intercom stack
onihaxy Feb 28, 2026
381f7d3
ops: seed phrase validation contract rules
onihaxy Feb 28, 2026
76e9563
ops: seed phrase validation contract rules
onihaxy Feb 28, 2026
92427ed
feat: frontend logic with score engine
onihaxy Feb 28, 2026
a239e4c
core: BIP39 seed phrase analysis engine
onihaxy Feb 28, 2026
c300ca7
types: seed phrase report interfaces
onihaxy Feb 28, 2026
f88a25b
data: BIP39 wordlist with validation helpers
onihaxy Feb 28, 2026
503f1d5
style: TRAC dark theme with responsive layout
onihaxy Feb 28, 2026
6da3016
rust: high performance seed validation engine
onihaxy Feb 28, 2026
17b290a
rust: add serde dependencies for JSON output
onihaxy Feb 28, 2026
5dab61f
python: BIP39 wordlist checker and analyzer
onihaxy Feb 28, 2026
a3d4356
python: multi-format wordlist generator
onihaxy Feb 28, 2026
2a2e3b1
test: full coverage for seed phrase checker
onihaxy Feb 28, 2026
aab44de
feat: express server with health check API
onihaxy Feb 28, 2026
e2b3fc5
config: add TypeScript and ts-node dependencies
onihaxy Feb 28, 2026
eaf6b3e
docs: agent skill instructions for Intercom
onihaxy Feb 28, 2026
8c4bcff
docs: agent skill instructions for Intercom
onihaxy Feb 28, 2026
6155e56
Update SKILL.md
onihaxy Feb 28, 2026
0715baf
docs: add live demo and project structure
onihaxy Feb 28, 2026
d81ae01
feat: TRAC themed seed phrase checker UI
onihaxy Feb 28, 2026
d2b69c1
ops: seed phrase validation contract rules
onihaxy Feb 28, 2026
71348ba
docs: developer notes and architecture guide
onihaxy Feb 28, 2026
80c2bf2
docs: feature roadmap and future development plan
onihaxy Feb 28, 2026
d7ec53e
``` ops: automated run script for Node.js server ```
onihaxy Feb 28, 2026
811314c
``` config: ignore node_modules and environment files ```
onihaxy Feb 28, 2026
2e38a41
docs: MIT license for open source distribution
onihaxy Mar 1, 2026
4264f0a
docs: agent skill instructions for Intercom stack
onihaxy Mar 1, 2026
4b972de
config: TypeScript strict mode compiler setup
onihaxy Mar 1, 2026
7cc9eb1
config: add TypeScript and ts-node dependencies
onihaxy Mar 1, 2026
79fb32f
``` feat: TRAC themed seed phrase checker UI ```
onihaxy Mar 1, 2026
7a0291f
docs: add live demo link and project structure
onihaxy Mar 1, 2026
16f5f66
docs: add live demo link and project structure
onihaxy Mar 1, 2026
e907884
docs: add live demo link and project structure
onihaxy Mar 1, 2026
219f643
docs: add live demo link and project structure
onihaxy Mar 1, 2026
796160c
docs: add live demo link and project structure
onihaxy Mar 1, 2026
870238b
docs: add live demo link and project structure
onihaxy Mar 1, 2026
9961eec
docs: add live demo link and project structure
onihaxy Mar 1, 2026
b718c58
docs: add live demo link and project structure
onihaxy Mar 1, 2026
9dd8ee4
docs: add live demo link and project structure
onihaxy Mar 1, 2026
2200263
docs: add live demo link and project structure
onihaxy Mar 1, 2026
3b983b8
docs: add live demo link and project structure
onihaxy Mar 1, 2026
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
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
```
# updated
```
node_modules/
.env
.DS_Store
*.log
npm-debug.log*
dist/
.cache/
22 changes: 22 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!-- updated -->
MIT License

Copyright (c) 2026 seed-phrase-checker-trac

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
391 changes: 165 additions & 226 deletions README.md

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!-- updated -->
# Seed Phrase Checker - Skill File

## What This App Does
A TRAC-themed Seed Phrase Strength Checker built on IntercomSwap.
Checks crypto wallet seed phrase security 100% locally in the browser.
Nothing is ever sent to any server.

## How To Run
npm install
npm start

Then open: http://localhost:3000

## Features
- Validates word count (12, 18, 24 words)
- Detects duplicate words
- Detects numbers in phrase
- Detects obvious weak words
- Gives security score out of 100
- Strength rating: Weak, Medium, Strong

## Built On
- IntercomSwap by Trac Systems
- Trac Network
- Node.js + Express

## Agent Instructions
- Start server with: npm start
- App runs on port 3000
- No database required
- No data sent anywhere
- Works fully in browser
- Safe for sensitive wallet data

## Security Note
This tool is 100% offline safe.
All checks happen in the user's browser only.
No seed phrase data is ever transmitted.
This tool is 100% offline safe.
All checks happen in the user's browser only.
No seed phrase data is ever transmitted.
102 changes: 102 additions & 0 deletions contract/contract.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
// updated
```
// Seed Phrase Checker - Validation Contract Rules
// Built on IntercomSwap - Trac Network

'use strict';

const CONTRACT_VERSION = '1.0.0';
const NETWORK = 'Trac Network';
const BUILT_ON = 'IntercomSwap';

// Validation Rules Contract
const VALIDATION_RULES = {
wordCount: {
valid: [12, 18, 24],
minWords: 12,
maxWords: 24,
score: 30
},
duplicates: {
allowDuplicates: false,
score: 25
},
numbers: {
allowNumbers: false,
score: 20
},
lowercase: {
requireLowercase: true,
score: 10
},
obviousWords: {
score: 15,
blacklist: [
'password', 'crypto', 'bitcoin', 'wallet',
'trac', 'secret', 'hello', 'test', 'admin',
'user', 'login', 'access', 'key', 'pass',
'qwerty', 'letmein', 'welcome', 'monkey'
]
},
bip39: {
score: 10,
enforced: true
}
};

// Strength Thresholds
const STRENGTH_THRESHOLDS = {
STRONG: 80,
MEDIUM: 50,
WEAK: 0
};

// Contract Methods
function getValidationRules() {
return VALIDATION_RULES;
}

function getStrengthThresholds() {
return STRENGTH_THRESHOLDS;
}

function getContractInfo() {
return {
version: CONTRACT_VERSION,
network: NETWORK,
builtOn: BUILT_ON,
totalScore: Object.values(VALIDATION_RULES)
.reduce((sum, rule) => sum + (rule.score || 0), 0)
};
}

function validateScore(score) {
if (score >= STRENGTH_THRESHOLDS.STRONG) return 'STRONG';
if (score >= STRENGTH_THRESHOLDS.MEDIUM) return 'MEDIUM';
return 'WEAK';
}

function isBlacklisted(word) {
return VALIDATION_RULES.obviousWords.blacklist.includes(
word.toLowerCase()
);
}

function isValidWordCount(count) {
return VALIDATION_RULES.wordCount.valid.includes(count);
}

module.exports = {
getValidationRules,
getStrengthThresholds,
getContractInfo,
validateScore,
isBlacklisted,
isValidWordCount,
VALIDATION_RULES,
STRENGTH_THRESHOLDS,
CONTRACT_VERSION,
NETWORK,
BUILT_ON
};
```
149 changes: 149 additions & 0 deletions contract/protocol.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
// Seed Phrase Checker - P2P Protocol Handler
// Built on IntercomSwap - Trac Network

'use strict';

const PROTOCOL_VERSION = '1.0.0';
const NETWORK = 'Trac Network';
const BUILT_ON = 'IntercomSwap';

// Protocol Configuration
const PROTOCOL_CONFIG = {
name: 'seed-phrase-checker',
version: PROTOCOL_VERSION,
network: NETWORK,
builtOn: BUILT_ON,
port: 3000,
maxConnections: 100,
timeout: 30000,
retryAttempts: 3,
retryDelay: 1000
};

// Message Types
const MESSAGE_TYPES = {
CHECK_PHRASE: 'check_phrase',
PHRASE_RESULT: 'phrase_result',
HEALTH_CHECK: 'health_check',
HEALTH_RESPONSE: 'health_response',
ERROR: 'error',
PING: 'ping',
PONG: 'pong'
};

// Protocol State
const STATE = {
IDLE: 'idle',
CHECKING: 'checking',
CONNECTED: 'connected',
DISCONNECTED: 'disconnected',
ERROR: 'error'
};

// Message Builder
function buildMessage(type, payload = {}) {
return {
type,
payload,
network: NETWORK,
builtOn: BUILT_ON,
version: PROTOCOL_VERSION,
timestamp: new Date().toISOString()
};
}

// Request Handler
function handleRequest(type, data) {
switch (type) {
case MESSAGE_TYPES.CHECK_PHRASE:
return buildMessage(MESSAGE_TYPES.PHRASE_RESULT, {
status: 'processing',
data
});
case MESSAGE_TYPES.HEALTH_CHECK:
return buildMessage(MESSAGE_TYPES.HEALTH_RESPONSE, {
status: 'ok',
network: NETWORK,
builtOn: BUILT_ON,
version: PROTOCOL_VERSION
});
case MESSAGE_TYPES.PING:
return buildMessage(MESSAGE_TYPES.PONG, {
status: 'ok',
timestamp: new Date().toISOString()
});
default:
return buildMessage(MESSAGE_TYPES.ERROR, {
status: 'error',
message: `Unknown message type: ${type}`
});
}
}

// Connection Manager
function createConnection(config = {}) {
const connection = {
...PROTOCOL_CONFIG,
...config,
state: STATE.IDLE,
connectedAt: null,
messageCount: 0
};

return {
connect() {
connection.state = STATE.CONNECTED;
connection.connectedAt = new Date().toISOString();
console.log(`✅ Connected to ${NETWORK} via ${BUILT_ON}`);
return connection;
},
disconnect() {
connection.state = STATE.DISCONNECTED;
console.log(`❌ Disconnected from ${NETWORK}`);
return connection;
},
send(type, payload) {
connection.messageCount++;
return handleRequest(type, payload);
},
getState() {
return connection.state;
},
getInfo() {
return {
...connection,
uptime: connection.connectedAt
? Date.now() - new Date(connection.connectedAt).getTime()
: 0
};
}
};
}

// Protocol Logger
function log(message, level = 'info') {
const levels = {
info: '📡',
warn: '⚠️',
error: '❌',
success: '✅'
};
const emoji = levels[level] || '📡';
console.log(
`${emoji} [${NETWORK}] [${new Date().toISOString()}] ${message}`
);
}

module.exports = {
PROTOCOL_CONFIG,
MESSAGE_TYPES,
STATE,
buildMessage,
handleRequest,
createConnection,
log,
PROTOCOL_VERSION,
NETWORK,
BUILT_ON
};
```
53 changes: 53 additions & 0 deletions dev/notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<!-- updated -->
# Developer Notes
Built on IntercomSwap - Trac Network

## Project Overview
Seed Phrase Checker is a TRAC-themed web app that checks
the strength and security of crypto wallet seed phrases.
100% local - nothing is ever sent to any server.

## Architecture
- Frontend: Pure HTML/CSS/JS (index.html)
- Backend: Node.js + Express (server.js)
- Core Logic: src/checker.js
- Tests: test/test.js
- Run Script: scripts/run.sh

## How It Works
1. User enters seed phrase in browser
2. JavaScript checks the phrase locally
3. Results shown instantly in browser
4. Nothing sent to server ever

## Security Decisions
- All checks run in browser only
- No API calls made
- No database used
- No logging of seed phrases
- Auto-clear on page refresh

## Code Structure
index.html — Main UI and frontend logic
server.js — Express server (serves index.html)
src/checker.js — Core checking logic (reusable)
test/test.js — Unit tests
scripts/run.sh — Easy run script

## Development Setup
npm install
npm start
open http://localhost:3000

## Testing
node test/test.js

## Built On
- IntercomSwap by Trac Systems
- Trac Network
- Node.js + Express

## Competition Entry
- Intercom Vibe Competition
- Category: IntercomSwap Fork
- Unique: First seed phrase checker on Trac Network
Loading