I’m going to assume for the sake of clarity that everything is happening inside ethereum.

Mechanism overview

The mechanism has the following parameters:

Token sale price, which I sometimes call the ceiling price Token purchase price, which I sometimes call the floor price

The token sale mechanism parameters can vary over time and are determined by the sale administrator.

The administrator may be a fully automated smart contract, an externally operated account, or can be a smart contract with external participants. We could think of sale administrator as a role — I’m just going to assume that the sale administrator exists at some fixed ethereum address.

The mechanism exposes the following functions:

move_ceiling, and move_floor callable only by the sale administrator. purchase_tokens, callable by the anyone. sell_tokens, callable by the anyone. The ERC20 token interface, callable by anyone.

The sale mechanisms will sell any number of tokens at the sale price. By doing this, it will accumulate a balance. It will use its balance to buy any number of tokens at the purchase price.

Purchasing tokens from the mechanism will increases the caller’s ERC20 balance, and selling tokens to the mechanism will decreases the caller’s ERC20 balance.

The sale never ends. This means we can bound the price of the token above. It also means that the total supply of tokens is not necessarily bounded, and is almost certainly not fixed.

A constant ceiling removes all reasonable expectation of return that token purchasers may otherwise have. Any low-enough ceiling can prevent “pumps-and-dumps” from pumping.

The buy-back never ends. This means we can bound the price of the token below.

This protects token purchasers from downside risk. This can isolate token purchasers from loss due to a token purchase. Any high-enough floor can prevent “pump-and-dumps” from dumping.

I think this will be safer than the status quo we see in token sales today.