# Burn NLP ## Rate limits * 60 burns/min or 10 burns every 10 seconds per wallet. (**weight = 10**) {% hint style="info" %} See more details in [API Rate limits](https://docs.nado.xyz/developer-resources/api/rate-limits). {% endhint %} ## Request {% tabs %} {% tab title="Websocket" %} **Connect** `WEBSOCKET [GATEWAY_WEBSOCKET_ENDPOINT]` **Message** ```json { "burn_nlp": { "tx": { "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43746573743000000000000000", "nlpAmount": "10001000000000000000000" "nonce": "1" }, "signature": "0x" } } ``` {% endtab %} {% tab title="REST" %} `POST [GATEWAY_REST_ENDPOINT]/execute` **Body** ```json { "burn_lp": { "tx": { "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43746573743000000000000000", "productId": 1, "amount": "10001000000000000000000" "nonce": "1" }, "signature": "0x" } } ``` {% endtab %} {% endtabs %} ## Request Parameters
ParameterTypeRequiredDescription
txobjectYesBurn NLP transaction object. See Signing section for details on the transaction fields.
tx.senderstringYesHex string representing the subaccount's 32 bytes (address + subaccount name) of the tx sender.
tx.nlpAmountstringYesAmount of NLP tokens to burn multiplied by 1e18, sent as a string.
tx.noncestringYesThis is an incrementing nonce, can be obtained using the Nonces query.
signaturestringYesSigned transaction. See Signing section for more details.
## Signing {% hint style="info" %} See more details and examples in our [signing](https://docs.nado.xyz/developer-resources/api/gateway/signing) page. {% endhint %} The solidity typed data struct that needs to be signed is: ```solidity struct BurnNlp { bytes32 sender; uint128 nlpAmount; uint64 nonce; } ``` `sender`: a `bytes32` sent as a hex string; includes the address and the subaccount identifier. `nlpAmount`: amount of NLP tokens to burn, sent as a string. This must be positive and must be specified with 18 decimals. `nonce`: the `tx_nonce`. This is an incrementing nonce, can be obtained using the [Nonces](https://docs.nado.xyz/developer-resources/api/gateway/queries/nonces) query. {% hint style="warning" %} **Note**: for signing you should always use the data type specified in the solidity struct which might be different from the type sent in the request e.g: `nonce` should be an `uint64` for **Signing** but should be sent as a `string` in the final payload. {% endhint %} ## Response ```json { "status": "success", } ``` #### Success ```json { "status": "success", "signature": {signature}, "request_type": "execute_burn_nlp" } ``` #### Failure ```json { "status": "failure", "signature": {signature}, "error": "{error_msg}", "error_code": {error_code}, "request_type": "execute_burn_nlp" } ```