Skip to content

If the Listing Does Not Complete

This page is for the members of a campaign DAO, for its creator and for guardians. It explains what can happen between the end of a campaign and the moment its token is listed on ICPSwap, and what, if anything, each of you has to do. The campaign page shows the same information in a panel under Liquidity Pool, with a live countdown and one button for the next step.

  1. When the campaign completes, its ICP is added to its ICPSwap pool, below the launch price.
  2. Then the tokens follow, automatically. Every few minutes an attempt adds the campaign’s tokens to the pool, starting at the launch price. If the pool’s price has moved away from the launch price, the attempt first sells a small part of the tokens to bring it back, then adds the rest. The ICP those sales receive goes to the campaign DAO; it is never added back to the pool.
  3. When the price is at the launch price, the first attempt lists. The price of a pool can move between the steps of one attempt — ordinary trading can do it — so an attempt may not land, and the next one tries again.

What the automatic job guarantees:

  • Before any decision of the DAO, it sells at most about 10% of the tokens meant for the pool, at about the launch price, and then pauses, or stops earlier if several attempts in a row did not land.
  • After a decision of the DAO (a Motion, below), every attempt that does not land counts, so the job stops again by itself after several such attempts and waits for the next decision.
  • 7 days after the campaign’s ICP was added to the pool, the pool manager stops the job and hands what it holds for the campaign to the campaign DAO’s treasury (the hand-over, below). The hand-over counts as finished only once what it withdrew from the pool has arrived.
  • Nothing goes to the campaign DAO before the campaign has completed. The hand-over, and every other payment to the DAO’s treasury described on this page, waits until the pool manager has seen the campaign as completed, so that its contributors’ vesting locks and voting power exist first. It then starts on its own; nobody needs to press anything. A campaign that never completes sends nothing to the DAO.

A pause or a stop does not mean that anyone did anything wrong. It can happen to any campaign.

State shown on the pageWhat it meansWhat to doWhoBy when
Waiting for the campaign to finishThe pool exists; liquidity is added when the campaign completes.Nothing.Nobody needs to act.—
Listing in progressThe ICP is in the pool; the tokens are being added automatically.Nothing.Nobody needs to act.The countdown shows when the hand-over would start.
Listing paused: waiting for the DAOThe automatic attempts sold the most they may sell on their own (10%) and paused.Propose the continue Motion; once it passes, send it from the page.Any DAO member who can propose; anyone can send.Before the countdown ends.
Listing stopped: waiting for the DAOSeveral attempts in a row did not land, so the job stopped.Propose the resume Motion; once it passes, send it from the page.Any DAO member who can propose; anyone can send.Before the countdown ends.
The pool has to be re-createdICPSwap removed the pool; re-creating it needs an ICPSwap passcode.Send the amount shown to the campaign’s funding account.The creator, or anyone.Before the campaign’s completion window ends.
All tokens meant for the pool were soldAfter a DAO decision, the sales used up the tokens before the listing could land.Nothing.Nobody needs to act.The ICP from the sales goes to the DAO.
Hand-over to the DAO waiting for the campaign to completeThe 7-day window ended without a listing, but the campaign has not completed yet. Nothing is sent to the DAO before it completes.Nothing.Nobody needs to act.When the campaign completes, the hand-over starts on its own.
Hand-over to the DAO starting / in progressThe 7-day window ended without a listing, and the campaign has completed.Nothing.Nobody needs to act.It completes on its own within a few minutes.
Hand-over to the DAO paused: a transfer has not arrivedOne transfer out of the ICPSwap pool did not arrive; the hand-over is not marked as finished.Nothing on the DAO side: a failed pool transfer is returned only by ICPSwap, from that pool’s list of failed transactions, and no proposal or on-chain call of the pool manager or the DAO can return it. Details show the pool and the missing amount.Only ICPSwap can return it. Once it is back, anyone can send it to the DAO.After about an hour the hand-over finishes and the missing amount is recorded. If ICPSwap returns it, the page offers Send to the DAO; anyone can press it.
The listing is now the DAO’sThe hand-over is finished: what the pool manager sent is in the DAO’s treasury.Decide what to do with it: for example, add it to the pool.Any DAO member who can propose.No deadline.
ListedBoth sides are in the pool; trading is open.Nothing.——

The decision is a Motion of the campaign DAO whose text contains one exact line:

  • to continue after the 10% pause: MODEL_E_LIST_NOW:<campaign id>
  • to resume after a stop: MODEL_E_RESUME_LISTING:<campaign id>

The button on the campaign page opens the DAO’s proposal form with the whole text already written, including that line; you only review it and submit. A Motion moves no funds.

A Motion runs its whole voting period: 3 days. So about two decisions fit in the 7-day window. Propose early.

Once the Motion has passed, the page offers Send the DAO’s decision. Anyone with a connected wallet can press it, Plug included; it costs them nothing. The job then runs again at once. Each Motion can be used once. A press that would change nothing, because the listing is already done or the DAO’s decision is already recorded, is turned away before it runs, and the page shows the decision as already applied. The pool manager learns of the DAO’s newest Motion by itself, about every 5 minutes. So right after the pool manager has been updated, or when the Motion is sent within minutes of passing, the page may keep trying for up to about 6 minutes before the decision is accepted; nothing moves meanwhile.

Guardians cannot give this decision. It belongs to the campaign DAO. A guardian can tell the community what the page shows, or propose the Motion like any DAO member with enough voting power.

If the tokens are not in the pool 7 days after the campaign’s ICP was added, the pool manager stops the job for good and, once the campaign has completed, sends to the campaign DAO’s treasury (the DAO governance canister’s own account):

  • the tokens meant for the pool that it holds or withdraws from the pool;
  • the creator’s starting position in the pool, if there is one;
  • the ICP on the campaign’s proceeds account (what the automatic sales received).

If the campaign failed, nothing is sent to the campaign DAO.

Each transfer is recorded before it is sent and nothing is sent twice. Once the hand-over is finished, no Motion resumes the job. If a payment out of the ICPSwap pool does not arrive, the page shows the hand-over as paused; the pool manager checks again for up to one hour, then records the missing amount and finishes the hand-over. Two accounts of the campaign only ever pay the DAO’s treasury: the hand-over account and the account of the automatic sales. If something reaches them later (for example ICPSwap returning that payment), the page shows a Send to the DAO button once the campaign has completed; anyone can press it, with or without a connected wallet, and the destination cannot be changed. Requests that would be refused are, as a rule, turned away before they run, and the number of these transfers across all campaigns is limited to a few dozen every ten minutes.

The listing is then the DAO’s to complete, with its own proposals. The page offers an Add Liquidity to Pool proposal already filled with the tokens it received and the matching ICP at the launch price (reduced to the ICP the treasury holds, if it holds less). The pool uses the two amounts at its own current price, and what it does not use returns to the treasury. Adding liquidity is a critical proposal: it runs 7 days, or closes earlier with a large early majority and the guardian’s approval. With the default settings it also needs a critical quorum to pass: at least 20 voters and 350,000 voting power in total. A campaign DAO with fewer than 20 voters cannot pass it. Creating the proposal, like any proposal of the campaign DAO, takes a deposit of 30,000 campaign tokens that are not locked; contributors’ tokens stay in their vesting locks until the first part unlocks, one vesting period (7 or 30 days) after the campaign completes, so until then only someone holding unlocked tokens (or the guardian, who pays no deposit) can propose it. The DAO may also decide to do something else with these funds, such as creating a new pool or keeping them.

Message (start)Meaning
MODEL_E_GUARDIAN_LEVER_RETIREDThe guardian can no longer resume or continue a listing; only the campaign DAO can.
MODEL_E_LIST_NOW_COOLDOWNThis Motion number was checked less than a minute ago (by anyone); the page tries again by itself, or send it again in a minute.
MODEL_E_RELAY_FRONTIER_BUSYThe pool manager has not read the DAO’s newest Motion yet. It reads it by itself, about every 5 minutes (a DAO that did not answer is read less often, up to about once an hour); sending the decision does not make it read sooner. Nothing moved; the page tries again by itself for up to about 6 minutes, or send it again in a few minutes.
... has no Motion above ...The DAO’s newest Motion, as the pool manager last read it (the text says how long ago), is older than this number. A Motion created since then, including one that has just passed, is accepted after the next read, about every 5 minutes; the page tries again by itself for up to about 6 minutes.
MODEL_E_SONS_UNREADABLE / MODEL_E_LIST_NOW_SONS_UNREADABLEThe campaign’s DAO, or the record that names it, did not answer. Nothing moved; send the decision again later.
... not adoptedThe Motion has not passed yet.
... does not carry ...The Motion’s text lacks the exact line, or asks for the other decision; propose a new one from the page.
... already resumed this campaign onceEach Motion is used once; the next stop needs a new Motion.
BUSY / MODEL_E_POOL_BUSYAnother operation on the pool is running; nothing changed, it is retried.
MODEL_E_HANDOVER_RACEDTwo automatic passes met at the hand-over; one stood down, the other continues.
MODEL_E_HANDED_TO_DAOThe window ended and the funds are with the DAO; the job does not resume.
MODEL_E_HANDOVER_STOPPED_...A payment out of the ICPSwap pool did not arrive; the hand-over is paused for up to an hour, then finishes with the amount recorded.
MODEL_E_WAITS_FOR_COMPLETEDThe campaign has not completed yet, so nothing is sent to the campaign DAO; the transfers start on their own once it completes.
MODEL_E_SWEEP_...The answer to Send to the DAO: not yet (the automatic job still handles the account), sent recently, many campaigns sent in the last few minutes (try again in about ten minutes), or nothing to send.
MODEL_E_POOL_UNREADABLEThe pool did not answer a read; nothing changed, the next pass tries again.

The campaign page always shows the meaning and the next step next to a message; the original text is under Details.