Redeeming Stablecoins

ERC20 aTerra tokens (e.g. aUST) can be redeemed to ERC20 stablecoins using the below endpoints:

Initiate Stablecoin Redemption

POST https://ropsten-api.anchorprotocol.com/api/v1/init_redeem_stable

init_redeem_stable allows you to initiate a stablecoin redemption request. This endpoint returns an unsigned Ethereum transaction payload. You can sign this transaction yourself and send to the network, or broadcast using any custodian API that supports signing a raw Tx payload. Note that only one init_redeem_stable operation can take place at the same time; even if you successfully broadcast the resulting Tx to the network, the Ethereum contract will block any subsequent operations until an ongoing redeem stable is finished with finish_redeem_stable.

Headers

Request Body

{
    "success": true,
    "tx_hash": "0x......",
    "action": "anchor/init_redeem_stable",
    "underlying_denom": "uusd", 
    "a_terra_amount": "500000000"
}

Finish Stablecoin Redemption

POST https://ropsten-api.anchorprotocol.com/api/v1/finish_redeem_stable

finish_redeem_stable allows you to finish a previously requested redeem stable operation. This endpoint returns an unsigned Ethereum transaction payload. You can sign this transaction yourself and send to the network, or broadcast using any custodian API that supports signing a raw Tx payload.

Headers

{
    "success": true,
    "tx_hash": "0x......",
    "action": "anchor/finish_redeem_stable"
}

Check Stablecoin Redemption Status

GET https://ropsten-api.anchorprotocol.com/api/v1/redeem_stable_status

GET /api/v1/redeem_stable_status allows you to check the status of an ongoing redeem_stable operation. You may want to periodically check the progress of your redeem_stable request, since an operation may take up to minutes due to congestion on either side of the networks. Please note that status being "finished" does NOT mean you have run a full cycle of redeem_stable operation; you still need to send another transaction from POST /api/v1/finish_redeem_stable to finalize your operation. This endpoint responds with HTTP 204 when there is no ongoing operation.

Headers

{
    // Phase
    // 0 - (Ethereum) wrapper contract has received aTerra tokens (e.g. aUST) and 
    //     dispatched through Shuttle
    // 1 - (Terra) terra-side client account has received aTerra tokens
    //     triggering RedeemStable soon
    // 2 - (Terra) RedeemStable action is processed and stablecoins (e.g. UST) have
    //     been received
    // 3 - (Terra) stablecoins are sent to the ether-side wrapper contract
    //     through Shuttle
    // 4 - (Ethereum) contract has received stablecoins; operation finished
    "phase": 0,
    
    // LastUpdated
    // Unix timestamp at which the last update to this response has been made
    "last_updated": 1608662606,
    
    // Status
    // Operation status
    // pending   - operation in flight
    // failed    - operation failed; last known tx has been recorded
    // finished  - operation finished; you can call /finish_redeem_stable
    "status": "pending",
    
    // UnderlyingDenom
    // Underlying denomination of aTerra tokens to be redeemed
    "underlying_denom": "uusd", 
    
    // aTokenAmount
    // amount of aTerra tokens to be redeemed
    "a_terra_amount": :20000000:,
    
    // TxHash
    // List of known tx hashes and the corresponding network name
    "tx_hash": [
        {
            "network": "ethereum",
            "tx_hash": "0x...."
        },
        {
            "network": "terra",
            "tx_hash": "00ABCD..."
        },
        ...
    ]
}

Last updated