Smart Contract interaction

Interacting with Kiln Onchain without access to Kiln Connect API or User Facing applications.

We DO NOT recommend you proceed with this path unless you are an experienced user and have an urgent need to access the funds.

Request exit via Etherscan

  1. Find your deposit transaction on your wallet transaction history.

  2. From the Tx Hash on etherscran click the To address to open the smart contract page.

    1. You can find all Kiln Pooled Staking address here: Ethereum - pooling where you find the list of all partners deposit contracts

  3. Navigate to Pooled staking deposit Contract tab and sub tab Read as Proxy , find 3. balanceOf (0x70a08231)

    input your wallet address and click query.

    1. You will get the balance in shares of your wallet.

    2. eg. 732369644308641657 -> (0.732369644308641657)

  4. Navigate to the Contract tab and the Write as Proxy , connect your wallet that did the initial deposit, input the amount you want to exit (in gwei) in 10. requestExit (0x721c6513)

    and click write, this will request exit the selected amount of shares and will give you an exit ticket.

    1. To exit your full position, input the amount you received from 3. balanceOf .

    2. Once this transaction is signed and successful in your transaction history, you will receive an exit ticket in your wallet.

      1. You can search for exit tickets for by pasting your wallet in the search bar on this dune query.

      2. Important info are ticketIndex and caskId to claim on

Withdraw available request via Etherscan - Advanced

We recommend not doing this following part alone on Etherscan and wait for the UI to be back online.

Requirements : Your exit ticket need to be ready, you can monitor this on this dune query.

  1. Navigate to the Contract tab and the Read as Proxy , and call 14. pools (0xc5c51dca) and click query, this will return the underlying vPool.

    1. Navigate to this vPool (Kiln's) contract on Etherscan and get the 10. exitQueue (0xffed4bf5)

      1. Kiln Exit Queue : 0x8d6Fd650500f82c7D978a440348e5a9b886943bF https://etherscan.io/address/0x8d6Fd650500f82c7D978a440348e5a9b886943bF

    2. On the exit queue contract navigate to the Contract tab and the Read as Proxy , and call 13. ticketIdAtIndex (0xeddd1bed) with your ticketIndex (from dune) and click query.

      1. You should get a really long string like:

  2. Encode your ticketId in Hex and 32bytes for the claim transaction :

    1. Use a decimal to hex converter to get the hex value of your ticketId:

      1. eg. 144E10000000000000032BCBEB2F9CA80DF7B

    2. Pad it on the left with zeros to 32 bytes (64 hex chars):

      1. eg. 000000000000000000000000000144E10000000000000032BCBEB2F9CA80DF7B

    3. Make sure you have a hex value by adding 0x:

      1. eg. 0x000000000000000000000000000144E10000000000000032BCBEB2F9CA80DF7B

  3. To continue beyond this step, you should have:

    1. The exitQueue (from step 2.a)

    2. Your exit ticketIds (from step 2.b)

    3. Their related caskIds (from dune)

  4. To claim your ticket, go on the ExitQueueHelper contract on Etherscan and navigate to the Contract tab and the Write Contract , and call 1. multiClaim (0xb7ba18c7) with your ticket in parameters.

  5. Here is an example of the parameters:

    1. exitQueues :["0x8d6Fd650500f82c7D978a440348e5a9b886943bF"]

    2. ticketIds : [[0x000000000000000000000000000144E10000000000000032BCBEB2F9CA80DF7B]]

    3. casksIds : [[686]]

  6. After this your exit ticket will be burned and you will receive your ETH directly in your wallet.

Last updated

Was this helpful?