Endpoints
API Usage
Once you have access to the Staking API with a validated user and existing API keys, you can start using this service.
Try it live
Every endpoint on this page can be executed from the interactive Swagger console, using your own X-API-KEY.
The machine-readable OpenAPI schema is available at:
Authentication
In order to use the Staking API endpoints you need to include your API KEY.
Heads up! To obtain a valid API key required for authentication, please refer to the Authentication > Create API keys section of the documentation.
Header:
| Name | Description | Example value | Required |
|---|---|---|---|
X-API-KEY | Your api key value | <API_KEY_VALUE> | ✅ |
X-NETWORK | Blockchain network identifier | 143 | ⚪ |
X-NETWORK header
Use the X-NETWORK header to select the Monad network (currently 143 for Monad Mainnet).
If you omit the header the API falls back to the default Monad network configured for your account.
List available networks
Use this helper endpoint to obtain the list of Monad Magma networks that are currently enabled for your API key.
- Endpoint:
/api/v1/monad/magma/networks
Response payload fields:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ | Internal blockchain entry name |
type | string | ✅ | Blockchain type string (always ETHEREUM) |
chain_id | string | ✅ | Chain identifier (currently 143) |
is_default | boolean | ✅ | true when this network is used as fallback |
Example
curl "https://staking-api.stakely.io/api/v1/monad/magma/networks" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143"
Response:
[
{
"name": "monad",
"type": "ETHEREUM",
"chain_id": "143",
"is_default": true
}
]
Delegate action
Craft a Magma delegate transaction:
- Endpoint:
/api/v1/monad/magma/action/delegate
Description
This endpoint crafts a Magma delegate transaction ready to be signed.
Request body parameters
| Field | Type | Required | Description |
|---|---|---|---|
address | string | ✅ | Address that will perform the stake action |
amount | number | ✅ | Amount to delegate in MON (ether units) |
address: wallet address that performs the actionamount: MON amount to delegate (minimum100MON)
Returned
| Field | Type | Required | Description |
|---|---|---|---|
serialized_tx_hex | string | ✅ | Serialized transaction hex string ready to be signed |
unsigned_tx_hash_hex | string | ✅ | Unsigned tx hash hex string used for offline signing integrations |
payload | object | ✅ | Transaction payload object |
Example
curl -X POST "https://staking-api.stakely.io/api/v1/monad/magma/action/delegate" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143" \
-H "Content-Type: application/json" \
-d '{
"address": "0xb794f5ea0ba39494ce839613fffba74279579268",
"amount": 100
}'
Response:
{
"serialized_tx_hex": "03b8ef9558b9a2d9f2d4c1f4f8bafce1a6df628d6c521474d6823b6e3223d9e8af",
"unsigned_tx_hash_hex": "1a6edb7358323bafca52b1755f3ad985754dc23887110b65429373ed83321500",
"payload": {
"type": "0x0",
"nonce": "0x5fe08",
"gasLimit": "0x30d40",
"to": "0x169856275ddca01b2fcdc63c4f1b0adf72a4cf10",
"value": "0x16345785d8a0000",
"data": "0x18f72950...",
"gasPrice": "0x2887734d"
}
}
Undelegate action
Craft a Magma undelegate transaction:
- Endpoint:
/api/v1/monad/magma/action/undelegate
Description
This endpoint crafts a Magma undelegate transaction ready to be signed.
Request body parameters
| Field | Type | Required | Description |
|---|---|---|---|
address | string | ✅ | Address that will perform the undelegation request |
amount | number | ✅ | Amount to undelegate in MON (ether units) |
address: wallet address that performs the actionamount: MON amount to undelegate
Returned
| Field | Type | Required | Description |
|---|---|---|---|
serialized_tx_hex | string | ✅ | Serialized transaction hex string ready to be signed |
unsigned_tx_hash_hex | string | ✅ | Unsigned tx hash hex string used for offline signing integrations |
payload | object | ✅ | Transaction payload object |
Example
curl -X POST "https://staking-api.stakely.io/api/v1/monad/magma/action/undelegate" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143" \
-H "Content-Type: application/json" \
-d '{
"address": "0xb794f5ea0ba39494ce839613fffba74279579268",
"amount": 1.5
}'
Response:
{
"serialized_tx_hex": "03b8ef9558b9a2d9f2d4c1f4f8bafce1a6df628d6c521474d6823b6e3223d9e8af",
"unsigned_tx_hash_hex": "1a6edb7358323bafca52b1755f3ad985754dc23887110b65429373ed83321500",
"payload": {
"type": "0x0",
"nonce": "0x5fe08",
"gasLimit": "0x30d40",
"to": "0x169856275ddca01b2fcdc63c4f1b0adf72a4cf10",
"value": "0x16345785d8a0000",
"data": "0x18f72950...",
"gasPrice": "0x2887734d"
}
}
Withdraw action
Craft a Magma withdraw transaction:
- Endpoint:
/api/v1/monad/magma/action/withdraw
Description
This endpoint crafts a Magma withdraw transaction for a specific withdrawal request.
Request body parameters
| Field | Type | Required | Description |
|---|---|---|---|
address | string | ✅ | Address that will perform the withdrawal |
request_id | number | ✅ | Owner request id that should be withdrawn |
address: wallet address that performs the actionrequest_id: owner request ID to withdraw
Returned
| Field | Type | Required | Description |
|---|---|---|---|
serialized_tx_hex | string | ✅ | Serialized transaction hex string ready to be signed |
unsigned_tx_hash_hex | string | ✅ | Unsigned tx hash hex string used for offline signing integrations |
payload | object | ✅ | Transaction payload object |
Example
curl -X POST "https://staking-api.stakely.io/api/v1/monad/magma/action/withdraw" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143" \
-H "Content-Type: application/json" \
-d '{
"address": "0xb794f5ea0ba39494ce839613fffba74279579268",
"request_id": 1
}'
Response:
{
"serialized_tx_hex": "03b8ef9558b9a2d9f2d4c1f4f8bafce1a6df628d6c521474d6823b6e3223d9e8af",
"unsigned_tx_hash_hex": "1a6edb7358323bafca52b1755f3ad985754dc23887110b65429373ed83321500",
"payload": {
"type": "0x0",
"nonce": "0x5fe08",
"gasLimit": "0x30d40",
"to": "0x169856275ddca01b2fcdc63c4f1b0adf72a4cf10",
"value": "0x16345785d8a0000",
"data": "0x18f72950...",
"gasPrice": "0x2887734d"
}
}
Prepare action
Gathers signature and unsigned tx:
- Endpoint:
/api/v1/monad/magma/action/prepare
Description
Prepare a signed transaction by gathering the provided signatures (r, s, v) with the unsigned transaction hex string.
Request body parameters
| Field | Type | Required | Description |
|---|---|---|---|
serialized_tx_hex | string | ✅ | Unsigned serialized transaction hex string ready to be signed |
r | string | ✅ | r part of the ECDSA signature in hex |
s | string | ✅ | s part of the ECDSA signature in hex |
v | number | ✅ | v part of the ECDSA signature |
Returned
| Field | Type | Required | Description |
|---|---|---|---|
signed_tx_hex | string | ✅ | Signed transaction hex string ready to be broadcasted |
Example
curl -X POST "https://staking-api.stakely.io/api/v1/monad/magma/action/prepare" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143" \
-H "Content-Type: application/json" \
-d '{
"serialized_tx_hex": "03b8ef9558b9a2d9f2d4c1f4f8bafce1a6df628d6c521474d6823b6e3223d9e8af",
"r": "6da2b6fe309b629720bc3d1d3a8befb3f461e3b53ccee85c55d10b11d3a3d263",
"s": "085fe4bb8ff0c04e4e41a2ba44609f894b9a70f4330de726d1403ee21b65e685",
"v": 34035
}'
Response:
{
"signed_tx_hex": "0xf9014b1f8455bd900c83030d4094169856275d...ad908c2b5b15"
}
Broadcast action
Broadcast a signed transaction:
- Endpoint:
/api/v1/monad/magma/action/broadcast
Description
Broadcast a signed Magma transaction.
Request body parameters
| Field | Type | Required | Description |
|---|---|---|---|
signed_tx_hex | string | ✅ | Signed transaction hex string ready to be broadcasted |
Returned
| Field | Type | Required | Description |
|---|---|---|---|
tx_hash | string | ✅ | Transaction hash of the broadcasted transaction |
Example
curl -X POST "https://staking-api.stakely.io/api/v1/monad/magma/action/broadcast" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143" \
-H "Content-Type: application/json" \
-d '{
"signed_tx_hex": "0xf9014b1f8455bd900c83030d4094169856275d...ad908c2b5b15"
}'
Response:
{
"tx_hash": "0x23273dacef9d64fdb2c790e9f9f4c13574125078a272059dac2473bc8bfba163"
}
Balance
Get Magma staking balance for the given address:
- Endpoint:
/api/v1/monad/magma/balance/{address}
Description
Get current Magma balance values for a delegator address.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
address | path | string | ✅ | Magma delegator address to query |
Returned
| Field | Type | Required | Description |
|---|---|---|---|
staked | number | ✅ | Currently staked MON (converted from wei to MON) |
unstaked | number | ✅ | Pending unstaked MON (converted from wei to MON) |
withdrawable | number | ✅ | Currently withdrawable redeem request shares |
Example
curl "https://staking-api.stakely.io/api/v1/monad/magma/balance/0xb794f5ea0ba39494ce839613fffba74279579268" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143"
Response:
{
"staked": 123.456,
"unstaked": 12.5,
"withdrawable": 1000000000000000000
}
Withdrawal info
Get Magma withdrawal requests for the given address:
- Endpoint:
/api/v1/monad/magma/withdrawal/{address}
Description
Get current pending withdrawal information for a Magma address.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
address | path | string | ✅ | Address to query pending withdrawal requests for |
Returned
Array of MagmaWithdrawalResponseDto items:
| Field | Type | Required | Description |
|---|---|---|---|
request_id | number | ✅ | Current owner request id |
assets | number | ✅ | Requested assets in MON (converted from wei to MON) |
withdrawable_time | number | ✅ | Claimable timestamp plus 6 hours (unix seconds) |
Example
curl "https://staking-api.stakely.io/api/v1/monad/magma/withdrawal/0xb794f5ea0ba39494ce839613fffba74279579268" \
-H "X-API-KEY: $STAKELY_API_KEY" \
-H "X-NETWORK: 143"
Response:
[
{
"request_id": 1,
"assets": 10.25,
"withdrawable_time": 1720000000
}
]