Depositing Stablecoins

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

Initiate Stablecoin Deposit

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

init_deposit_stable allows you fabricate an unsigned Ethereum Tx payload that initiates a stablecoin deposit request. You can sign this transaction yourself and send to the network, or broadcast any custodian API that supports signing a raw Tx payload. Note the only one init_deposit_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 operation until an ongoing redeem stable is finished with finish_deposit_stable.

Headers

Request Body

{
    "success": true,
    "tx_hash": "0x......",
    "action": "anchor/init_deposit_stable",
    "stable_denom": "uusd", 
    "stable_amount": "500000000"
}

Finish Stablecoin Deposit

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

finish_deposit_stable allows you to finish a previously requested deposit stable operation. This endpoint returns an unsigned Ethereum transaction payload. You can sign the 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_deposit_stable"
}

Check Stablecoin Deposit Status

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

GET /api/v1/deposit_stable_status allows you to check the status of an ongoing deposit_stable operation. You may want to periodically check the progress of your deposit_stable request, since an operation may take up to minutes due to congestion on the Ethereum network. Please note that status being "finished" does NOT mean you have run a full cycle of deposit_stable operation; you still need to send another transaction from POST /api/v1/finish_deposit_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 stablecoins (e.g. UST) and 
    //     dispatched stablecoins through Shuttle
    // 1 - (Terra) terra-side client account has received stablecoins
    //     triggering DepositStable soon
    // 2 - (Terra) DepositStable action is processed and aTerra tokens (e.g. aUST) have
    //     been received
    // 3 - (Terra) aTerra tokens are sent to the ether-side wrapper contract
    //     through Shuttle
    // 4 - (Ethereum) contract has received aTerra; 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_deposit_stable
    "status": "pending",
    
    // Denomination
    // denomination stablecoin to be deposited
    "stable_denom": "uusd", 
    
    // Amount
    // amount of stablecoins to be deposited
    "stable_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