Skip to content

Instantly share code, notes, and snippets.

View tunnckoCore's full-sized avatar
🔒
Fighting for freedom, security and privacy 🔐

Charlike Mike Reagent tunnckoCore

🔒
Fighting for freedom, security and privacy 🔐
View GitHub Profile
@tunnckoCore
tunnckoCore / .zshrc
Created January 17, 2026 02:26 — forked from jnsahaj/.zshrc
Peter Steinberger's Multiple Checkout aliases
# Create a new clone and branch for parallel development.
# Usage: ga <branch-name> [base-branch]
ga() {
if [[ -z "$1" ]]; then
echo "Usage: ga <branch-name> [base-branch]"
return 1
fi
local branch="$1"
local repo_name="$(basename "$PWD")"
local repo_url="$(git remote get-url origin)"
@tunnckoCore
tunnckoCore / 1_ethscriptions-social-README.md
Last active November 30, 2025 21:22
WGW.black - social network for Ethscriptions

wgw.black

Protocol for social networking built on Ethscriptions. Cuz I'm sick and tired of Twitter.

Previously i had Likes For Ethscriptions, but it was very early and.. not that extensible.

There's also TIC meta protocol by Chopper, it's fine for comments & reactions.

Here's what i think and need:

@tunnckoCore
tunnckoCore / 0_SecureReleaseProtocol.md
Last active November 29, 2025 15:59
Secure Release Protocol for node/typescript/npm packages, without publishing to NPM registry. Everything is secured by Github features, and it's Github-only and Github-native.

Secure Release Protocol

This document outlines the secure, tamper-resistant release protocol for npm packages. The setup uses GitHub Actions workflows to automate building, attesting provenance, and releasing packages while enforcing immutability through repository rulesets. This ensures that releases are verifiable, auditable, and protected against unauthorized modifications.

Overview

The protocol consists of two chained GitHub Actions workflows:

  1. Build & Push Workflow: Handles building the package and pushing built artifacts to a dedicated release branch.
  2. Attest & Release Workflow: Triggered only after a successful build; generates Sigstore attestations, creates GitHub releases, uploads assets.
@tunnckoCore
tunnckoCore / example.ts
Created November 28, 2025 06:53
Basic send BTC from WIF/privateKey
// Example usage
const privateKeyWIF = "WIF_HERE";
const recipientAddress = `bc1pk42g9szvyl7xxdpdszn5ql6ce2mzc0wmy05y97qfmu7hs8uftnns5tc37k`;
const amount = 32000;
const feeRate = 1;
sendBTC(privateKeyWIF, recipientAddress, amount, feeRate)
.then((result) => {
console.log("Send successful:", result);
@tunnckoCore
tunnckoCore / convex-queue.ts
Created November 6, 2025 21:19
civex queue pattern
// Enqueue an email
export const enqueueEmail = mutation({
args: { recipient: v.string(), body: v.string() },
handler: async (ctx, args) => {
await ctx.db.insert("emails", args);
}
});
// Process a batch of emails (e.g., the first 10)
export const processBatchOfEmails = mutation({
const foo = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 },
{ name: "Charlie", age: 35 },
{ name: "David", age: 40 },
];
export type Item = { name: string; age: number };
export async function foobar(collection: Item[]) {
@tunnckoCore
tunnckoCore / 0xnekos-eths.json
Last active October 28, 2025 03:58
Metadata for 0xNeko NFTs, Ordinals, and Ethscriptions
[
{
"block_hash": "0x63b52be2e50bc426e23d3d29638acc054f5d77abd0ab15a5913f62046c138c00",
"block_number": 17673466,
"block_timestamp": 1689116087,
"content_sha": "0x3420e1c19389a3cac01ae5b6ab21cf8a54762b8ef25dd7c7cf4342c02af1c2c4",
"creator": "0xa20c07f94a127fd76e61fbea1019cce759225002",
"current_owner": "0xa20c07f94a127fd76e61fbea1019cce759225002",
"event_log_index": null,
"id": "0x77469acb50576b226f04949c54f39dd99989581cd7a5716b6b496ed90d001e5b",
@tunnckoCore
tunnckoCore / fetch-all-nekos.ts
Last active October 2, 2025 02:42
Fetcher for all 192 ethscribed 0xNekos OG - could output item by item, or a collection manifest
import * as cheerio from "cheerio";
export type Attribute = {
trait_type: string;
value: string;
};
export type CollectionItem = {
id: string;
index: number;
@tunnckoCore
tunnckoCore / 1_unique-holders.csv
Last active September 30, 2025 05:32
Hypurr Snapshot, Sept 30, 2025. - Holders & Unique Holders. Search yourself with canonical address (case-sensitive), usually what's in your metamask or in the etherscan page of your address.
owner
0x50812D1D77027DA036D5F768BEfEd24f2595a6dA
0x72651A2c33888DBd30Cf783704f02F86ce6Aa36F
0xeb769d8db951064bB2dEFa04e0E750e2694930fB
0x566339480990eAdEe8f30153785e580df875E2Bd
0x4a809bF97E2A8D5E2b2a89fCC24c064AbAaffd07
0x673025e41c7bd5dB7d26eebAc75D78aB10051236
0x7161b0519646080Cb243d725b3879489Efe978b7
0x8D275E8Ed678985a522160Eca69C2c0Fb5FA8dE9
0x087C01d466824a47c0077F4bbeCA3D4626Eb607B
@tunnckoCore
tunnckoCore / orpc-router-to-mcp-tools.ts
Created March 29, 2025 17:05
converting oRPC routers to MCP tools - beginning, it's buggy.. can't figure out how to provide the procedure's inputSchema as mcp tool schema... should be `inputSchema.shape` but.. it errors
interface McpToolResult {
content: Array<{ type: string; text: string }>;
isError?: boolean;
}
interface OrpcProcedureMeta {
meta?: {
tool_name?: string;
};