auction-keepercan read an auction's status directly from the blockchain or from a Graph node. Its unique feature is the ability to plug in external bidding models which tell the keeper when and how much to bid. Bid prices are received from separate bidding models.
auction-keeper. The simplest example of a bidding model is a shell script which echoes a fixed price.
auctionsStartedare checked for active status. If a new auction is detected, a new bidding model is started.
bin/auction-keeper -hto see an up-to-date list of arguments and usage information.
--type collateral|surplus|debtA keeper can only participate in one type of auction
--type=collateralis passed, the
collateral_typemust also be provided. A keeper can only bid on a single collateral type auction at a time. NOTE: Currently, only the
ETH-Acollateral type is used.
--eth-from ADDRESSAddress of the keeper. Warning: Do not use the same
eth-fromaccount on multiple keepers as it complicates
SAFEEngineinventory management and will likely cause nonce conflicts. Using an
eth-fromaccount with an open SAFE is also discouraged.
--rpc-host HOSTURI of ETH JSON-RPC node. Default
--rpc-timeout SECSDefaults to
--rpc-host) is required. Parity and Geth nodes are supported over HTTP. Websocket endpoints are not supported in
pyflex. A full or archive node is required; light nodes are not supported.
--fixed-gas-price GWEIUse a fixed gas price (in GWEI)
--gas-initial-multiplier MULTIPLIERWhen using an API source for fetching the initial gas price, this tunes the price. It's ignored when you're using
--fixed-gas-price. In case no strategy is specified it defaults to
--gas-reactive-multiplier MULTIPLIEREvery 30 seconds, a transaction's gas price will be multiplied by this value until it is mined or
--gas-maxiumumis reached. Not used if
gasPriceis passed from your bidding model. NOTE: Parity, as of this writing, requires a minimum gas increase of
1.125to propagate a transaction replacement; this should be treated as a minimum value unless you want replacements to happen less frequently. This multiplier defaults to
1.125if no other value is given.
--gas-maximum GWEIMaximum value for gas price
joins system coins to
SAFEEngineon startup and
exits all system coins and collateral upon shutdown. The keeper provides options for managing
SAFEEnginebalances, which may be turned off in case you'd like to manage balances manually.
exitsystem coin on shutdown
exitcollateral on shutdown
--return-collateral-interval SECSHow often, in seconds, the keeper
exits won collateral from
0to disable completely. Defaults to
--safe-engine-system-coin-target ALL|<integer>Amount of system coins the keeper will try to keep in
SAFEEngineby rebalancing with
exits between its own wallet and its balance inside GEB. Defaults to
ALLand the keeper will
joinall of an account's systems coins.
SAFEEnginebalance is insufficient in order to place a bid
SAFEEngineto an auction contract for an active bid.
--from-block BLOCK_NUMBERScrape the chain for
ModifySAFECollateralizationevents, starting at
BLOCK_NUMBER. Set this to the block where the first ever SAFE was created. After startup, only new blocks will be queried. The scrape process can last a significant amount of time as the system matures. NOTE: To manage the performance of debt auction bidding, periodically adjust
--from-blockto the block number of the oldest liquidation which has not been
popDebtFromQueued yet. Defaults to
geb.starting_block_number, the block in which the system was deployed.
--graph-endpoints NODE1,NODE2Comma delimited list of Graph endpoints used to retrieve
ModifySAFECollateralizationevents. If multiple endpoints are passed, they will be pinged sequentially in the order they were specified in case one or many of them fail. NOTE: This flag is only supported for collateral auctions.
--graph-block-threshold NUMBER_OF_BLOCKSWhen the keeper fetches SAFE data to find critical safes, use the
--graph-endpointswhen the keeper's last processed block is older than
NUMBER_OF_BLOCKS. The graph will be faster than a node when fetching historical data, but recent graph blocks might be slightly delayed compared to an ethereum node. This allows the keeper to to fetch historical data from the graph, but use the node for all newer blocks. Defaults to
--min-auction AUCTION_IDIgnore auctions older than
--max-auctions NUMBERLimit the number of bidding models created to handle active auctions.
--block-check-interval <integer>, default:1How often the keeper checks for new blocks
--bid-check-interval <integer>, default 4How often the keeper checks model processes for new bids
--block-check-intervalmust be greater than
--bid-check-intervalmust be greater than 180. However, this will make your keeper slower and it will not quickly bid in auctions.
--flash-swapTurn on Uniswap flash swaps for collateral auctions. Not supported for
--shards NUMBER_OF_KEEPERNumber of keepers you plan to run. You must set this for all keepers
--shard-id SHARD_IDYou must specify this for every keeper, counting from 0
--shards 3and assign
--shard-id 2for the first, second and third keeper.
liquidateSAFEs and this way
settleAuctions (in the case of English collateral, debt and surplus auctions)
--settle-for <ACCOUNT1 ACCOUNT2>|NONE|ALLSpace-delimited list of accounts for which the keeper will settle auctions. Specify
NONEto disable this option. If you'd like to donate your gas to settle auctions for all participants,
ALLis also supported. Defaults to only the keeper address.
--bid-delayafter each bid, multiple transactions can be submitted asynchronously while still allowing some time for older transactions to complete, freeing up the queue.
liquidateSAFEs or start a new surplus or debt auction regardless of whether or not your system coin or protocol token balance is sufficient to bid
--start-auctions-only) and bid (
--bid-only) in auctions