<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mojopuzzler.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gneale</id>
	<title>mojo_puzzler - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mojopuzzler.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gneale"/>
	<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php/Special:Contributions/Gneale"/>
	<updated>2026-04-23T07:16:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Informatics&amp;diff=13950</id>
		<title>Informatics</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Informatics&amp;diff=13950"/>
		<updated>2024-05-03T14:35:20Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;* CFG - Useful Links&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CFG - Useful Links]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=CFG_-_Useful_Links&amp;diff=13949</id>
		<title>CFG - Useful Links</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=CFG_-_Useful_Links&amp;diff=13949"/>
		<updated>2024-05-03T14:34:32Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Informatics]] =====&lt;br /&gt;
* https://cfg-corp-app01.fusionehr.com/ehr - '''FEHR Corporate Environment'''&lt;br /&gt;
* https://clinicalforge.com - '''Clinical Forge - New Fusion form editor '''&lt;br /&gt;
* https://fusioncorp.atlassian.net/servicedesk/customer/portals - '''Fusion Helpdesk'''&lt;br /&gt;
* https://helpdesk.cfgpc.com/WOListView.do - '''CFG Helpdesk'''&lt;br /&gt;
* https://cfgportal.cfgpc.com/ - '''CFG Portal'''&lt;br /&gt;
* https://fusionehr.docebosaas.com/ - '''Fusion LMS'''&lt;br /&gt;
* https://portal.coremr.com/ - '''CorEMR portal'''&lt;br /&gt;
* https://intranet.cfgpc.com/MyTeam/Corrections&lt;br /&gt;
* https://coremr-train.cfgpc.com/ - '''CorEMR Training v6 '''&lt;br /&gt;
* https://coremr-atlantic.cfgpc.com/login.php - '''Atlantic County - CorEMR v6.x AKA &amp;quot;Build System&amp;quot;''' &lt;br /&gt;
* https://ehr.fusionmgt.com/RDWeb/Pages/en-US/default.aspx '''RDWeb - Essex/Ocean'''&lt;br /&gt;
* https://fc-rdweb.fusionmgt.com/rdweb/pages/ - '''RDWeb - Albany/Camden'''&lt;br /&gt;
* https://cfgportal.cfgpc.com/RDWeb/Pages/en-US/login.aspx?ReturnUrl=/RDWeb/Pages/en-US/Default.aspx - '''CFG Portal - Burlington/Union'''&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=CFG_-_Useful_Links&amp;diff=13948</id>
		<title>CFG - Useful Links</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=CFG_-_Useful_Links&amp;diff=13948"/>
		<updated>2024-05-03T14:33:54Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Informatics ===== * https://cfg-corp-app01.fusionehr.com/ehr - '''FEHR Corporate Environment''' * https://clinicalforge.com - '''Clinical Forge - New Fusion form editor ''' * https://fusioncorp.atlassian.net/servicedesk/customer/portals - '''Fusion Helpdesk''' * https://helpdesk.cfgpc.com/WOListView.do - '''CFG Helpdesk''' * https://cfgportal.cfgpc.com/ - '''CFG Portal''' * https://fusionehr.docebosaas.com/ - '''Fusion LMS''' * https://portal.coremr....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Informatics]] =====&lt;br /&gt;
* https://cfg-corp-app01.fusionehr.com/ehr - '''FEHR Corporate Environment'''&lt;br /&gt;
* https://clinicalforge.com - '''Clinical Forge - New Fusion form editor '''&lt;br /&gt;
* https://fusioncorp.atlassian.net/servicedesk/customer/portals - '''Fusion Helpdesk'''&lt;br /&gt;
* https://helpdesk.cfgpc.com/WOListView.do - '''CFG Helpdesk'''&lt;br /&gt;
* https://cfgportal.cfgpc.com/ - '''CFG Portal'''&lt;br /&gt;
* https://fusionehr.docebosaas.com/ - '''Fusion LMS'''&lt;br /&gt;
* https://portal.coremr.com/ - '''CorEMR portal'''&lt;br /&gt;
* https://intranet.cfgpc.com/MyTeam/Corrections&lt;br /&gt;
* \\mrl-web01\intranetfiles_Corrections$\Blue Jean Training Videos (to add/remove custom videos).&lt;br /&gt;
* file:///J:/Corrections-folder/EMR/Reports/Centricity_Practice_Solution_12.0_GA/Centricity%20Practice%20Solution%2012.0/StartPage.htm   - '''Centricity Database Schema'''&lt;br /&gt;
* https://coremr-train.cfgpc.com/ - '''CorEMR Training v6 '''&lt;br /&gt;
* https://coremr-atlantic.cfgpc.com/login.php - '''Atlantic County - CorEMR v6.x AKA &amp;quot;Build System&amp;quot;''' &lt;br /&gt;
* https://ehr.fusionmgt.com/RDWeb/Pages/en-US/default.aspx '''RDWeb - Essex/Ocean'''&lt;br /&gt;
* https://fc-rdweb.fusionmgt.com/rdweb/pages/ - '''RDWeb - Albany/Camden'''&lt;br /&gt;
* https://cfgportal.cfgpc.com/RDWeb/Pages/en-US/login.aspx?ReturnUrl=/RDWeb/Pages/en-US/Default.aspx - '''CFG Portal - Burlington/Union'''&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=CFG&amp;diff=13947</id>
		<title>CFG</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=CFG&amp;diff=13947"/>
		<updated>2024-05-03T14:33:27Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[CFG - Useful Links]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=13946</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=13946"/>
		<updated>2024-05-03T14:31:49Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Mojo Puzzler!==&lt;br /&gt;
The home for system-based fun. We love Chia blockchain!&lt;br /&gt;
* [[Chialisp]]&lt;br /&gt;
* [[NFT]]&lt;br /&gt;
* [[Insightful Comments|Insightful Comments]]&lt;br /&gt;
* [[Tutorial Hints]]&lt;br /&gt;
* [[XCH Price]]&lt;br /&gt;
* [[Database]]&lt;br /&gt;
* [[Github setup notes]]&lt;br /&gt;
* [[Useful links]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=CFG&amp;diff=13945</id>
		<title>CFG</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=CFG&amp;diff=13945"/>
		<updated>2024-05-03T14:31:09Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;test&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=13944</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=13944"/>
		<updated>2024-05-03T14:30:54Z</updated>

		<summary type="html">&lt;p&gt;Gneale: /* Welcome to Mojo Puzzler! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Mojo Puzzler!==&lt;br /&gt;
The home for system-based fun. We love Chia blockchain!&lt;br /&gt;
* [[Chialisp]]&lt;br /&gt;
* [[NFT]]&lt;br /&gt;
* [[Insightful Comments|Insightful Comments]]&lt;br /&gt;
* [[Tutorial Hints]]&lt;br /&gt;
* [[XCH Price]]&lt;br /&gt;
* [[Database]]&lt;br /&gt;
* [[Github setup notes]]&lt;br /&gt;
* [[Useful links]]&lt;br /&gt;
* [[CFG]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=13943</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=13943"/>
		<updated>2024-05-03T14:29:15Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Protected &amp;quot;Main Page&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Mojo Puzzler!==&lt;br /&gt;
The home for system-based fun. We love Chia blockchain!&lt;br /&gt;
* [[Chialisp]]&lt;br /&gt;
* [[NFT]]&lt;br /&gt;
* [[Insightful Comments|Insightful Comments]]&lt;br /&gt;
* [[Tutorial Hints]]&lt;br /&gt;
* [[XCH Price]]&lt;br /&gt;
* [[Database]]&lt;br /&gt;
* [[Github setup notes]]&lt;br /&gt;
* [[Useful links]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Useful_links&amp;diff=13843</id>
		<title>Useful links</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Useful_links&amp;diff=13843"/>
		<updated>2024-02-20T19:26:37Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* http://mojopuzzler.org - Homepage&lt;br /&gt;
* https://xchdev.com/faucet/index.php&lt;br /&gt;
* https://github.com/richardkiss/contract_patterns&lt;br /&gt;
* https://github.com/richardkiss/chiaswap&lt;br /&gt;
* https://dkackman.github.io/chia-api/&lt;br /&gt;
* https://github.com/kimsk/chia-concepts&lt;br /&gt;
* https://aggsig.me&lt;br /&gt;
* https://docs.google.com/document/u/0/d/1x2PHn1qnMESc9RhPiBflDHWKoch2K0ds50brfSc7LPc/mobilebasic&lt;br /&gt;
* https://www.youtube.com/watch?v=NJydOPMLxBg&lt;br /&gt;
* https://github.com/geraldneale/py-blink_mojo-secure&lt;br /&gt;
* https://github.com/Chia-Network/bls-signatures/tree/main/python-bindings&lt;br /&gt;
* https://docs.chia.net/rpc/&lt;br /&gt;
* https://github.com/Chia-Network/internal-custody&lt;br /&gt;
* https://github.com/Chia-Network/chia-blockchain/branches&lt;br /&gt;
* https://github.com/geoffwalmsley/clsp-template&lt;br /&gt;
* https://web.archive.org/web/20211129001730/https://www.chia.net/2021/05/27/Agrgregated-Sigs-Taproot-Graftroot.html&lt;br /&gt;
* https://mixch.dev/#/tools/address&lt;br /&gt;
&lt;br /&gt;
==Random:==&lt;br /&gt;
* https://api.mintgarden.io/docs&lt;br /&gt;
* https://rudolfachter.github.io/blockchain-stuff/public/chia/splitting_coins_for_offers/&lt;br /&gt;
* https://pawket.app/#/clvm&lt;br /&gt;
* https://github.com/steppsr/txch-faucet&lt;br /&gt;
* https://gist.github.com/thechiaplot/639fceffaa3e3040e2de002a07ed4344 Original duststorm code(alleged)&lt;br /&gt;
* https://github.com/trgarrett/chialisp/blob/a8b3400f88138b499ff62c437ab6927988d213e7/royalty_share/clsp/archives/p2_royalty_share_equal_max_fee_nocat/p2_royalty_share_equal_max_fee_nocat.clsp#L1&lt;br /&gt;
* https://github.com/Chia-Network/chia-blockchain/pull/1469 '''Atomic Swap example:''' Basically, the original owner can claim the coins back after a time delay, or the other party can unlock and claim them with a valid preimage.&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Errors&amp;diff=13725</id>
		<title>Errors</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Errors&amp;diff=13725"/>
		<updated>2024-01-25T18:23:44Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
&amp;lt;h1&amp;gt;path into atom&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;quot;Typically path into atom means your chialisp is trying to traverse a list, but you've given it an atom. So either drop parentheses in the chialisp[puzzle], or add them in the solution&amp;quot;. -GWalmsley 20240121&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Errors&amp;diff=13724</id>
		<title>Errors</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Errors&amp;diff=13724"/>
		<updated>2024-01-25T18:23:11Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments ===== &amp;lt;h1&amp;gt;path into atom&amp;lt;/h1&amp;gt; &amp;quot;Typically path into atom means your chialisp is trying to traverse a list, but you've given it an atom. So either drop parentheses in the chialisp[puzzle], or add them in the solution&amp;quot;.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
&amp;lt;h1&amp;gt;path into atom&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;quot;Typically path into atom means your chialisp is trying to traverse a list, but you've given it an atom. So either drop parentheses in the chialisp[puzzle], or add them in the solution&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Insightful_Comments&amp;diff=13723</id>
		<title>Insightful Comments</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Insightful_Comments&amp;diff=13723"/>
		<updated>2024-01-25T18:21:29Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[Singleton comments]]&lt;br /&gt;
* [[Securing spend with announcements - overview]]&lt;br /&gt;
* [[Puzzle hints]]&lt;br /&gt;
* [[Identifying CATs]]&lt;br /&gt;
* [[Getting started with PRs - Quex]]&lt;br /&gt;
*[[Signature creation in Python3]]&lt;br /&gt;
*[[Signature tracing]]&lt;br /&gt;
*[[Timed events]]&lt;br /&gt;
*[[Cancelling a coin]]&lt;br /&gt;
*[[Length of a list]]&lt;br /&gt;
*[[Graftroot Quexington]]&lt;br /&gt;
*[[Block Composition]]&lt;br /&gt;
*[[Simplest puzzles for testing]]&lt;br /&gt;
* '''Inline Functions''' - &amp;quot;General rule of thumb is to use inline except when you have a good reason not to. Keep in mind that if you're getting a weird error, it's probably good to change your inlines to regular functions for debugging purposes.&amp;quot;&lt;br /&gt;
*[[Intercoin Communication]]&lt;br /&gt;
*[[Errors]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Insightful_Comments&amp;diff=13722</id>
		<title>Insightful Comments</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Insightful_Comments&amp;diff=13722"/>
		<updated>2024-01-25T18:20:50Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[Singleton comments]]&lt;br /&gt;
* [[Securing spend with announcements - overview]]&lt;br /&gt;
* [[Puzzle hints]]&lt;br /&gt;
* [[Identifying CATs]]&lt;br /&gt;
* [[Getting started with PRs - Quex]]&lt;br /&gt;
*[[Signature creation in Python3]]&lt;br /&gt;
*[[Signature tracing]]&lt;br /&gt;
*[[Timed events]]&lt;br /&gt;
*[[Cancelling a coin]]&lt;br /&gt;
*[[Length of a list]]&lt;br /&gt;
*[[Graftroot Quexington]]&lt;br /&gt;
*[[Block Composition]]&lt;br /&gt;
*[[Simplest puzzles for testing]]&lt;br /&gt;
* '''Inline Functions''' - &amp;quot;General rule of thumb is to use inline except when you have a good reason not to. Keep in mind that if you're getting a weird error, it's probably good to change your inlines to regular functions for debugging purposes.&amp;quot;&lt;br /&gt;
*[[Intercoin Communication]]&lt;br /&gt;
*[[sha256tree RKiss]]&lt;br /&gt;
*[[Errors]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13720</id>
		<title>Signatures</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13720"/>
		<updated>2024-01-21T17:08:47Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Commands:&amp;lt;/H1&amp;gt;&lt;br /&gt;
 chia keys show --show-mnemonic-seed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Links:&amp;lt;/H1&amp;gt;&lt;br /&gt;
* https://docs.chia.net/guides/crash-course/signatures/&lt;br /&gt;
* https://github.com/geoffwalmsley/clsp-template/blob/379fde144a5878921fd3364368f6d81bd5a5a110/src/utils/sim.py#L136&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13719</id>
		<title>Signatures</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13719"/>
		<updated>2024-01-21T17:07:32Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Commands:&amp;lt;/H1&amp;gt;&lt;br /&gt;
 chia keys show --show-mnemonic-seed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Links:&amp;lt;/H1&amp;gt;&lt;br /&gt;
* https://docs.chia.net/guides/crash-course/signatures/&lt;br /&gt;
* https://github.com/geoffwalmsley/clsp-template/blob/379fde144a5878921fd3364368f6d81bd5a5a110/src/utils/sim.py#L51C34-L51C57&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13718</id>
		<title>Signatures</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13718"/>
		<updated>2024-01-21T01:28:57Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Commands:&amp;lt;/H1&amp;gt;&lt;br /&gt;
 chia keys show --show-mnemonic-seed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Links:&amp;lt;/H1&amp;gt;&lt;br /&gt;
* https://docs.chia.net/guides/crash-course/signatures/&lt;br /&gt;
* https://github.com/geoffwalmsley/clsp-template&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13717</id>
		<title>Signatures</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signatures&amp;diff=13717"/>
		<updated>2024-01-20T22:53:54Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Commands:&amp;lt;/H1&amp;gt;&lt;br /&gt;
 chia keys show --show-mnemonic-seed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Useful Links:&amp;lt;/H1&amp;gt;&lt;br /&gt;
* https://github.com/geoffwalmsley/clsp-template&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Useful_CDV_examples&amp;diff=13688</id>
		<title>Useful CDV examples</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Useful_CDV_examples&amp;diff=13688"/>
		<updated>2023-12-27T15:51:10Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
* [[cdv rpc blocks -s x -e y]] - For looking at block outputs&lt;br /&gt;
* [[cdv inspect spendbundles ./spend_bundle.json -db|cdv inspect spendbundles ./spendbundle.json -db]]&lt;br /&gt;
* [[cdv inspect --id coins]] - For getting coinID&lt;br /&gt;
* [[cdv rpc coinrecords --by id]] - To get parent coinID and spent block height.&lt;br /&gt;
* [[cdv clsp treehash trigger.clvm| cdv clsp treehash trigger.clvm.hex]] - To verify puzzle you have revealed is the one committed to in the coin.&lt;br /&gt;
* [[cdv rpc coinrecords --by puzhash]] -nd&lt;br /&gt;
* [[cdv rpc blockspends --by id]] - To get puzzle reveal and solution.&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Useful_CDV_examples&amp;diff=13687</id>
		<title>Useful CDV examples</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Useful_CDV_examples&amp;diff=13687"/>
		<updated>2023-12-27T15:48:40Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
* [[cdv rpc blocks -s x -e y]] - For looking at block outputs&lt;br /&gt;
* [[cdv inspect spendbundles ./spend_bundle.json -db|cdv inspect spendbundles ./spendbundle.json -db]]&lt;br /&gt;
* [[cdv inspect --id coins]] - For getting coinID&lt;br /&gt;
* [[cdv rpc coinrecords --by id]] - To get parent coinID and spent block height.&lt;br /&gt;
* [[cdv clsp treehash trigger.clvm| cdv clsp treehash trigger.clvm.hex]] - To verify puzzle you have revealed is the one committed to in the coin.&lt;br /&gt;
* [[cdv rpc coinrecords --by puzhash]]&lt;br /&gt;
* [[cdv rpc blockspends --by id]] - To get puzzle reveal and solution.&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=NFT&amp;diff=13674</id>
		<title>NFT</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=NFT&amp;diff=13674"/>
		<updated>2023-12-10T00:24:54Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==NFT - minting script using python3==&lt;br /&gt;
* https://github.com/geraldneale/chia-nft-add_uris - Automated system of aggregating all NFTs in a &amp;quot;wallet&amp;quot; and updating the URIs in bulk.&lt;br /&gt;
* Mintgarden API command - curl -s https://api.mintgarden.io/collections/col1mzg4s7q09030tew2xj3rjck2rz77tlt94ekmrqe6l6dm260qhx5qu3a9ds/nfts/ids | jq -r '.[]| .encoded_id'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other useful links:&lt;br /&gt;
* https://devs.chia.net/guides/nft-developer-guide&lt;br /&gt;
* https://github.com/zakhikhan/chia-nft-minting-helper&lt;br /&gt;
* https://dkackman.github.io/chia-api/static/wallet.html#api-NFTWallet&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=NFT&amp;diff=13673</id>
		<title>NFT</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=NFT&amp;diff=13673"/>
		<updated>2023-12-10T00:24:35Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==NFT - minting script using python3==&lt;br /&gt;
* https://github.com/geraldneale/chia-nft-add_uris - Automated system of aggregating all NFTs in a &amp;quot;wallet&amp;quot; and updating the URIs in bulk.&lt;br /&gt;
* Mintgarden API command - curl -s https://api.mintgarden.io/collections/col1mzg4s7q09030tew2xj3rjck2rz77tlt94ekmrqe6l6dm260qhx5qu3a9ds/nfts/ids | jq -r '.[] | .encoded_id'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other useful links:&lt;br /&gt;
* https://devs.chia.net/guides/nft-developer-guide&lt;br /&gt;
* https://github.com/zakhikhan/chia-nft-minting-helper&lt;br /&gt;
* https://dkackman.github.io/chia-api/static/wallet.html#api-NFTWallet&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=12974</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Main_Page&amp;diff=12974"/>
		<updated>2023-11-25T01:36:17Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Reverted edits by LidaSymonds14 (talk) to last revision by Gneale&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Mojo Puzzler!==&lt;br /&gt;
The home for system-based fun. We love Chia blockchain!&lt;br /&gt;
* [[Chialisp]]&lt;br /&gt;
* [[NFT]]&lt;br /&gt;
* [[Insightful Comments|Insightful Comments]]&lt;br /&gt;
* [[Tutorial Hints]]&lt;br /&gt;
* [[XCH Price]]&lt;br /&gt;
* [[Database]]&lt;br /&gt;
* [[Github setup notes]]&lt;br /&gt;
* [[Useful links]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=File:Austi-powers-costumev3-2.png&amp;diff=8001</id>
		<title>File:Austi-powers-costumev3-2.png</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=File:Austi-powers-costumev3-2.png&amp;diff=8001"/>
		<updated>2023-11-22T14:05:55Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=File:Mojo_puzzler3.png&amp;diff=7111</id>
		<title>File:Mojo puzzler3.png</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=File:Mojo_puzzler3.png&amp;diff=7111"/>
		<updated>2023-11-21T23:16:40Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=File:Mojo_logo2.png&amp;diff=7103</id>
		<title>File:Mojo logo2.png</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=File:Mojo_logo2.png&amp;diff=7103"/>
		<updated>2023-11-21T23:10:58Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=File:Rkiss.png&amp;diff=7070</id>
		<title>File:Rkiss.png</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=File:Rkiss.png&amp;diff=7070"/>
		<updated>2023-11-21T19:37:09Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=File:Mojo_logo.png&amp;diff=7065</id>
		<title>File:Mojo logo.png</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=File:Mojo_logo.png&amp;diff=7065"/>
		<updated>2023-11-21T19:35:04Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Sha256tree_RKiss&amp;diff=2466</id>
		<title>Sha256tree RKiss</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Sha256tree_RKiss&amp;diff=2466"/>
		<updated>2023-11-18T02:08:50Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments ===== &amp;lt;gallery&amp;gt; Rkiss.PNG|Caption 3 &amp;lt;/gallery&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Rkiss.PNG|Caption 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Intercoin_Communication&amp;diff=2465</id>
		<title>Intercoin Communication</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Intercoin_Communication&amp;diff=2465"/>
		<updated>2023-11-18T02:08:30Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments ===== Keybase 20211023:  Q: Any wisdom on the differences/use-cases between CREATE_COIN_ANNOUNCEMENT and CREATE_PUZZLE_ANNOUNCEMENT?  A (gneale):   CREATE_COIN_ANNOUNCEMENT versus CREATE_PUZZLE_ANNOUNCEMENT is not that big of a difference code-wise, but usage-wise it is vast. Basically, the coinID dependency is much stricter, like one and done. The assertion coin is looking for that one announcement coin with t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
Keybase 20211023:&lt;br /&gt;
&lt;br /&gt;
Q: Any wisdom on the differences/use-cases between CREATE_COIN_ANNOUNCEMENT and CREATE_PUZZLE_ANNOUNCEMENT?&lt;br /&gt;
&lt;br /&gt;
A (gneale): &lt;br /&gt;
&lt;br /&gt;
CREATE_COIN_ANNOUNCEMENT versus CREATE_PUZZLE_ANNOUNCEMENT is not that big of a difference code-wise, but usage-wise it is vast. Basically, the coinID dependency is much stricter, like one and done. The assertion coin is looking for that one announcement coin with that  one ID and if it gets spent in a different block than the assertion then the assertion coin is locked unspent forever. In contrast, puzzle_hash assertion is looser in that if one announcement is missed another can come later from that same puzzle_hash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Comment1:''' That actually used to be the implementation of announcements funny enough.  You would create a zero value coin and then consume it and another coin would assert that it had been consumed. Announcements are much nicer. - Quexington 20210909&lt;br /&gt;
* '''Comment2:''' Zero value coins are still useful for &amp;quot;announcements&amp;quot; that last longer than the block they're created it (but you've got to make a spend for them and all that good stuff) - Matt Howard 20210909&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Simplest_puzzles_for_testing&amp;diff=2464</id>
		<title>Simplest puzzles for testing</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Simplest_puzzles_for_testing&amp;diff=2464"/>
		<updated>2023-11-18T02:07:36Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments =====  &amp;lt;h2&amp;gt;Example 1&amp;lt;/h2&amp;gt;keybase://chat/chia_network.public#chialisp/6836 Q: Is it the case that a coin locked with the puzzle '()' can be spent always? Or should it be '(1)'?  A: The puzzle can actually just be `1` yes which just returns whatever you pass in the solution. We use it a lot for testing. &amp;lt;h2&amp;gt;Example 2&amp;lt;/h2&amp;gt; &amp;lt;code&amp;gt;(mod () (q (51 0x656214f18f80a85a30f97cafa0fdfd29578d5e8030316b21e36552f9172c49d1 0x01...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Example 1&amp;lt;/h2&amp;gt;keybase://chat/chia_network.public#chialisp/6836&lt;br /&gt;
Q: Is it the case that a coin locked with the puzzle '()' can be spent always? Or should it be '(1)'?&lt;br /&gt;
&lt;br /&gt;
A: The puzzle can actually just be `1` yes which just returns whatever you pass in the solution. We use it a lot for testing.&lt;br /&gt;
&amp;lt;h2&amp;gt;Example 2&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;(mod () (q (51 0x656214f18f80a85a30f97cafa0fdfd29578d5e8030316b21e36552f9172c49d1 0x01)))&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Block_Composition&amp;diff=2461</id>
		<title>Block Composition</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Block_Composition&amp;diff=2461"/>
		<updated>2023-11-18T02:07:07Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments =====  &amp;lt;h2&amp;gt;Question: Is there a limit per bundle?&amp;lt;/h2&amp;gt; 2021-09-01 &amp;quot;efishcent&amp;quot; said the following on Keybase channel chialisp:   Answers from dev on your question: technically, a block is a single spend bundle (with a single aggregate signature). Right now our farmer limits the cost of included transactions to 0.5 of max (called limit_factor in the code). Presumably more to your question though, the mempool also...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Question: Is there a limit per bundle?&amp;lt;/h2&amp;gt;&lt;br /&gt;
2021-09-01&lt;br /&gt;
&amp;quot;efishcent&amp;quot; said the following on Keybase channel chialisp: &lt;br /&gt;
&lt;br /&gt;
Answers from dev on your question:&lt;br /&gt;
technically, a block is a single spend bundle (with a single aggregate signature). Right now our farmer limits the cost of included transactions to 0.5 of max (called limit_factor in the code). Presumably more to your question though, the mempool also accepts spend bundles of the same 50% of the max block cost. So, today you cannot make a single spend bundle/transaction that has a higher cost than 50% of the max block cost&lt;br /&gt;
As we get more comfortable with the performance of block validation, I imagine we'll crank up the limit_factor to get close to 1 (another issue at that point is that we don't have a closed-form formula to predict the exact cost, so if we set it to exactly 1, we may sometimes create blocks that exceed the max cost)&lt;br /&gt;
However, even in that case, I would think it's reasonable to have a smaller limit of what we accept into the mempool. The mempool is a bit sensitive to DoS, since anyone can ask to add spend bundles to it, so having a lower limit protects us from certain kinds of attacks&lt;br /&gt;
&lt;br /&gt;
Also, since cost is determined as a combination of size in bytes, number of output coins, number of aggsig keys and the operations executed in the chialisp program, it's possible to create a very small program that has a very high cost, and vice versa&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Graftroot_Quexington&amp;diff=2460</id>
		<title>Graftroot Quexington</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Graftroot_Quexington&amp;diff=2460"/>
		<updated>2023-11-18T02:06:27Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments ===== #Keybase 20211019 11:30EST For example, graftroot is just a puzzle that requires a signature of another puzzle hash and then allows you to run whatever puzzle has been signed.  That pubkey can sign an infinite number of puzzles&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
#Keybase 20211019 11:30EST&lt;br /&gt;
For example, graftroot is just a puzzle that requires a signature of another puzzle hash and then allows you to run whatever puzzle has been signed.  That pubkey can sign an infinite number of puzzles&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Length_of_a_list&amp;diff=2459</id>
		<title>Length of a list</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Length_of_a_list&amp;diff=2459"/>
		<updated>2023-11-18T02:06:06Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Insightful Comments =====  Matt Howard Keybase 20211019 8:00am EST:   (defun get_length (my_list)    (if my_list        (+ 1 (get_length (r my_list)))        0     )  )&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Insightful Comments|Insightful Comments]] =====&lt;br /&gt;
&lt;br /&gt;
Matt Howard Keybase 20211019 8:00am EST:&lt;br /&gt;
&lt;br /&gt;
 (defun get_length (my_list)&lt;br /&gt;
   (if my_list&lt;br /&gt;
       (+ 1 (get_length (r my_list)))&lt;br /&gt;
       0 &lt;br /&gt;
   )&lt;br /&gt;
 )&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Cancelling_a_coin&amp;diff=2458</id>
		<title>Cancelling a coin</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Cancelling_a_coin&amp;diff=2458"/>
		<updated>2023-11-18T02:04:36Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Keybase 20211020:  Q: I want to make a coin that can be &amp;quot;cancelled&amp;quot; and the amount returns to sender. One easy way to do this is to embed the sender's address in the puzzle. Is there another way?  A(Quexington): You can prove your parent's puzzle hash and then allow sending there.  Q (gneale): But how? ASSERT_MY_PARENT_ID - [71] is the closest I thing can find... a nudge in the right direction is sufficient. Thx!  A(Quexington...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Keybase 20211020:&lt;br /&gt;
&lt;br /&gt;
Q: I want to make a coin that can be &amp;quot;cancelled&amp;quot; and the amount returns to sender. One easy way to do this is to embed the sender's address in the puzzle. Is there another way?&lt;br /&gt;
&lt;br /&gt;
A(Quexington): You can prove your parent's puzzle hash and then allow sending there.&lt;br /&gt;
&lt;br /&gt;
Q (gneale): But how? ASSERT_MY_PARENT_ID - [71] is the closest I thing can find... a nudge in the right direction is sufficient. Thx!&lt;br /&gt;
&lt;br /&gt;
A(Quexington): Okay if you only want a nudge then remember that your parent's ID is made up of three components&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Timed_events&amp;diff=2457</id>
		<title>Timed events</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Timed_events&amp;diff=2457"/>
		<updated>2023-11-18T02:03:19Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Keybase 20211021:  Q : Hi there, a friend and I are wanting to develop a project on Chia as part of our dissertation at university, we wanted to know if timed events/conditions are possible/easy to do?  A (Quexington): You can assert that a certain time/block height has passed if you'd like but you cannot assert that a certain time/block height has not passed.  If you want to lock a spend until a certain time, you can do that....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Keybase 20211021:&lt;br /&gt;
&lt;br /&gt;
Q : Hi there, a friend and I are wanting to develop a project on Chia as part of our dissertation at university, we wanted to know if timed events/conditions are possible/easy to do?&lt;br /&gt;
&lt;br /&gt;
A (Quexington): You can assert that a certain time/block height has passed if you'd like but you cannot assert that a certain time/block height has not passed.&lt;br /&gt;
&lt;br /&gt;
If you want to lock a spend until a certain time, you can do that. If you want to lock a spend at a certain time, you cannot do that.  Spends only become valid, not invalid.&lt;br /&gt;
&lt;br /&gt;
One more thing to note is that you could get close to the &amp;quot;spend becomes invalid&amp;quot; behavior by having a spend path that allows anyone to spend the coin to some predetermined puzzle.  Watchers can watch the blockchain and purposefully go brick those coins that have &amp;quot;expired&amp;quot;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signature_tracing&amp;diff=2455</id>
		<title>Signature tracing</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signature_tracing&amp;diff=2455"/>
		<updated>2023-11-18T02:01:04Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Keybase 20211021:  Q (gneale): Is there any evidence in retrospect in the blockrecord that any particular spendbundle signature is associated with any particular spent coin?  A (Quexington):  It's kind of like hashing.  You can't pull apart a signature to see what pubkeys and messages are inside of it, but if you have a coin spend, you can verify a signature that signs all of its data. If you looked at the spent coin, you can...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Keybase 20211021:&lt;br /&gt;
&lt;br /&gt;
Q (gneale): Is there any evidence in retrospect in the blockrecord that any particular spendbundle signature is associated with any particular spent coin?&lt;br /&gt;
&lt;br /&gt;
A (Quexington): &lt;br /&gt;
It's kind of like hashing.  You can't pull apart a signature to see what pubkeys and messages are inside of it, but if you have a coin spend, you can verify a signature that signs all of its data.&lt;br /&gt;
If you looked at the spent coin, you can see what pks and messages it required a signature on.  Then, if you have a list of signatures that you want to match to it, you can test whether or not those pks and messages are in that signature.  And you can see if that's the whole signature or if you're looking at something that is aggregated further.&lt;br /&gt;
&lt;br /&gt;
Q (gneale): The &amp;quot;list of signatures&amp;quot; you are referring to is hypothetical, and not available on the blockrecord, right? All I see is one aggregated signature in the example I am looking at.&lt;br /&gt;
&lt;br /&gt;
A (Quexington): Yes&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signature_creation_in_Python3&amp;diff=2454</id>
		<title>Signature creation in Python3</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signature_creation_in_Python3&amp;diff=2454"/>
		<updated>2023-11-18T02:00:31Z</updated>

		<summary type="html">&lt;p&gt;Gneale: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Russw_ on 20211029 @01:00am EST said:&lt;br /&gt;
-----------------------&lt;br /&gt;
GOT IT! This works for me:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 basicSpendBundle = await alice.spend_coin(testcoin, pushtx = False, args = spendArgs)&lt;br /&gt;
&lt;br /&gt;
 // assemble the aggregated BLS signatures on their own...&lt;br /&gt;
&lt;br /&gt;
 //  - in this case there is only 1 sig, so `aggSig == sig1`, and `AugScheme.MPL.aggregate` is&lt;br /&gt;
&lt;br /&gt;
 //    not actually needed here... but just add more to sigs when needed&lt;br /&gt;
&lt;br /&gt;
 privateKey = alice.sk()&lt;br /&gt;
&lt;br /&gt;
 messageToSign = clvm.casts.int_to_bytes(msg_id)&lt;br /&gt;
&lt;br /&gt;
 sig1 = blspy.AugSchemeMPL.sign(privateKey, messageToSign)&lt;br /&gt;
&lt;br /&gt;
 sigs = [sig1]                                # not actually needed with a single sig&lt;br /&gt;
&lt;br /&gt;
 aggSig = blspy.AugSchemeMPL.aggregate(sigs)  # not actually needed with a single sig&lt;br /&gt;
&lt;br /&gt;
 //This is the way to make the combined spend...&lt;br /&gt;
&lt;br /&gt;
 // - clean separation between assembling the Coin spends and the agg sigs works well&lt;br /&gt;
&lt;br /&gt;
 combinedSpend = cdv.test.SpendBundle(coinSpends, aggSig)  # in this single sig case, sig1 would be fine here&lt;br /&gt;
&lt;br /&gt;
 //verify both (even though sig1 and combinedSpend.aggregated_signature are the same in this case)&lt;br /&gt;
&lt;br /&gt;
 assert blspy.AugSchemeMPL.verify(alice.pk_, messageToSign, sig1)&lt;br /&gt;
&lt;br /&gt;
 assert blspy.AugSchemeMPL.verify(alice.pk_, messageToSign, combinedSpend.aggregated_signature)&lt;br /&gt;
&lt;br /&gt;
 result = await network.push_tx(combinedSpend)&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Signature_creation_in_Python3&amp;diff=2453</id>
		<title>Signature creation in Python3</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Signature_creation_in_Python3&amp;diff=2453"/>
		<updated>2023-11-18T01:59:42Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Russw_ on 20211029 @01:00am EST said: ----------------------- GOT IT! This works for me:  &amp;lt;code&amp;gt; basicSpendBundle = await alice.spend_coin(testcoin, pushtx = False, args = spendArgs)  // assemble the aggregated BLS signatures on their own...  //  - in this case there is only 1 sig, so `aggSig == sig1`, and `AugScheme.MPL.aggregate` is  //    not actually needed here... but just add more to sigs when needed  privateKey = alice....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Russw_ on 20211029 @01:00am EST said:&lt;br /&gt;
-----------------------&lt;br /&gt;
GOT IT! This works for me:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
basicSpendBundle = await alice.spend_coin(testcoin, pushtx = False, args = spendArgs)&lt;br /&gt;
&lt;br /&gt;
// assemble the aggregated BLS signatures on their own...&lt;br /&gt;
&lt;br /&gt;
//  - in this case there is only 1 sig, so `aggSig == sig1`, and `AugScheme.MPL.aggregate` is&lt;br /&gt;
&lt;br /&gt;
//    not actually needed here... but just add more to sigs when needed&lt;br /&gt;
&lt;br /&gt;
privateKey = alice.sk()&lt;br /&gt;
&lt;br /&gt;
messageToSign = clvm.casts.int_to_bytes(msg_id)&lt;br /&gt;
&lt;br /&gt;
sig1 = blspy.AugSchemeMPL.sign(privateKey, messageToSign)&lt;br /&gt;
&lt;br /&gt;
sigs = [sig1]                                # not actually needed with a single sig&lt;br /&gt;
&lt;br /&gt;
aggSig = blspy.AugSchemeMPL.aggregate(sigs)  # not actually needed with a single sig&lt;br /&gt;
&lt;br /&gt;
//This is the way to make the combined spend...&lt;br /&gt;
&lt;br /&gt;
// - clean separation between assembling the Coin spends and the agg sigs works well&lt;br /&gt;
&lt;br /&gt;
combinedSpend = cdv.test.SpendBundle(coinSpends, aggSig)  # in this single sig case, sig1 would be fine here&lt;br /&gt;
&lt;br /&gt;
//verify both (even though sig1 and combinedSpend.aggregated_signature are the same in this case)&lt;br /&gt;
&lt;br /&gt;
assert blspy.AugSchemeMPL.verify(alice.pk_, messageToSign, sig1)&lt;br /&gt;
&lt;br /&gt;
assert blspy.AugSchemeMPL.verify(alice.pk_, messageToSign, combinedSpend.aggregated_signature)&lt;br /&gt;
&lt;br /&gt;
result = await network.push_tx(combinedSpend)&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Getting_started_with_PRs_-_Quex&amp;diff=2450</id>
		<title>Getting started with PRs - Quex</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Getting_started_with_PRs_-_Quex&amp;diff=2450"/>
		<updated>2023-11-18T01:58:48Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Quexington on Keybase #chialisp 20211201  &amp;quot;If you want to get started with PRs, you just fork the repo, clone the branch you want to PR into (in this case main), create a new branch from that (git checkout -b new_branch), make your changes, push the changes to github and then open a PR to chia's repo. As for testing, the change you want to make is very small, so you could just add it and then a couple of lines in tests/clvm/te...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Quexington on Keybase #chialisp 20211201&lt;br /&gt;
&lt;br /&gt;
&amp;quot;If you want to get started with PRs, you just fork the repo, clone the branch you want to PR into (in this case main), create a new branch from that (git checkout -b new_branch), make your changes, push the changes to github and then open a PR to chia's repo.&lt;br /&gt;
As for testing, the change you want to make is very small, so you could just add it and then a couple of lines in tests/clvm/test_spend_sim.py make sure that test passes and then you're good.&lt;br /&gt;
The whole test suite takes approximately 1 million years to run so I wouldn't try that haha&amp;quot;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Identifying_CATs&amp;diff=2449</id>
		<title>Identifying CATs</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Identifying_CATs&amp;diff=2449"/>
		<updated>2023-11-18T01:57:36Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Keybase 20211209  fcoleman Q: &amp;quot;if you are trying to determine if a puzzle hash is a CAT, how can you do this without knowing the inner puzzle as that is one of the curried in arguments..?&amp;quot;  Quexington A: &amp;quot;You cannot.  You have to look at the parent puzzle reveal with /get_puzzle_and_solution.  If the parent was a CAT, then the child is a CAT.&amp;quot;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Keybase 20211209&lt;br /&gt;
&lt;br /&gt;
fcoleman Q: &amp;quot;if you are trying to determine if a puzzle hash is a CAT, how can you do this without knowing the inner puzzle as that is one of the curried in arguments..?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Quexington A: &amp;quot;You cannot.  You have to look at the parent puzzle reveal with /get_puzzle_and_solution.  If the parent was a CAT, then the child is a CAT.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Puzzle_hints&amp;diff=2445</id>
		<title>Puzzle hints</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Puzzle_hints&amp;diff=2445"/>
		<updated>2023-11-18T01:37:37Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ====  Bram Cohen 2021-12-17 1:52pm  &amp;quot;The hint is the first extra parameter in the create coin and it's more to get someone's attention than it is to explain things&amp;quot;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
&lt;br /&gt;
Bram Cohen 2021-12-17 1:52pm &lt;br /&gt;
&amp;quot;The hint is the first extra parameter in the create coin and it's more to get someone's attention than it is to explain things&amp;quot;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Securing_spend_with_announcements_-_overview&amp;diff=2444</id>
		<title>Securing spend with announcements - overview</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Securing_spend_with_announcements_-_overview&amp;diff=2444"/>
		<updated>2023-11-18T01:35:32Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== &amp;lt;h1&amp;gt;1.&amp;lt;/h1&amp;gt;Dan Perry on Keybase 20211220  10:59pm EST The parameters you pass into the puzzle (&amp;quot;defconstant&amp;quot; and &amp;quot;TARGET_AMOUNT&amp;quot; in your example) are the puzzle's solution. If you curry one of these parameters, you are hard-coding it into the solution, and therefore into the puzzle as well.  You won't always know what all of these values will be at the time of the coin's creation, so currying them isn't always an option. Any p...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
&amp;lt;h1&amp;gt;1.&amp;lt;/h1&amp;gt;Dan Perry on Keybase 20211220  10:59pm EST&lt;br /&gt;
The parameters you pass into the puzzle (&amp;quot;defconstant&amp;quot; and &amp;quot;TARGET_AMOUNT&amp;quot; in your example) are the puzzle's solution. If you curry one of these parameters, you are hard-coding it into the solution, and therefore into the puzzle as well.&lt;br /&gt;
&lt;br /&gt;
You won't always know what all of these values will be at the time of the coin's creation, so currying them isn't always an option. Any part of the solution that has not been curried has to be supplied when the coin is spent. (In order to spend a coin, you must provide the original puzzle, a valid solution, and usually a signature)&lt;br /&gt;
&lt;br /&gt;
While a farmer cannot change the puzzle (because doing so would change the puzzlehash), a farmer can attempt to change any of the non-curried values in the solution. You should make sure that if those values do get changed, the spend will fail. The way you do this is with announcements, which are covered in the chialisp docs: https://chialisp.com/docs/coins_spends_and_wallets&lt;br /&gt;
&lt;br /&gt;
This video shows you how to use announcements to secure your coins: https://www.youtube.com/watch?v=_SBGfMZhRd8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;2.&amp;lt;/h1&amp;gt;gneale notes 20211221&lt;br /&gt;
Technique for securing multiple coin spends with announcements commonly uses creating puzzlehash announcement while assert a coin announcement.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
https://github.com/geoffwalmsley/CreatorNFT/blob/912ce88d75f89357141260aad2dd1626038f7d60/clsp/creator_nft.clsp#L64&lt;br /&gt;
 	       (list CREATE_PUZZLE_ANNOUNCEMENT payment_info) ;; Announce the p2 coin id&lt;br /&gt;
 (list ASSERT_COIN_ANNOUNCEMENT (sha256 payment_info (sha256tree new_state))) ;; Assert the p2_coin spend&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
https://github.com/xch-gallery/nft-companion/blob/3ec7748f3cd6834ea97fd46fde6d119f30ab566b/ownable_singleton/clsp/ownable_singleton.clsp#L27&lt;br /&gt;
          (list CREATE_PUZZLE_ANNOUNCEMENT payment_id) ; Inform the payment coin of this spend&lt;br /&gt;
          (list ASSERT_COIN_ANNOUNCEMENT (sha256 payment_id new_owner_pubkey)) ; Assert that the payment coin is being spent and validate the owner&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Singleton_comments&amp;diff=2443</id>
		<title>Singleton comments</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Singleton_comments&amp;diff=2443"/>
		<updated>2023-11-18T01:34:58Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;==== Return to: Insightful_Comments ==== Trepca 20020511: *singleton is tricky yeah, you first create launcher coin, then launcher coin creates singleton coin, and then you need to spend the singleton (eve spend) to &amp;quot;initialize&amp;quot; it *conditions are applied when coin is spent if any are returned *because chia has this concept of all spends happening at the same time in a block, so order doesn't matter, just that parent exists, will be spent, will create a new child coi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Return to: [[Insightful_Comments]] ====&lt;br /&gt;
Trepca 20020511:&lt;br /&gt;
*singleton is tricky yeah, you first create launcher coin, then launcher coin creates singleton coin, and then you need to spend the singleton (eve spend) to &amp;quot;initialize&amp;quot; it&lt;br /&gt;
*conditions are applied when coin is spent if any are returned&lt;br /&gt;
*because chia has this concept of all spends happening at the same time in a block, so order doesn't matter, just that parent exists, will be spent, will create a new child coin, that will be spent too to do something else.&lt;br /&gt;
*spend bundle is like a transaction where you can have many spends and coins being created and spent&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Hinting&amp;diff=2273</id>
		<title>Hinting</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Hinting&amp;diff=2273"/>
		<updated>2023-11-17T15:58:55Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Chialisp ===== &amp;lt;big&amp;gt;Useful Commands:&amp;lt;/big&amp;gt; &amp;lt;pre&amp;gt;cd ~/.chia/mainnet/db&amp;lt;/pre&amp;gt; &amp;lt;pre&amp;gt;sqlite3 blockchain_v2_testnet10.sqlite&amp;lt;/pre&amp;gt; &amp;lt;pre&amp;gt;SELECT hex(hint),hex(coin_id) FROM hints LIMIT 1000,100;&amp;lt;/pre&amp;gt; &amp;lt;pre&amp;gt;SELECT * FROM hints where coin_id = X'02AD7C44D75DE72550B2A8A6E63652C993AC9A60C641AE644230230D95EAD315';&amp;lt;/pre&amp;gt; &amp;lt;pre&amp;gt;SELECT * FROM hints WHERE hint = X'01388426758A92EFA9669821578216A223FF167154CFCF67F5E6E8DD76DAF05E'&amp;lt;/pre&amp;gt; &amp;lt;pre&amp;gt;SELECT * FROM hint...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&amp;lt;big&amp;gt;Useful Commands:&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/.chia/mainnet/db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sqlite3 blockchain_v2_testnet10.sqlite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT hex(hint),hex(coin_id) FROM hints LIMIT 1000,100;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT * FROM hints where coin_id = X'02AD7C44D75DE72550B2A8A6E63652C993AC9A60C641AE644230230D95EAD315';&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT * FROM hints WHERE hint = X'01388426758A92EFA9669821578216A223FF167154CFCF67F5E6E8DD76DAF05E'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT * FROM hints where hex(coin_id) = &amp;quot;02AD7C44D75DE72550B2A8A6E63652C993AC9A60C641AE644230230D95EAD315&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT hex(hint) FROM hints LIMIT 1000,10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT hex(hint),hex(coin_id) FROM hints WHERE hint = X'01388426758A92EFA9669821578216A223FF167154CFCF67F5E6E8DD76DAF05E';&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Standard_transaction&amp;diff=2271</id>
		<title>Standard transaction</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Standard_transaction&amp;diff=2271"/>
		<updated>2023-11-17T15:57:59Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: CLVM ===== &amp;lt;big&amp;gt;Standard Transaction:&amp;lt;/big&amp;gt; &amp;lt;pre&amp;gt; (a   (q 2    (q 2     (i 11      (q 2       (i        (= 5        (point_add 11         (pubkey_for_exp          (sha256 11   	 (a 6    	  (c 2   	   (c 23   	    ()  	   )  	  )  	 )  	)        )       )      )       (q 2 23 47)       (q 8)     )    1)     (q 4      (c 4       (c 5        (c         (a 6          (c 2           (c 23 ())         )        )        ()       )      )     )      (a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[CLVM|CLVM]] =====&lt;br /&gt;
&amp;lt;big&amp;gt;Standard Transaction:&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(a &lt;br /&gt;
 (q 2 &lt;br /&gt;
  (q 2 &lt;br /&gt;
   (i 11 &lt;br /&gt;
    (q 2 &lt;br /&gt;
     (i &lt;br /&gt;
      (= 5 &lt;br /&gt;
      (point_add 11 &lt;br /&gt;
       (pubkey_for_exp &lt;br /&gt;
        (sha256 11 &lt;br /&gt;
 	 (a 6  &lt;br /&gt;
 	  (c 2 &lt;br /&gt;
 	   (c 23 &lt;br /&gt;
 	    ()&lt;br /&gt;
 	   )&lt;br /&gt;
 	  )&lt;br /&gt;
 	 )&lt;br /&gt;
 	)&lt;br /&gt;
       )&lt;br /&gt;
      )&lt;br /&gt;
     ) &lt;br /&gt;
     (q 2 23 47) &lt;br /&gt;
     (q 8)&lt;br /&gt;
    ) &lt;br /&gt;
  1) &lt;br /&gt;
   (q 4 &lt;br /&gt;
    (c 4 &lt;br /&gt;
     (c 5 &lt;br /&gt;
      (c &lt;br /&gt;
       (a 6 &lt;br /&gt;
        (c 2 &lt;br /&gt;
         (c 23 ())&lt;br /&gt;
        )&lt;br /&gt;
       ) &lt;br /&gt;
      ()&lt;br /&gt;
      )&lt;br /&gt;
     )&lt;br /&gt;
    ) &lt;br /&gt;
    (a 23 47)&lt;br /&gt;
   )&lt;br /&gt;
  ) &lt;br /&gt;
1)       &lt;br /&gt;
 (c &lt;br /&gt;
  (q 50 2 &lt;br /&gt;
   (i &lt;br /&gt;
    (l 5) &lt;br /&gt;
     (q 11 &lt;br /&gt;
      (q . 2) &lt;br /&gt;
      (a 6 &lt;br /&gt;
        (c 2 &lt;br /&gt;
         (c 9 ())&lt;br /&gt;
        )&lt;br /&gt;
      ) &lt;br /&gt;
      (a 6 &lt;br /&gt;
        (c 2 &lt;br /&gt;
         (c 13 ())&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
     ) &lt;br /&gt;
     (q 11 &lt;br /&gt;
      (q . 1)&lt;br /&gt;
    5)&lt;br /&gt;
    ) &lt;br /&gt;
  1) &lt;br /&gt;
 1)     &lt;br /&gt;
 ) &lt;br /&gt;
 (c &lt;br /&gt;
  (q . 0x98ae659900a7e2b3030229447fa64bb9ae2e5a1fd0aafcb0095f5f6ecb610315c17f7f6b110d6337a4bbf14b2301ccbc) &lt;br /&gt;
1)&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Sha256tree&amp;diff=2270</id>
		<title>Sha256tree</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Sha256tree&amp;diff=2270"/>
		<updated>2023-11-17T15:57:35Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: CLVM ===== &amp;lt;big&amp;gt;sha256tree:&amp;lt;/big&amp;gt; &amp;lt;pre&amp;gt; (a    (q 2 6 (c 2 (c 5 ())))   (c (q 1 2     (i (l 5)        (q 11 (q . 2) (a                        6                        (c 2 (c 9 ())))                     (a                        6                       (c 2 (c 13 ())))                       )        (q 11 (q . 1) 5))   1) 1) )  (  (c 2    (c 5     (c 13      ()    )   )  ) )&amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[CLVM|CLVM]] =====&lt;br /&gt;
&amp;lt;big&amp;gt;sha256tree:&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(a &lt;br /&gt;
&lt;br /&gt;
 (q 2 6 (c 2 (c 5 ())))&lt;br /&gt;
&lt;br /&gt;
 (c (q 1 2 &lt;br /&gt;
   (i (l 5) &lt;br /&gt;
      (q 11 (q . 2) (a &lt;br /&gt;
                      6 &lt;br /&gt;
                      (c 2 (c 9 ())))&lt;br /&gt;
                    (a &lt;br /&gt;
                      6&lt;br /&gt;
                      (c 2 (c 13 ())))&lt;br /&gt;
                      ) &lt;br /&gt;
      (q 11 (q . 1) 5)) &lt;br /&gt;
 1) 1)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
 (c 2 &lt;br /&gt;
  (c 5 &lt;br /&gt;
   (c 13 &lt;br /&gt;
    ()&lt;br /&gt;
   )&lt;br /&gt;
  )&lt;br /&gt;
 )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=CLVM&amp;diff=2269</id>
		<title>CLVM</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=CLVM&amp;diff=2269"/>
		<updated>2023-11-17T15:57:16Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Chialisp ===== &amp;lt;big&amp;gt;Common Examples&amp;lt;/big&amp;gt; * sha256tree * standard transaction&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&amp;lt;big&amp;gt;Common Examples&amp;lt;/big&amp;gt;&lt;br /&gt;
* [[sha256tree]]&lt;br /&gt;
* [[standard transaction]]&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Integer_byte_encoding_peculiarity&amp;diff=2268</id>
		<title>Integer byte encoding peculiarity</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Integer_byte_encoding_peculiarity&amp;diff=2268"/>
		<updated>2023-11-17T15:56:34Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Chialisp =====  According to Matt Howard 20210816, there is a &amp;quot;peculiarity with how integers are encoded in bytes.    It's signed integers.    If you just return &amp;lt;code&amp;gt;run '(q . 0xd7)'&amp;lt;/code&amp;gt; you get -41 because the most significant bit is set and that's telling the interpreter to read this as a negative number.    If you add some leading zeroes &amp;lt;code&amp;gt;run '(q . 0x00d7)'&amp;lt;/code&amp;gt;, it should pop out as you would expect&amp;quot;.   Returns 215.  &amp;lt;h1&amp;gt;Orig...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&lt;br /&gt;
According to Matt Howard 20210816, there is a &amp;quot;peculiarity with how integers are encoded in bytes.  &lt;br /&gt;
&lt;br /&gt;
It's signed integers.  &lt;br /&gt;
&lt;br /&gt;
If you just return &amp;lt;code&amp;gt;run '(q . 0xd7)'&amp;lt;/code&amp;gt; you get -41 because the most significant bit is set and that's telling the interpreter to read this as a negative number.  &lt;br /&gt;
&lt;br /&gt;
If you add some leading zeroes &amp;lt;code&amp;gt;run '(q . 0x00d7)'&amp;lt;/code&amp;gt;, it should pop out as you would expect&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Returns 215.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Original concern&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: I still have one question: why does &amp;lt;code&amp;gt;brun '(- (q . 0xd7) (q . 0x1))'&amp;lt;/code&amp;gt; return -42?&lt;br /&gt;
&lt;br /&gt;
A: &amp;lt;code&amp;gt;hex(-42 &amp;amp; 0xff) == '0xd6''&amp;lt;/code&amp;gt; I see thanks!&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Recursion&amp;diff=2267</id>
		<title>Recursion</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Recursion&amp;diff=2267"/>
		<updated>2023-11-17T15:56:09Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Chialisp ===== &amp;lt;big&amp;gt;Important excerpts from the documentaiton:&amp;lt;/big&amp;gt; https://chialisp.com/docs/clvm/dive_into_clvm#programs-as-parameters :  The core CLVM does not have an operator for creating user defined functions. It does, however, allow programs to be passed as parameters, which can be used for similar results.  Here is a puzzle that executes the program contained in 2 (the first solution argument) with the solution (12).  &amp;lt;code&amp;gt;brun '(...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
&amp;lt;big&amp;gt;Important excerpts from the documentaiton:&amp;lt;/big&amp;gt; https://chialisp.com/docs/clvm/dive_into_clvm#programs-as-parameters :&lt;br /&gt;
&lt;br /&gt;
The core CLVM does not have an operator for creating user defined functions. It does, however, allow programs to be passed as parameters, which can be used for similar results.&lt;br /&gt;
&lt;br /&gt;
Here is a puzzle that executes the program contained in 2 (the first solution argument) with the solution (12).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;brun '(a 2 (q . (12)))' '((* 2 (q . 2)))'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
24&lt;br /&gt;
&lt;br /&gt;
Taking this further we can make the puzzle run a new evaluation that only uses parameters from its old solution:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;brun '(a 2 1)' '((* 5 (q . 2)) 10)'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20&lt;br /&gt;
&lt;br /&gt;
'''''We can use this technique to implement recursive programs.&lt;br /&gt;
'''''&lt;br /&gt;
&lt;br /&gt;
Added gneale 20210818:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;brun '(a 2 1)' '((+ 5 (q . 3)) 10)'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13&lt;br /&gt;
&lt;br /&gt;
Added gneale 20211119:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;brun '(a 2 1)' '((* 4 (q . 2)) 10)'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
36&lt;br /&gt;
&lt;br /&gt;
NOTE:This is because position 4 inside ((* 4 (q . 2)) 10) is * which is the same as the number 9.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Explanation Items:&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://chialisp.com/docs/clvm/lang_reference#control-flow&lt;br /&gt;
 a means &amp;quot;apply&amp;quot; (a P A) &lt;br /&gt;
Evaluate value P as a program with value A as its environment.&lt;br /&gt;
&lt;br /&gt;
Note that this executes P in what is called a ''new environment''. Using integers to reference values in the solution will reference values in A.&lt;br /&gt;
&lt;br /&gt;
Personal NOTE: An ''environment'' is essentially just a new binary tree attached to an existing branch of a binary tree. So in the above example P executes in a new environment.&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
	<entry>
		<id>https://mojopuzzler.org/mediawiki/index.php?title=Cancel_mojo_technique&amp;diff=2266</id>
		<title>Cancel mojo technique</title>
		<link rel="alternate" type="text/html" href="https://mojopuzzler.org/mediawiki/index.php?title=Cancel_mojo_technique&amp;diff=2266"/>
		<updated>2023-11-17T15:55:44Z</updated>

		<summary type="html">&lt;p&gt;Gneale: Created page with &amp;quot;===== Return to: Chialisp ===== The following chialisp code ensure that the introduced parent puzzlehash of the parent coin is correct first, before sending the rebate coin which is restricted to that one possible wallet address:    (mod (pwd ppid pph pamt ph amt)      (defconstant CREATE_COIN 51)      (defconstant ASSERT_MY_PARENT_ID 71)      (if (= pwd (q . cancel))      (list (list ASSERT_MY_PARENT_ID (sha256 (concat ppid pph pamt)))       (list CREATE_CO...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Return to: [[Chialisp|Chialisp]] =====&lt;br /&gt;
The following chialisp code ensure that the introduced parent puzzlehash of the parent coin is correct first, before sending the rebate coin which is restricted to that one possible wallet address:&lt;br /&gt;
&lt;br /&gt;
  (mod (pwd ppid pph pamt ph amt)&lt;br /&gt;
     (defconstant CREATE_COIN 51)&lt;br /&gt;
     (defconstant ASSERT_MY_PARENT_ID 71)&lt;br /&gt;
     (if (= pwd (q . cancel))&lt;br /&gt;
     (list (list ASSERT_MY_PARENT_ID (sha256 (concat ppid pph pamt))) &lt;br /&gt;
     (list CREATE_COIN pph amt))&lt;br /&gt;
     (if (= pwd (q . hello))&lt;br /&gt;
     (list (list CREATE_COIN ph amt))&lt;br /&gt;
     (x)&lt;br /&gt;
     )&lt;br /&gt;
     )&lt;br /&gt;
  )&lt;/div&gt;</summary>
		<author><name>Gneale</name></author>
	</entry>
</feed>