Guides
House Party Protocol
Overview
House Party Protocol (HPP) is an AI-native Arbitrum Orbit Layer 2 blockchain secured by Ethereum. The network is fully EVM-compatible and uses AnyTrust data availability to deliver scalable, low-cost infrastructure for decentralized applications and autonomous agents.
Explorer
- Mainnet: https://explorer.hpp.io
- Testnet: https://sepolia-explorer.hpp.io
Wallets Types
BitGo enables holding House Party Protocol in the following wallet types:
| Multisig Cold | Multisig Hot | MPC Cold | MPC Hot | |
|---|---|---|---|---|
| Custody | ❌ | ❌ | ✅ | ❌ |
| Self-Custody | ❌ | ❌ | ✅ | ✅ |
Ticker Symbols
| Mainnet | Testnet | |
|---|---|---|
| Ticker | hppeth | thppeth |
| Chain ID | 190415 | 181228 |
Faucet
You can use a faucet to obtain free testnet thppeth for development and testing.
Faucet: https://faucet.hpp.io
Units
Each hppeth consists of 1,000,000,000,000,000,000 (1018) wei, so not even a single hppeth can be stored numerically without exceeding the range of JavaScript numbers. Gas fees are denoted in gwei.
- 1 hppeth =
1018wei - 1 wei =
10-18hppeth - 1 gwei =
10-9hppeth
For that reason, only string balance properties are available, which are balanceString, confirmedBalanceString, and
spendableBalanceString.
Tokens
House Party Protocol natively supports ERC20 tokens. BitGo-supported House Party Protocol tokens can be accessed on the Mainnet (e.g. BitGo coins and tokens).
Fees
House Party Protocol supports EIP-1559 gas estimation. Fees consist of a base fee that adjusts dynamically based on block utilization plus an optional priority tip. As an Arbitrum Orbit chain, fees also include an L2 component for posting data to the parent chain. The network denominates and pays gas in ETH.
Create Wallet
bitgo
.coin('thppeth')
.wallets()
.generateWallet({
label: 'My Test Wallet',
passphrase: 'secretpassphrase1a5df8380e0e30',
enterprise: '5612c2beeecf83610b621b90964448cd',
walletVersion: 4,
})
.then(function (wallet) {
// print the new wallet
console.dir(wallet);
});
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export COIN="thppeth"
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
}'
Create Address
bitgo
.coin('thppeth')
.wallets()
.getWallet({ id: '585c51a5df8380e0e3082e46' })
.then(function (wallet) {
return wallet.createAddress();
})
.then(function (newAddress) {
// print new address details
console.dir(newAddress);
});
export WALLET="585c51a5df8380e0e3082e46"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X POST \
-H "Authorization: Bearer $ACCESS_TOKEN" \
https://app.bitgo-test.com/api/v2/thppeth/wallet/$WALLET/address
Consolidate Balance
Consolidation Fee Source: House Party Protocol Gas Tank
House Party Protocol uses forwarders, so it does not support manual consolidation.
Estimate Fee
const BitGoJS = require('../../../src/index.js');
const bitgo = new BitGoJS.BitGo({ env: 'test' });
const accessToken = '<YOUR_ACCESS_TOKEN>';
const coin = 'thppeth';
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();
export COIN="thppeth"
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"
Transact
Withdrawal Fee Source: Wallet Base Address
const tx = await fundedWallet.send({
address: '<DESTINATION_ADDRESS>',
amount: '<AMOUNT>',
walletPassphrase: process.env.PASSWORD,
});
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export COIN="thppeth"
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"'"
}'
Stake
House Party Protocol isn't a stakeable asset.