Oasys
Overview
Oasys is a blockchain project specifically designed for the gaming industry, aiming to provide a highly scalable, fast, and efficient infrastructure for decentralized gaming applications (dApps). The Oasys ecosystem leverages a dual-layer architecture combining a Layer-1 hub and Ethereum's Layer-2 scaling solution to optimize performance, scalability, and transaction costs.
Explorer
https://explorer.oasys.games/
Wallets Types
BitGo enables holding bera in the following wallet types:
| Multisig Cold | Multisig Hot | MPC Cold | MPC Hot | |
|---|---|---|---|---|
| Custody | ❌ | ❌ | ✅ | ❌ |
| Self-Custody | ❌ | ❌ | ✅ | ✅ |
Ticker Symbols
| Mainnet | Testnet |
|---|---|
| oas | toas |
Faucet
You can use a faucet to obtain free testnet Oasys for development and testing purposes.
Faucet: https://faucet.testnet.oasys.games/
Units
Each OAS is comprised of 1,000,000,000,000,000,000 (1018) wei, so not even a single OAS can be stored numerically without exceeding the range of JavaScript numbers. Gas fees are denoted in gwei.
- 1 OAS =
1018wei - 1 wei =
10-18OAS - 1 gwei =
10-9OAS
For that reason, only string balance properties are available, which are balanceString, confirmedBalanceString, and spendableBalanceString.
Tokens
| Native Tokens | Utility |
|---|---|
| OAS | Native Token. OAS does not have a contract address |
| sOAS | Stakeable Oasys Token. sOAS tokens are - Locked and consequently non-circulating - Holders of sOAS, as well as validators, can earn rewards through staking activities |
| WOAS | Wrapped Oasys Token is an ERC-20 standard token designed for simplicity of token swapping |
Fees
Due to the architecture of Oasys, the performer of the contract pays gas fees when rolling up transactions from a Verse Layer to the Hub Layer, when using a Bridge contract, or when running a contract on the Hub Layer. Gas fees for rolling up are paid by Verse Builder, and as the Oasys ecosystem grows, the more Verse Layers and the more Transactions per Verse, the higher the gas fees. However, Oasys is designed so that the increase in gas fees will be gradual. By accelerating the growth of Verse Builder's business through the growth of the entire ecosystem, the disadvantage of rising gas fees is minimal.
Create Wallet
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export COIN="toas"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export LABEL="<DESIRED_WALLET_NAME>"
export PASSPHRASE="<YOUR_BITGO_LOGIN_PASSPHRASE>"
export ENTERPRISE_ID="<YOUR_ENTERPRISE_ID>"
curl -X POST \
http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/generate \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"label": "'"$LABEL"'",
"passphrase": "'"$PASSPHRASE"'",
"enterprise": "'"$ENTERPRISE_ID"'",
"walletVersion": 4
}'bitgo
.coin('toas')
.wallets()
.generateWallet({
label: 'My Test Wallet',
passphrase: 'secretpassphrase1a5df8380e0e30',
enterprise: '<YOUR_ENTERPRISE_ID>',
walletVersion: 4,
})
.then(function (wallet) {
// print the new wallet
console.dir(wallet);
});Create Address
export WALLET="<WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X POST \
-H "Authorization: Bearer $ACCESS_TOKEN" \
https://app.bitgo-test.com/api/v2/tbera/wallet/$WALLET/address
bitgo
.coin('toas')
.wallets()
.getWallet({ id: '585c51a5df8380e0e3082e46' })
.then(function (wallet) {
return wallet.createAddress();
})
.then(function (newAddress) {
// print new address details
console.dir(newAddress);
});Estimate Fee
export COIN="toas"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X GET \
https://app.bitgo-test.com/api/v2/$COIN/tx/fee \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN"
const BitGoJS = require('../../../src/index.js');
const bitgo = new BitGoJS.BitGo({ env: 'test' });
const accessToken = '<YOUR_ACCESS_TOKEN>';
const coin = 'toas';
async function getFeeEstimate() {
try {
await bitgo.authenticateWithAccessToken({ accessToken });
const res = await bitgo.coin(coin).feeEstimate({ numBlocks: 2 });
console.dir(res);
} catch (err) {
console.error('Error fetching fee estimate:', err);
}
}
getFeeEstimate();
Transact
Withdrawal Fee Source: Wallet Base Address
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export COIN="toas"
export WALLET_ID="<YOUR_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export ADDRESS="<DESTINATION_ADDRESS>"
export AMOUNT="<AMOUNT_IN_BASE_UNITS>"
export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>"
curl -X POST \
http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/$WALLET_ID/sendcoins \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"address": "'"$ADDRESS"'",
"amount": "'"$AMOUNT"'",
"walletPassphrase": "'"$WALLET_PASSPHRASE"'"
}'export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export COIN="toas"
export WALLET_ID="<YOUR_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export ADDRESS_1="<DESTINATION_ADDRESS_1>"
export AMOUNT_1="<AMOUNT_1_IN_BASE_UNITS>"
export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>"
curl -X POST \
http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/$WALLET_ID/sendmany \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"recipients": [
{
"address": "'"$ADDRESS_1"'",
"amount": "'"$AMOUNT_1"'"
}
],
"walletPassphrase": "'"$WALLET_PASSPHRASE"'"
}'const tx = await fundedWallet.send({
address: `<DESTINATION_ADDRESS>`,
amount: `<AMOUNT>`,
walletPassphrase: process.env.PASSWORD as string,
});let params = {
recipients: [
{
amount: "<AMOUNT_1>",
address: "<DESTINATION_ADDRESS_1>",
}
],
walletPassphrase: "<YOUR_WALLET_PASSPHRASE>",
};
wallet.sendMany(params).then(function (transaction) {
// Print transaction details
console.dir(transaction);
});Stake
Staking is out of scope for these chains as they don’t have native support for them.
Updated 2 days ago