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 / 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_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 / 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 / comrades-holders-snapshot-2025-08-28.csv
Created August 28, 2025 16:42
Calldata Comrades Snapshot of holders, 2025-08-28 T 16:40:30.016Z
We can't make this file beautiful and searchable because it's too large.
ethscription_id,holder
0xa242d9913b5411dee0c0335c144159b450b43f1693807b43ef365391a154b667,0xebfd774c1c2008e56ce40e0a4504ebecc81b1921
0x02d03d758a346d3f7fb640440f468e1d76deb58ac8a8d03fef7477b19b3cf01f,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
0x59d9247614e28661bf6db605705c7131d8d1efe48832c9a0beb8429ee797f484,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
0x5e3515ddc974d51fa78b8ca30965c6b7019cae9105fbd69be0fb026a42bad6aa,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
0x2f17891f1038ea0f5e27cd6709aa45bbe7cc794ecae39c9586512ed40bc82c1d,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
0x85376f274f28e90f841b58d7e0ef03ac0a94cdf484c27c88cbc4f8b89346ceb6,0xbac5c05feacef303d742ba8e32365bc37c51dc2c
0xdb7480ba954e267a82d607db0b0008808de1ddec102fa3f778fec566aedf6b0b,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
0xf5219c89ca6d2b5ffb8ef99d9d529cfd8115fade56ec511d9e9b32493f199442,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
0x661958fb07d997ac6698da2f6b6a01faf68213f48c68d323fdef509eaadbfefe,0x06b65134068034952e45a1cd8ed92ae94a79c2e1
@tunnckoCore
tunnckoCore / inputs.ts
Last active August 22, 2025 16:43
few test cases of ethereum calldata for easier Ethscriptions indexing, we can safely ignore ones that are not `inputData.length % 64 === 0`
const inputs = {
mevbots: `0x7000000000000000000000000000000063793f12b9fbd30ed1c997cfe82480981b05464000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a33acb7ef000000000000000000000000000000000000000000047497646152b5c0000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000004cd3db4c3e9c00000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000b2ef20f0e2548f3dc556c100000000000000000000000000000000000000000000000000000000000000640000000000000000000000004838b106fce9647bdf1e7877bf73ce8b0bad5f97`,
erc20transferTo: `0xa9059cbb0000000000000000000000009f2d6d0b0baa32a505e1ee13751a8acfcb338a060000000000000000000000000000000000000000000000000000000114dd1340`,
erc20approve: `0x095ea7b3000000000000000000000000c026395860db2d07ee33e05fe50ed7bd583189c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`,
handleOps: `0x765e827f000