Hot wallets
Hot wallets receive the swept funds. Registering one deploys its delegate, the contract your deposit addresses authorize.
List hot wallets
Section titled “List hot wallets”GET/v1/hot-wallets
Responses
Section titled “Responses”| Status | Description |
|---|---|
200 | Your hot wallets on every chain. Returns the fields below. |
401 | unauthorized: no API key, an unknown one or a revoked one. |
403 | partner_disabled: your account is disabled. |
Response body
Section titled “Response body”| Field | Type | Description |
|---|---|---|
hot_wallets required | array of HotWallet |
Example request
Section titled “Example request”curl "https://api-testnet.portuna.io/v1/hot-wallets" \ -H "Authorization: Bearer $PORTUNA_API_KEY"Example response
Section titled “Example response”{ "hot_wallets": [ { "chain_id": 11155111, "address": "0x2Cd50979a8A33e8CA37DA85F8517fb148a67b769", "delegate": "0xE60fdf70a794C76094f86b990a821D55e3096AA5", "status": "active", "tx_hash": "0x98c1caadf3d6613c07b43c53148e6cc543c7d933fc9d0a4ea590988ab526716d", "created_at": "2026-10-10T09:14:03Z" } ]}Register a hot wallet
Section titled “Register a hot wallet”POST/v1/hot-wallets
Registers a hot wallet on a chain and deploys its delegate, the contract your deposit addresses sign their
authorizations for. Its address, in delegate, is known at once. When the delegate is deployed, the hot wallet
becomes active and you get a hot_wallet.active event; if the deployment fails, hot_wallet.failed.
Registering the same hot wallet again returns it; after failed (for example, the gas wallet had no gas) it
restarts the deployment.
Request body
Section titled “Request body”| Field | Type | Description |
|---|---|---|
chain_id required | ChainID | The chain’s id (EIP-155): 11155111 Sepolia and 97 BSC testnet with a test key, 1 Ethereum and 56 BSC with a live key. |
address required | Address | The hot wallet, where sweeps will send the funds. |
Responses
Section titled “Responses”| Status | Description |
|---|---|
200 | The hot wallet is already active. Returns HotWallet. |
202 | The delegate is being deployed. Returns HotWallet. |
400 | invalid_json: the body is not JSON, is over 64 KiB or has unknown fields. |
401 | unauthorized: no API key, an unknown one or a revoked one. |
403 | partner_disabled: your account is disabled. |
422 | unknown_chain: the chain is not supported in this environment; invalid_address: address is not a non-zero 0x-address. |
Example request
Section titled “Example request”curl -X POST "https://api-testnet.portuna.io/v1/hot-wallets" \ -H "Authorization: Bearer $PORTUNA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "chain_id": 11155111, "address": "0x2Cd50979a8A33e8CA37DA85F8517fb148a67b769"}'Example response
Section titled “Example response”{ "chain_id": 11155111, "address": "0x2Cd50979a8A33e8CA37DA85F8517fb148a67b769", "delegate": "0xE60fdf70a794C76094f86b990a821D55e3096AA5", "status": "pending", "created_at": "2026-10-10T09:14:03Z"}