Depositing Stablecoins
ERC20 stablecoins (e.g. UST) can be redeemed to receive ERC20 aTerra using the below endpoints:
Endpoint Name
Method
Description
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
Authentication
string
Anchor client key
Request Body
stable_denom
string
Denomination of stablecoin to deposit
Example: "uusd"
stable_amount
string
(uint256) amount of stablecoins to deposit to Anchor in 18 decimals.
{
"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
Authentication
string
Anchor client key
{
"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
Authentication
string
Anchor client access key.
{
// 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
Was this helpful?