<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NikolasHaimerl</id>
	<title>Internet Computer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NikolasHaimerl"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/NikolasHaimerl"/>
	<updated>2026-04-10T09:00:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=4385</id>
		<title>Internet Computer wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=4385"/>
		<updated>2023-02-25T10:57:47Z</updated>

		<summary type="html">&lt;p&gt;NikolasHaimerl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome!==&lt;br /&gt;
&lt;br /&gt;
This is a general source of information about the &#039;&#039;&#039;Internet Computer (IC)&#039;&#039;&#039;, the world&#039;s fastest and most powerful blockchain network&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-internet-computers-transaction-speed-and-finality-outpace-other-l1-blockchains-8e7d25e4b2ef&amp;lt;/ref&amp;gt;. Created for and by the IC community, topics vary from cryptography, network governance, user experience, tokenomics, developer tutorials and more.&lt;br /&gt;
&lt;br /&gt;
==Introduction to the Internet Computer==&lt;br /&gt;
The Internet Computer is a general-purpose blockchain that hosts [[canister smart contract]]s. It is designed to [[Replace traditional IT with a World Computer|provide a World Computer that can replace traditional IT]] and host a new generation of [[Web3:_The_bull_case_for_the_Internet_Computer|Web3]] services and applications that run solely from the blockchain, without the need for traditional IT. It can also play the role of Web3 orchestrator, by interacting with traditional blockchains.&lt;br /&gt;
&lt;br /&gt;
It has a completely unique design that reflects a ground-up rethink of blockchain architecture and the application of modern cryptography, [https://web.archive.org/web/20150914013643/http://dfinity.io/ which can be traced back to 2015]. It was built by the largest [https://dfinity.org/team ongoing R&amp;amp;D effort in crypto], which has employed many notable cryptographers, computer science researchers and engineers. The blockchain underwent genesis in May 2021 and became part of the public internet.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer blockchain&#039;s protocols leverage novel [[chain key cryptography]] to combine multiple [[Limitless_Scaling#Subnet Architecture|subnet blockchains]] into a single blockchain. This allows it to [https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_out)_and_vertical_scaling_(scale_up) horizontally scale] the total volume of hosted [[canister smart contract]], and their computations and data, without limit. These smart contracts run at web speed, and with web-levels of efficiency, and uniquely, thanks to the blockchain architecture enabled by chain key crypto, can process HTTP requests and directly and securely serve interactive web experiences to the end-users of web3 services, without need for trusted intermediaries (whereas on other blockchains, the web experience users interact with is generally built on centralized, insecure and trusted servers or cloud computing services).&lt;br /&gt;
&lt;br /&gt;
Through these kinds of unique capabilities, the Internet Computer provides a platform that can be used to build mass market web3 services that run 100% on-chain, without any need for traditional IT, such as web servers and databases running on cloud computing services. The longer-term objective is that the Internet Computer will completely replace traditional IT, creating a &#039;&#039;blockchain singularity&#039;&#039;, in which everything runs fully on-chain in powerful new forms where it is unstoppable and cannot be hacked.&lt;br /&gt;
&lt;br /&gt;
The development of the Internet Computer has heralded numerous notable technological developments, such as [[chain key cryptography]] and programming languages such as [https://wiki.internetcomputer.org/wiki/Motoko Motoko]. In another notable advance, the Internet Computer hosts an advanced [https://en.wikipedia.org/wiki/Decentralized_autonomous_organization DAO] within its protocols, called the [[Network Nervous System]], which provides the community with direct control over network governance, and can upgrade the protocol running on its network nodes, without requiring the network to fork. The network&#039;s utility token is ICP (see [[Roles of the ICP utility token]]).&lt;br /&gt;
&lt;br /&gt;
A recent new technological advance has extended the Internet Computer&#039;s [[chain key cryptography]] protocols. This has enabled smart contracts hosted on the Internet Computer to directly interact with other blockchains, without need for dangerous centrally-controlled bridges or wrapping (see [[trustless multi-chain web3 using the IC]], and [[Extend Bitcoin, Ethereum and other blockchains|extending Bitcoin, Ethereum and other blockchains]]).&lt;br /&gt;
&lt;br /&gt;
For example, a canister smart contract hosted on the Internet Computer can create bitcoin addresses, and directly send and receive bitcoins on the Bitcoin ledger as though it were hosted by the Bitcoin network itself. This is possible because chain key crypto enables blockchains to create public &amp;quot;chain keys&amp;quot;, for which their nodes can create corresponding signatures. Recent work has now made it possible to create ECDSA chain keys. Since [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA] is the signature scheme used by most other blockchains, this means the Internet Computer can create TX on other blockchains.&lt;br /&gt;
&lt;br /&gt;
Future work will enable its smart contracts to directly interact with other important blockchains such as [https://ethereum.org/en/ Ethereum]. This also leverages other important features such as [[HTTPS outcalls]]. As a consequence, many believe that the Internet Computer will play the role of an orchestration layer that combines different blockchains in the web3 environment, and helps combine them with off-chain services and systems, such as Web 2.0 services and enterprise systems, in a trustless way.&lt;br /&gt;
&lt;br /&gt;
===Popular places to start===&lt;br /&gt;
* &#039;&#039;&#039;The Internet Computer project website (hosted on the IC): [https://internetcomputer.org/ internetcomputer.org]&#039;&#039;&#039;&lt;br /&gt;
* [https://www.youtube.com/watch?v=IfM3I8pudFs&amp;amp;t=327s Internet Computer overview video from 2022 IC hackathon]&lt;br /&gt;
* [https://www.youtube.com/watch?v=IfM3I8pudFs June 2022 IC hackathon, full launch video]&lt;br /&gt;
* [https://internetcomputer.org/icig.pdf Internet Computer Infographic (PDF)]&lt;br /&gt;
&amp;lt;!-- Link is going to nowhere. Should be updated if target is clear. Uncommented for now.&lt;br /&gt;
* [https://internetcomputer.org/education#online-courses/ Internet Computer: Online Courses]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* [[Glossary]]&lt;br /&gt;
&lt;br /&gt;
===For a general audience===&lt;br /&gt;
* [[Internet Computer overview]]&lt;br /&gt;
* [[Internet Computer vision]]&lt;br /&gt;
* [https://internetcomputer.org/roadmap/ Internet Computer roadmap]&lt;br /&gt;
&lt;br /&gt;
===For a more technical audience===&lt;br /&gt;
* [https://eprint.iacr.org/2022/087 &amp;quot;Internet Computer for Geeks&amp;quot; paper]&lt;br /&gt;
* [[IC architecture overview]]&lt;br /&gt;
* The [https://internetcomputer.org/howitworks &amp;quot;How it works&amp;quot; series] with videos and in-depth articles on various topics.&lt;br /&gt;
* [https://www.reddit.com/r/dfinity/comments/ozboyi/megathread_technical_amas/ Technical AMAs on Reddit by different IC and DFINITY teams]&lt;br /&gt;
&lt;br /&gt;
== Internet Identity Introduction == &lt;br /&gt;
One of the core benefits of building on the Internet Computer is that end users do not need to pay fees or use tokens to access and use dapps. As an alternative to authenticating from a wallet, users can authenticate with an Internet Identity. Learn more information about Internet Identity (II), a blockchain authentication framework supported by the Internet Computer:&lt;br /&gt;
&lt;br /&gt;
* [[What is Internet Identity]]&lt;br /&gt;
* [[How to create an Internet Identity]]&lt;br /&gt;
* [[Internet Identity technical overview]]&lt;br /&gt;
* [https://identity.ic0.app/ Internet Identity dapp]&lt;br /&gt;
&lt;br /&gt;
==IC for Dapp Users ==&lt;br /&gt;
&lt;br /&gt;
If you use or are interested in using dapps on the Internet Computer, this section will help you understand the user experience benefits of the IC, how to use Internet Identity, or find more IC dapps.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[Introduction to the Internet Computer for dapp users]]&lt;br /&gt;
* [[Index of dapps on the Internet Computer]]&lt;br /&gt;
&lt;br /&gt;
See more in [[Internet Computer for dapp users]]&lt;br /&gt;
&lt;br /&gt;
== IC for ICP Token-holders, Stakers, and Neuron Holders==&lt;br /&gt;
&lt;br /&gt;
The Internet Computer is governed by on-chain governance system called the Network Nervous System (NNS). To participate on governance, users need to stake ICP tokens. This section will explain how the NNS works, ICP tokens, staking, and options for managing one&#039;s ICP.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[ICP token]]&lt;br /&gt;
* [[Tutorials for acquiring, managing, and staking ICP]]&lt;br /&gt;
* [[Staking, voting and rewards]]&lt;br /&gt;
* [[Governance of the Internet Computer]]&lt;br /&gt;
* [[Network Nervous System]]&lt;br /&gt;
* [[Total supply, circulating supply, and staked_ICP]]&lt;br /&gt;
* [[NNS neuron operations related to maturity]]&lt;br /&gt;
&lt;br /&gt;
See more in [[Internet_Computer_token-holders,_investors_and_neuron_holders|Internet Computer token-holders, investors, and neuron holders]].&lt;br /&gt;
&lt;br /&gt;
== IC for Smart Contract and Dapp Developers ==&lt;br /&gt;
&lt;br /&gt;
The Internet Computer (IC) is a new platform for executing smart contracts. This section contains information for developers, including links to documentation, developer forums, and relevant dashboards.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[Canisters (dapps/smart contracts)]]&lt;br /&gt;
* [https://smartcontracts.org/ Developer documentation on smartcontract.org]&lt;br /&gt;
* [https://forum.dfinity.org/ IC community developer forum]&lt;br /&gt;
&amp;lt;!--* [[Index of libraries for Internet Computer development]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--* [[Best practices for a high traffic dapp launch]]--&amp;gt;&lt;br /&gt;
* [[Bitcoin integration]]&lt;br /&gt;
* [[SNS Tokenization Considerations]]&lt;br /&gt;
* [[Web Speed]]&lt;br /&gt;
* [[Web Serving]]&lt;br /&gt;
* [[Limitless Scaling]]&lt;br /&gt;
* [[Users interact with dapps without tokens]]&lt;br /&gt;
* [[Parallelism]]&lt;br /&gt;
* [[Error Codes returned by Internet Computer]]&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve been programming smart contracts on Ethereum before, you should read [[The Internet Computer for Ethereum Developers]].&lt;br /&gt;
&lt;br /&gt;
See more in [[Internet Computer for smart contract and dapp developers]].&lt;br /&gt;
&lt;br /&gt;
== IC for the Curious, Researchers and Blockchain Enthusiasts ==&lt;br /&gt;
&lt;br /&gt;
This section is for those interested in how the Internet Computer works under the hood. It touches many different subject areas from cryptography, consensus protocols, virtual machines, operating systems, networking, distributed systems, etc.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [https://internetcomputer.org/howitworks/ How the Internet Computer Works]&lt;br /&gt;
* [https://dashboard.internetcomputer.org/ Internet Computer dashboard] &lt;br /&gt;
* [[Internet Computer performance]]&lt;br /&gt;
* [[DFINITY Foundation]]&lt;br /&gt;
* [[Bitcoin integration]]&lt;br /&gt;
* [[Third-party security audits]]&lt;br /&gt;
* [[Networking]]&lt;br /&gt;
* [[Replicated state structure]]&lt;br /&gt;
* [[New Subnet Creation]]&lt;br /&gt;
* [[Catch-Up Package]]&lt;br /&gt;
* [[Summary Block]]&lt;br /&gt;
* [[ICP technical design documents]]&lt;br /&gt;
* [[Boundary Nodes]]&lt;br /&gt;
&lt;br /&gt;
== For Node Providers == &lt;br /&gt;
Node providers invest in and operate node hardware, which powers the Internet Computer with processing and storage capacity. Running these nodes in data centers provides the high performance and the cost-effectiveness of the Internet Computer. Every node provider is allowed a limited amount of nodes.&lt;br /&gt;
* [[Node Provider Onboarding]]&lt;br /&gt;
* [[Gen-2 Data Center runbook]]&lt;br /&gt;
* [[Gen-2 Network Requirements]]&lt;br /&gt;
* [[Node rewards]]&lt;br /&gt;
* [[Node Provider Remuneration]]&lt;br /&gt;
* [[Node Provider Self-declaration]]&lt;br /&gt;
* Gen-1 Documentation:&lt;br /&gt;
** [[IC OS Installation Runbook - Dell Poweredge]]&lt;br /&gt;
** [[IC OS Installation Runbook - Supermicro]]&lt;br /&gt;
** [[Possible Node Onboarding Errors]]&lt;br /&gt;
** [[Storage Runbook]]&lt;br /&gt;
** [[Retrieving_a_Dell_TSR_Log|Assistance with iDRAC, TSR logs, and more]]&lt;br /&gt;
&lt;br /&gt;
== Technical Working Groups == &lt;br /&gt;
* [[Identity &amp;amp; Authentication]]&lt;br /&gt;
* [[Developer Tooling]]&lt;br /&gt;
* [[Ledger &amp;amp; Tokenization]]&lt;br /&gt;
* [[Scalability &amp;amp; Performance]]&lt;br /&gt;
* [[Education]]&lt;br /&gt;
* [[Governance]]&lt;br /&gt;
&lt;br /&gt;
== FAQs, Tutorials, and How-tos==&lt;br /&gt;
Tutorials are guided introductions to user stories, intended for first-time users and characterized by a shallow learning curve. How-Tos are step-by-step instructions for specific, narrow goals.&lt;br /&gt;
&lt;br /&gt;
===FAQs===&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
Example:&lt;br /&gt;
* [[Managing ICP holdings]]&lt;br /&gt;
* [[Managing Internet Identity]]&lt;br /&gt;
* [[Maximizing Voting and NNS Rewards]] &lt;br /&gt;
See more in [[Best Practices]]&lt;br /&gt;
&lt;br /&gt;
=== Tutorials ===&lt;br /&gt;
Example:&lt;br /&gt;
* [[Tutorials for acquiring, managing, and staking ICP]]&lt;br /&gt;
* [[How-To: Claim neurons for seed participants]]&lt;br /&gt;
* [[How-To: Create an NNS motion proposal]]&lt;br /&gt;
* [[How-To: Set your neuron to follow another neuron]]&lt;br /&gt;
* [[How-To: Updating neuron following via quill]]&lt;br /&gt;
* [[How-To: Join the Community fund via quill]]&lt;br /&gt;
* [[How-To: SNS tokenomics configuration]]&lt;br /&gt;
* [[How-To: SNS sale participation via quill]]&lt;br /&gt;
&lt;br /&gt;
See more in [[How-Tos]].&lt;br /&gt;
&lt;br /&gt;
==Contributing to the Wiki==&lt;br /&gt;
&lt;br /&gt;
=== How to contribute ===&lt;br /&gt;
Anyone can read the wiki. You can also edit pages, all you need to do is [https://wiki.internetcomputer.org/wiki/Special:CreateAccount create an account]. See more in [[Contributing to the wiki]].&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* &#039;&#039;&#039;The Internet Computer project website (hosted on the IC): [https://internetcomputer.org/ internetcomputer.org]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>NikolasHaimerl</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=How-To:_SNS_swap_participation_via_quill&amp;diff=4386</id>
		<title>How-To: SNS swap participation via quill</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=How-To:_SNS_swap_participation_via_quill&amp;diff=4386"/>
		<updated>2023-02-24T09:03:20Z</updated>

		<summary type="html">&lt;p&gt;NikolasHaimerl: Created page with &amp;quot;__NUMBEREDHEADINGS__ The goal of this page is to explain how to participate in the SNS sale via quill. == Background and objective == * We assume that you have a working insta...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NUMBEREDHEADINGS__&lt;br /&gt;
The goal of this page is to explain how to participate in the SNS sale via quill.&lt;br /&gt;
== Background and objective ==&lt;br /&gt;
* We assume that you have a working installation of quill and are familiar with the tool. For an introduction into quill, please see [https://medium.com/dfinity/introducing-quill-a-ledger-and-governance-toolkit-for-the-internet-computer-1df086ce5642 here]. For instructions on how to install and use quill please see the readme on [https://github.com/dfinity/quill GitHub] and the [https://internetcomputer.org/docs/current/references/quill-cli-reference/ quill documentation].&lt;br /&gt;
* For local testing with a local testnet see the corresponding [https://internetcomputer.org/docs/current/developer-docs/integrations/sns/get-sns/local-testing documentation]&lt;br /&gt;
* More information on SNS can be found [https://internetcomputer.org/sns/ here]&lt;br /&gt;
== Quill commands to participate in an SNS sale ==&lt;br /&gt;
For some more information on the commands that you can run with quill run &#039;&#039;&#039;quill help&#039;&#039;&#039; or &#039;&#039;&#039;quill sns help&#039;&#039;&#039; for SNS-specific commands. &lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
* PEM file: To use quill you need your secret key in a PEM file. For help on how to create new identities and manage them see the corresponding documentation for dfx [https://internetcomputer.org/docs/current/references/cli-reference/dfx-identity#:~:text=dfx%20identity%20new%E2%80%8B,new%20command%20in%20any%20project. here]. Save the path to the PEM file as you will need it later. The content of the PEM file should look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----BEGIN EC PRIVATE KEY-----&lt;br /&gt;
MHQCAQEEICJxApEbuZznKFpV+VKACRK30i6+7u5Z13/DOl18cIC+oAcGBSuBBAAK&lt;br /&gt;
oUQDQgAEPas6Iag4TUx+Uop+3NhE6s3FlayFtbwdhRVjvOar0kPTfE/N8N6btRnd&lt;br /&gt;
74ly5xXEBNSXiENyxhEuzOZrIWMCNQ==&lt;br /&gt;
-----END EC PRIVATE KEY-----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Canister Ids file: You will need a file which stores the mappings of canister ids to their names. It should look something like this (Note: The actual ids will be different for the sale you want to participate in):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;root_canister_id&amp;quot;:&amp;quot;sgymv-uiaaa-aaaaa-aaaia-cai&amp;quot;,&lt;br /&gt;
&amp;quot;governance_canister_id&amp;quot;:&amp;quot;sbzkb-zqaaa-aaaaa-aaaiq-cai&amp;quot;,&lt;br /&gt;
&amp;quot;index_canister_id&amp;quot;:&amp;quot;s24we-diaaa-aaaaa-aaaka-cai&amp;quot;,&lt;br /&gt;
&amp;quot;swap_canister_id&amp;quot;:&amp;quot;sp3hj-caaaa-aaaaa-aaajq-cai&amp;quot;,&lt;br /&gt;
&amp;quot;ledger_canister_id&amp;quot;:&amp;quot;si2b5-pyaaa-aaaaa-aaaja-cai&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can find the correct canister Ids from [https://dashboard.internetcomputer.org/canister/qaa6y-5yaaa-aaaaa-aaafa-cai the SNS-W]. Click ‘+’ next to list_deployed_snses, and then click “Call”.&lt;br /&gt;
Create a file called canister_ids and insert the SNS canister ids in the format from above. &lt;br /&gt;
&lt;br /&gt;
=== Check Status of SNS ===&lt;br /&gt;
To verify that your setup works and the SNS is up and running. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Quill will ask you to sign and send this transaction. The response will be a description of each canister that make up the SNS. For participation in the SNS sale the canister &amp;quot;swap&amp;quot; is important. It should look something like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
swap = opt record {&lt;br /&gt;
      status = opt record {&lt;br /&gt;
        controller = principal &amp;quot;r7inp-6aaaa-aaaaa-aaabq-cai&amp;quot;;&lt;br /&gt;
        status = variant { running };&lt;br /&gt;
        freezing_threshold = 2_592_000 : nat;&lt;br /&gt;
        balance = vec { record { blob &amp;quot;\00&amp;quot;; 30_000_000_000_000 : nat } };&lt;br /&gt;
        memory_size = 11_029_070 : nat;&lt;br /&gt;
        cycles = 30_000_000_000_000 : nat;&lt;br /&gt;
        settings = record {&lt;br /&gt;
          controller = principal &amp;quot;r7inp-6aaaa-aaaaa-aaabq-cai&amp;quot;;&lt;br /&gt;
          freezing_threshold = 2_592_000 : nat;&lt;br /&gt;
          controllers = vec { principal &amp;quot;r7inp-6aaaa-aaaaa-aaabq-cai&amp;quot; };&lt;br /&gt;
          memory_allocation = 0 : nat;&lt;br /&gt;
          compute_allocation = 0 : nat;&lt;br /&gt;
        };&lt;br /&gt;
        idle_cycles_burned_per_day = 0 : nat;&lt;br /&gt;
        module_hash = opt blob &amp;quot;d\92\91\d2W:^\05\d9\ac\ec\a0\cd\a6=\de\df\1b\0f\c9\86\e6\8d\86+\d0\01\8b\f8f\81\b1&amp;quot;;&lt;br /&gt;
      };&lt;br /&gt;
      canister_id = opt principal &amp;quot;sp3hj-caaaa-aaaaa-aaajq-cai&amp;quot;;&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It&#039;s vital that the canister&#039;s status in &#039;&#039;&#039;running&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Getting SNS Sale parameters === &lt;br /&gt;
Before being able to buy any tokens, it is important to know what the parameters of the sale are. You can query them via &#039;&#039;&#039;dfx&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfx canister --network https://ic0.app call &amp;lt;swap_canister_id&amp;gt; get_sale_parameters &amp;quot;(record {})&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The response should look something like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  record {&lt;br /&gt;
    params = opt record {&lt;br /&gt;
      min_participant_icp_e8s = 100_000_000 : nat64;&lt;br /&gt;
      neuron_basket_construction_parameters = opt record {&lt;br /&gt;
        dissolve_delay_interval_seconds = 31_536_000 : nat64;&lt;br /&gt;
        count = 3 : nat64;&lt;br /&gt;
      };&lt;br /&gt;
      max_icp_e8s = 50_000_000_000 : nat64;&lt;br /&gt;
      swap_due_timestamp_seconds = 1_677_398_018 : nat64;&lt;br /&gt;
      min_participants = 3 : nat32;&lt;br /&gt;
      sns_token_e8s = 500_000_000_000 : nat64;&lt;br /&gt;
      sale_delay_seconds = null;&lt;br /&gt;
      max_participant_icp_e8s = 20_000_000_000 : nat64;&lt;br /&gt;
      min_icp_e8s = 5_000_000_000 : nat64;&lt;br /&gt;
    };&lt;br /&gt;
  },&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The important parameters for the payment flow are the &#039;&#039;&#039;min_participant_icp_e8s&#039;&#039;&#039; and &#039;&#039;&#039;max_participant_icp_e8s&#039;&#039;&#039; with the former being the minimum amount of ICP per particpant and the latter being the maximum amount of ICP per participant to participate in the sale. Note that for your first payment you will have to pay with at least as many ICP as the number &#039;&#039;&#039;min_participant_icp_e8s&#039;&#039;&#039; suggests, otherwise your request will be denied. Any purchase after that can be of any amount as long as the total amount of ICP used for purchases is not higher than &#039;&#039;&#039;max_participant_icp_e8s&#039;&#039;&#039;. &lt;br /&gt;
=== Getting a Ticket ===&lt;br /&gt;
The first step in the actual payment flow is to acquire a ticket via quill. You can specify the amount you want to purchase but note that for the first time, it has to be at least as high as &#039;&#039;&#039;min_participant_icp_e8s&#039;&#039;&#039;.&lt;br /&gt;
The first command to get a ticket will create the transaction and has to be stored before it can be sent. For that purpose choose a path for this tx.json file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; new-sale-ticket --amount-icp-e8s &amp;lt;amount_to_be_purchased&amp;gt; &amp;gt; PATH/tx_new_ticket.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To do a dry run of this transaction run &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; send --dry-run PATH/tx_new_ticket.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It will show you the full transaction without sending it. To actually send the transaction use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; send PATH/tx_new_ticket.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The response will look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  record {&lt;br /&gt;
    result = opt variant {&lt;br /&gt;
      Ok = record {&lt;br /&gt;
        ticket = opt record {&lt;br /&gt;
          creation_time = 1_677_227_094_330_351_716 : nat64;&lt;br /&gt;
          ticket_id = 2 : nat64;&lt;br /&gt;
          account = opt record {&lt;br /&gt;
            owner = opt principal &amp;quot;iowfl-yzooa-br3dt-77erl-nlm7f-kplhq-php75-hw3an-aeqn2-swh4t-3qe&amp;quot;;&lt;br /&gt;
            subaccount = null;&lt;br /&gt;
          };&lt;br /&gt;
          amount_icp_e8s = 100_000_000 : nat64;&lt;br /&gt;
        };&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
  },&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this case, the amount specified was 100 Million e8 ICP. The important information here is the &#039;&#039;&#039;ticket_id&#039;&#039;&#039; and the &#039;&#039;&#039;creation_time&#039;&#039;&#039;, you will need them in the next step. Note that you cannot create another ticket while a ticket is still open. Use the ticket within 24 hours or the time stamp on the ticket will be outdated and it can no longer be used. To delete an existing ticket call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfx canister --network https://ic0.app --identity PATH/identity.pem --update call &lt;br /&gt;
 &amp;lt;swap_canister_id&amp;gt;  notify_payment_failure &amp;quot;(record {})&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you can request a new ticket. &lt;br /&gt;
=== Sending the Payment Transaction ===&lt;br /&gt;
A ticket was created and the actual payment can now be done. Similarly, to the previous step you have to create a file for the transaction, optionally perform a dry run to see the transaction before sending it and the send the transaction to the Internet Computer. Note that the creation_time format from the ticket has to be changed from &#039;&#039;&#039;&#039;1_677_227_094_330_351_716&#039;&#039;&#039; to &#039;&#039;&#039;1677227094330351716&#039;&#039;&#039; for the payment transaction to accept the timestamp format. &lt;br /&gt;
The three commands are the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; pay --amount-icp-e8s &amp;lt;amount_to_be_purchased&amp;gt; --ticket-creation-time &amp;lt;creation_time&amp;gt; --ticket-id &amp;lt;ticket_id&amp;gt; &amp;gt; PATH/tx_pay.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To do a dry run of this transaction run &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; send --dry-run PATH/tx_pay.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and send it with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; send PATH/tx_pay.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You will have to sign multiple transactions during this process.&lt;br /&gt;
The response will look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  record {&lt;br /&gt;
    icp_accepted_participation_e8s = 100_000_000 : nat64;&lt;br /&gt;
    icp_ledger_account_balance_e8s = 100_000_000 : nat64;&lt;br /&gt;
  },&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The return value &#039;&#039;&#039;icp_accepted_participation_e8s&#039;&#039;&#039; shows how many ICPs were already accepted in the SNS sale and the return value &#039;&#039;&#039;icp_ledger_account_balance_e8s&#039;&#039;&#039; shows how many ICPs have been sent to the SNS sale canister. If at the end of the sale, these two numbers are not equivalent and &#039;&#039;&#039;icp_ledger_account_balance_e8s&#039;&#039;&#039; is greater than &#039;&#039;&#039;icp_accepted_participation_e8s&#039;&#039;&#039; you can get a refund of your ICP that were not used in the SNS sale after the sale has concluded. Should the SNS sale abort you will get the amount &#039;&#039;&#039;icp_accepted_participation_e8s&#039;&#039;&#039; refunded automatically. &lt;br /&gt;
=== Checking your balance ===&lt;br /&gt;
To query your balance of all accepted ICP during a SNS sale run &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; get-sale-participation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To query your balance of the SNS ledger run &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quill --pem-file &amp;lt;path&amp;gt; sns --canister-ids-file &amp;lt;path&amp;gt; balance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
While the sale is still ongoing the return will most likely be &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(0 : nat)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is the balance of the SNS ledger which will &#039;&#039;&#039;NOT&#039;&#039;&#039; be updated until the sale is over and the SNS tokens are allocated. Thus, any purchase you make during the sale will not be visible through this command. &lt;br /&gt;
To check your balance of tokens that have already been committed and the total amount of ICP you have sent to the SNS sale canister you need to look at the return value of when you called &#039;&#039;&#039;pay&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>NikolasHaimerl</name></author>
	</entry>
</feed>