# Paymaster

Gas-free transaction and contract invocation operations where the **Paymaster service sponsors the gas fee** on behalf of the user. Ideal for onboarding new users who don't hold ZTX tokens. Flow: generate paymaster blob → sign blob → submit paymaster.

## Generate paymaster transaction blob

> Generates a gas-free transaction blob using the Zetrix Paymaster service. The Paymaster allocates a nonce from its pool and sponsors the gas fee when the transaction is submitted.\
> \
> \*\*Flow:\*\*\
> 1\. Call this endpoint with \`userAddress\` and \`operations\`\
> 2\. Receive \`blob\`, \`blobId\`, and reservation expiry (\`expiresAt\`)\
> 3\. Sign the blob using \`/tx/sign-blob\`\
> 4\. Submit via \`/tx/paymaster/submit\` within \`timeoutMinutes\`\
> \
> \*\*Pool Selection:\*\*\
> Auto-selected unless \`paymasterPoolId\` or \`poolType\` (\`NORMAL\`, \`PREMIUM\`, \`CORPORATE\`) is specified.

```json
{"openapi":"3.1.0","info":{"title":"Zetrix Microservice API","version":"1.0.0"},"tags":[{"name":"Paymaster","description":"Gas-free transaction and contract invocation operations where the **Paymaster service sponsors the gas fee** on behalf of the user. Ideal for onboarding new users who don't hold ZTX tokens. Flow: generate paymaster blob → sign blob → submit paymaster."}],"servers":[{"url":"https://api-sandbox.zetrix.com","description":"Sandbox Environment – Use this for development and testing."}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer access token. Include in all requests as: `Authorization: Bearer <your_access_token>`"}},"parameters":{"X-API-Key":{"name":"X-API-Key","in":"header","required":true,"description":"API key for authentication. Include in all requests.","schema":{"type":"string"}}},"schemas":{"PaymasterGenerateBlobReqDto":{"type":"object","description":"Request to generate a paymaster-sponsored transaction blob (gas-free for users).","required":["operations","userAddress"],"properties":{"userAddress":{"type":"string","description":"Zetrix address of the user initiating the transaction. Gas covered by the Paymaster."},"operations":{"type":"array","description":"List of operations to execute.","items":{"$ref":"#/components/schemas/OperationsEntity"}},"chainCode":{"type":"string","description":"Chain code identifier. Defaults to `\"0\"`.","default":"0"},"paymasterPoolId":{"type":"integer","format":"int64","description":"Specific paymaster pool ID. Auto-selected if not provided."},"operationType":{"type":"string","description":"Operation type label for tracking."},"targetAddress":{"type":"string","description":"Target address for tracking purposes."},"amount":{"type":"string","description":"Transaction amount for tracking (optional)."},"metadata":{"type":"object","additionalProperties":{},"description":"Additional metadata for tracking."},"timeoutMinutes":{"type":"integer","format":"int32","description":"Minutes the nonce reservation is valid. Defaults to 10.","default":10},"minPoolBalance":{"type":"integer","format":"int64","description":"Minimum required pool balance in drops (optional)."},"poolType":{"type":"string","description":"Preferred paymaster pool type.","enum":["NORMAL","PREMIUM","CORPORATE"]}}},"OperationsEntity":{"type":"object","description":"A single operation to execute in a transaction. The fields used depend on the operation `type`.","properties":{"type":{"type":"string","description":"Operation type: `SEND_GAS`, `TRANSFER`, `CONTRACT_INVOKE`, `CREATE_ACCOUNT`, `ISSUE_ASSET`, `SEND_ASSET`."},"toAddress":{"type":"string","description":"Destination Zetrix address for transfer-type operations."},"fromAddress":{"type":"string","description":"Source address override (defaults to `txInitiator` if omitted)."},"amount":{"type":"string","description":"Amount in drops (1 ZETRIX = 10^6 drops)."},"inputStr":{"type":"string","description":"JSON-encoded input for contract invocation operations."},"payload":{"type":"string","description":"Contract payload or bytecode (used in contract deployment)."},"precision":{"type":"string","description":"Asset precision (used in asset issuance)."},"metadata":{"type":"string","description":"Optional arbitrary metadata string attached to the operation."}}},"ResponseWrapperPaymasterGenerateBlobRespDto":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/PaymasterGenerateBlobRespDto"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ResponseMessage"}},"success":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time"},"traceId":{"type":"string"}}},"PaymasterGenerateBlobRespDto":{"type":"object","description":"Response for paymaster transaction blob generation.","required":["blob","blobId","expiresAt","hash","paymasterAddress","paymasterNonce","paymasterPoolId","timeoutMinutes"],"properties":{"blob":{"type":"string","description":"Hex-encoded transaction blob. Sign and submit via `/tx/paymaster/submit`."},"hash":{"type":"string","description":"Transaction hash. Required when calling `/tx/sign-blob`."},"blobId":{"type":"string","description":"Unique ID for this paymaster reservation. Required in `/tx/paymaster/submit`."},"paymasterAddress":{"type":"string","description":"Paymaster address that will sponsor the gas fee."},"paymasterNonce":{"type":"integer","format":"int64","description":"Nonce allocated from the paymaster pool."},"paymasterPoolId":{"type":"integer","format":"int64","description":"ID of the paymaster pool used."},"actualFee":{"type":"integer","format":"int64","description":"Estimated fee in gas units (1 ZETRIX = 10^6 units)."},"expiresAt":{"type":"string","format":"date-time","description":"Nonce reservation expiry. Submit before this time."},"timeoutMinutes":{"type":"integer","format":"int32","description":"Duration in minutes the reservation is valid."},"platformSignData":{"$ref":"#/components/schemas/PlatformSignDataEntity"}}},"PlatformSignDataEntity":{"type":"object","description":"Optional platform co-signature data, present when the platform pre-signs the blob.","properties":{"publicKey":{"type":"string","description":"Platform's public key."},"signBlob":{"type":"string","description":"Platform's signature of the blob."}}},"ResponseMessage":{"type":"object","description":"A response message indicating informational, warning, or error details.","properties":{"type":{"type":"string","description":"Severity: `INFO`, `WARNING`, or `ERROR`.","enum":["INFO","ERROR","WARNING"]},"errorCode":{"type":"integer","format":"int32","description":"Numeric error code (0 = no error)."},"message":{"type":"string","description":"Human-readable description."}}}}},"paths":{"/ztx/tx/paymaster/generate-blob":{"post":{"tags":["Paymaster"],"summary":"Generate paymaster transaction blob","operationId":"generatePaymasterBlob","parameters":[{"$ref":"#/components/parameters/X-API-Key"}],"description":"Generates a gas-free transaction blob using the Zetrix Paymaster service. The Paymaster allocates a nonce from its pool and sponsors the gas fee when the transaction is submitted.\n\n**Flow:**\n1. Call this endpoint with `userAddress` and `operations`\n2. Receive `blob`, `blobId`, and reservation expiry (`expiresAt`)\n3. Sign the blob using `/tx/sign-blob`\n4. Submit via `/tx/paymaster/submit` within `timeoutMinutes`\n\n**Pool Selection:**\nAuto-selected unless `paymasterPoolId` or `poolType` (`NORMAL`, `PREMIUM`, `CORPORATE`) is specified.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymasterGenerateBlobReqDto"}}}},"responses":{"200":{"description":"Paymaster blob generated. Sign and submit via `/tx/paymaster/submit` before `expiresAt`.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseWrapperPaymasterGenerateBlobRespDto"}}}}}}}}}
```

## Submit paymaster transaction

> Submits a signed paymaster transaction blob for asynchronous processing. Returns immediately with \`QUEUED\` status.\
> \
> \*\*Pre-conditions:\*\*\
> \- \`blobId\` from a valid, non-expired \`/tx/paymaster/generate-blob\` call\
> \- \`blob\` signed by the user's private key\
> \- Submitted before \`expiresAt\`\
> \
> \*\*Async Processing:\*\*\
> The Paymaster adds its gas-sponsoring signature and broadcasts the transaction. Poll \`/tx/query\` with \`txHash\` to check final status.\
> \
> \*\*Response Fields:\*\*\
> \- \`status\` — Initially \`QUEUED\`\
> \- \`txHash\` — Use this to query the final result

```json
{"openapi":"3.1.0","info":{"title":"Zetrix Microservice API","version":"1.0.0"},"tags":[{"name":"Paymaster","description":"Gas-free transaction and contract invocation operations where the **Paymaster service sponsors the gas fee** on behalf of the user. Ideal for onboarding new users who don't hold ZTX tokens. Flow: generate paymaster blob → sign blob → submit paymaster."}],"servers":[{"url":"https://api-sandbox.zetrix.com","description":"Sandbox Environment – Use this for development and testing."}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer access token. Include in all requests as: `Authorization: Bearer <your_access_token>`"}},"parameters":{"X-API-Key":{"name":"X-API-Key","in":"header","required":true,"description":"API key for authentication. Include in all requests.","schema":{"type":"string"}}},"schemas":{"PaymasterSubmitReqDto":{"type":"object","description":"Request body for submitting a paymaster-sponsored transaction or contract invocation.","required":["blob","blobId","listSigner"],"properties":{"blobId":{"type":"string","description":"Unique ID of the paymaster blob reservation from generate-blob."},"blob":{"type":"string","description":"The hex-encoded transaction blob returned during blob generation."},"listSigner":{"type":"array","description":"User's signature(s) on the blob.","items":{"$ref":"#/components/schemas/SignerEntity"}}}},"SignerEntity":{"type":"object","description":"A signer object containing a signature and public key pair. Used in transaction/contract submission requests.","properties":{"signBlob":{"type":"string","description":"Hex-encoded Ed25519 signature of the transaction blob."},"publicKey":{"type":"string","description":"Hex-encoded Ed25519 public key of the signer. Must be exactly 76 characters.","minLength":76,"maxLength":76}}},"ResponseWrapperPaymasterSubmitRespDto":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/PaymasterSubmitRespDto"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ResponseMessage"}},"success":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time"},"traceId":{"type":"string"}}},"PaymasterSubmitRespDto":{"type":"object","description":"Response after queuing a paymaster-sponsored transaction.","properties":{"txHash":{"type":"string","description":"Transaction hash. Poll `/tx/query` with this for final status."},"blobId":{"type":"string","description":"Paymaster blob reservation ID."},"nonce":{"type":"integer","format":"int64","description":"Nonce used from the paymaster pool."},"paymasterAddress":{"type":"string","description":"Paymaster address sponsoring the gas fee."},"status":{"type":"string","description":"Processing status. Initially `QUEUED`; becomes `SUCCESS` or `FAILED` after processing."},"submittedAt":{"type":"string","format":"date-time","description":"Timestamp when queued."},"blockNumber":{"type":"integer","format":"int64","description":"Block number confirmed in (populated post-confirmation)."},"gasUsed":{"type":"integer","format":"int64","description":"Actual gas units consumed."},"gasFeePaid":{"type":"integer","format":"int64","description":"Total gas fee paid by paymaster in drops."}}},"ResponseMessage":{"type":"object","description":"A response message indicating informational, warning, or error details.","properties":{"type":{"type":"string","description":"Severity: `INFO`, `WARNING`, or `ERROR`.","enum":["INFO","ERROR","WARNING"]},"errorCode":{"type":"integer","format":"int32","description":"Numeric error code (0 = no error)."},"message":{"type":"string","description":"Human-readable description."}}}}},"paths":{"/ztx/tx/paymaster/submit":{"post":{"tags":["Paymaster"],"summary":"Submit paymaster transaction","operationId":"submitPaymasterTransaction","parameters":[{"$ref":"#/components/parameters/X-API-Key"}],"description":"Submits a signed paymaster transaction blob for asynchronous processing. Returns immediately with `QUEUED` status.\n\n**Pre-conditions:**\n- `blobId` from a valid, non-expired `/tx/paymaster/generate-blob` call\n- `blob` signed by the user's private key\n- Submitted before `expiresAt`\n\n**Async Processing:**\nThe Paymaster adds its gas-sponsoring signature and broadcasts the transaction. Poll `/tx/query` with `txHash` to check final status.\n\n**Response Fields:**\n- `status` — Initially `QUEUED`\n- `txHash` — Use this to query the final result","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymasterSubmitReqDto"}}}},"responses":{"200":{"description":"Transaction queued for paymaster processing. Poll `/tx/query` using `txHash` for final status.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseWrapperPaymasterSubmitRespDto"}}}}}}}}}
```

## Generate paymaster contract invocation blob

> Generates a gas-free contract invocation blob using the Paymaster service. Either \`contractKey\` or \`contractAddress\` must be provided. If both are given, \`contractAddress\` takes precedence.\
> \
> \*\*Flow:\*\*\
> 1\. Call this endpoint with the user's address, contract identifier, method, and input parameters\
> 2\. Receive \`blob\`, \`blobId\`, and expiry info\
> 3\. Sign the blob using \`/tx/sign-blob\`\
> 4\. Submit via \`/contract/paymaster/submit\` before \`expiresAt\`\
> \
> \*\*Pool Selection:\*\*\
> Auto-selected unless \`paymasterPoolId\` or \`poolType\` (\`NORMAL\`, \`PREMIUM\`, \`CORPORATE\`) is specified.

```json
{"openapi":"3.1.0","info":{"title":"Zetrix Microservice API","version":"1.0.0"},"tags":[{"name":"Paymaster","description":"Gas-free transaction and contract invocation operations where the **Paymaster service sponsors the gas fee** on behalf of the user. Ideal for onboarding new users who don't hold ZTX tokens. Flow: generate paymaster blob → sign blob → submit paymaster."}],"servers":[{"url":"https://api-sandbox.zetrix.com","description":"Sandbox Environment – Use this for development and testing."}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer access token. Include in all requests as: `Authorization: Bearer <your_access_token>`"}},"parameters":{"X-API-Key":{"name":"X-API-Key","in":"header","required":true,"description":"API key for authentication. Include in all requests.","schema":{"type":"string"}}},"schemas":{"ContractPaymasterGenerateBlobReqDto":{"type":"object","description":"Request to generate a paymaster-sponsored contract invocation blob.","required":["method","userAddress"],"properties":{"contractKey":{"type":"string","description":"Registered contract alias. Either this or `contractAddress` must be provided."},"contractAddress":{"type":"string","description":"On-chain contract address. Takes precedence over `contractKey` if both are given."},"method":{"type":"string","description":"Contract method to invoke."},"inputParameters":{"type":"object","additionalProperties":{},"description":"Method input parameters as key-value map."},"userAddress":{"type":"string","description":"User's Zetrix address (initiator). Gas covered by the Paymaster.","minLength":37,"maxLength":37},"value":{"type":"integer","format":"int64","description":"ZTX value in drops. Use `0` for non-payable methods."},"chainCode":{"type":"string","description":"Chain code identifier. Defaults to `\"0\"`.","default":"0"},"paymasterPoolId":{"type":"integer","format":"int64","description":"Specific paymaster pool ID. Auto-selected if not provided."},"timeoutMinutes":{"type":"integer","format":"int32","description":"Nonce reservation timeout in minutes. Defaults to 10.","default":10},"minPoolBalance":{"type":"integer","format":"int64","description":"Minimum required paymaster pool balance in drops."},"poolType":{"type":"string","description":"Preferred paymaster pool type.","enum":["NORMAL","PREMIUM","CORPORATE"]},"metadata":{"type":"object","additionalProperties":{},"description":"Additional metadata for tracking."}}},"ResponseWrapperContractPaymasterGenerateBlobRespDto":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/ContractPaymasterGenerateBlobRespDto"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ResponseMessage"}},"success":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time"},"traceId":{"type":"string"}}},"ContractPaymasterGenerateBlobRespDto":{"type":"object","description":"Response for paymaster-sponsored contract invocation blob generation.","required":["blob","blobId","expiresAt","hash","paymasterAddress","paymasterNonce","paymasterPoolId","timeoutMinutes"],"properties":{"blob":{"type":"string","description":"Hex-encoded blob. Sign and submit via `/contract/paymaster/submit`."},"hash":{"type":"string","description":"Transaction hash."},"blobId":{"type":"string","description":"Paymaster reservation ID. Required in `/contract/paymaster/submit`."},"paymasterAddress":{"type":"string","description":"Paymaster address sponsoring gas."},"paymasterNonce":{"type":"integer","format":"int64","description":"Reserved nonce."},"paymasterPoolId":{"type":"integer","format":"int64","description":"Paymaster pool ID."},"contractAddress":{"type":"string","description":"Resolved on-chain contract address."},"method":{"type":"string","description":"Contract method being invoked."},"actualFee":{"type":"integer","format":"int64","description":"Estimated fee in gas units."},"expiresAt":{"type":"string","format":"date-time","description":"Nonce reservation expiry. Submit before this time."},"timeoutMinutes":{"type":"integer","format":"int32","description":"Timeout duration in minutes."},"platformSignData":{"$ref":"#/components/schemas/PlatformSignDataEntity"}}},"PlatformSignDataEntity":{"type":"object","description":"Optional platform co-signature data, present when the platform pre-signs the blob.","properties":{"publicKey":{"type":"string","description":"Platform's public key."},"signBlob":{"type":"string","description":"Platform's signature of the blob."}}},"ResponseMessage":{"type":"object","description":"A response message indicating informational, warning, or error details.","properties":{"type":{"type":"string","description":"Severity: `INFO`, `WARNING`, or `ERROR`.","enum":["INFO","ERROR","WARNING"]},"errorCode":{"type":"integer","format":"int32","description":"Numeric error code (0 = no error)."},"message":{"type":"string","description":"Human-readable description."}}}}},"paths":{"/ztx/contract/paymaster/generate-blob":{"post":{"tags":["Paymaster"],"summary":"Generate paymaster contract invocation blob","operationId":"generatePaymasterBlob_1","parameters":[{"$ref":"#/components/parameters/X-API-Key"}],"description":"Generates a gas-free contract invocation blob using the Paymaster service. Either `contractKey` or `contractAddress` must be provided. If both are given, `contractAddress` takes precedence.\n\n**Flow:**\n1. Call this endpoint with the user's address, contract identifier, method, and input parameters\n2. Receive `blob`, `blobId`, and expiry info\n3. Sign the blob using `/tx/sign-blob`\n4. Submit via `/contract/paymaster/submit` before `expiresAt`\n\n**Pool Selection:**\nAuto-selected unless `paymasterPoolId` or `poolType` (`NORMAL`, `PREMIUM`, `CORPORATE`) is specified.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContractPaymasterGenerateBlobReqDto"}}}},"responses":{"200":{"description":"Paymaster contract blob generated. Sign and submit via `/contract/paymaster/submit` before expiry.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseWrapperContractPaymasterGenerateBlobRespDto"}}}}}}}}}
```

## Submit paymaster contract invocation

> Queues a signed contract invocation blob for asynchronous Paymaster processing. Returns immediately with \`QUEUED\` status. The Paymaster adds its gas-sponsoring signature and broadcasts the transaction.\
> \
> \*\*Required fields:\*\*\
> \- \`blobId\` — from \`/contract/paymaster/generate-blob\`\
> \- \`blob\` — signed by the user\
> \- \`listSigner\` — user's signature(s)\
> \
> \*\*Tracking:\*\*\
> Poll \`/tx/query\` with \`txHash\` to check final on-chain status.

```json
{"openapi":"3.1.0","info":{"title":"Zetrix Microservice API","version":"1.0.0"},"tags":[{"name":"Paymaster","description":"Gas-free transaction and contract invocation operations where the **Paymaster service sponsors the gas fee** on behalf of the user. Ideal for onboarding new users who don't hold ZTX tokens. Flow: generate paymaster blob → sign blob → submit paymaster."}],"servers":[{"url":"https://api-sandbox.zetrix.com","description":"Sandbox Environment – Use this for development and testing."}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer access token. Include in all requests as: `Authorization: Bearer <your_access_token>`"}},"parameters":{"X-API-Key":{"name":"X-API-Key","in":"header","required":true,"description":"API key for authentication. Include in all requests.","schema":{"type":"string"}}},"schemas":{"PaymasterSubmitReqDto":{"type":"object","description":"Request body for submitting a paymaster-sponsored transaction or contract invocation.","required":["blob","blobId","listSigner"],"properties":{"blobId":{"type":"string","description":"Unique ID of the paymaster blob reservation from generate-blob."},"blob":{"type":"string","description":"The hex-encoded transaction blob returned during blob generation."},"listSigner":{"type":"array","description":"User's signature(s) on the blob.","items":{"$ref":"#/components/schemas/SignerEntity"}}}},"SignerEntity":{"type":"object","description":"A signer object containing a signature and public key pair. Used in transaction/contract submission requests.","properties":{"signBlob":{"type":"string","description":"Hex-encoded Ed25519 signature of the transaction blob."},"publicKey":{"type":"string","description":"Hex-encoded Ed25519 public key of the signer. Must be exactly 76 characters.","minLength":76,"maxLength":76}}},"ResponseWrapperPaymasterSubmitRespDto":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/PaymasterSubmitRespDto"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ResponseMessage"}},"success":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time"},"traceId":{"type":"string"}}},"PaymasterSubmitRespDto":{"type":"object","description":"Response after queuing a paymaster-sponsored transaction.","properties":{"txHash":{"type":"string","description":"Transaction hash. Poll `/tx/query` with this for final status."},"blobId":{"type":"string","description":"Paymaster blob reservation ID."},"nonce":{"type":"integer","format":"int64","description":"Nonce used from the paymaster pool."},"paymasterAddress":{"type":"string","description":"Paymaster address sponsoring the gas fee."},"status":{"type":"string","description":"Processing status. Initially `QUEUED`; becomes `SUCCESS` or `FAILED` after processing."},"submittedAt":{"type":"string","format":"date-time","description":"Timestamp when queued."},"blockNumber":{"type":"integer","format":"int64","description":"Block number confirmed in (populated post-confirmation)."},"gasUsed":{"type":"integer","format":"int64","description":"Actual gas units consumed."},"gasFeePaid":{"type":"integer","format":"int64","description":"Total gas fee paid by paymaster in drops."}}},"ResponseMessage":{"type":"object","description":"A response message indicating informational, warning, or error details.","properties":{"type":{"type":"string","description":"Severity: `INFO`, `WARNING`, or `ERROR`.","enum":["INFO","ERROR","WARNING"]},"errorCode":{"type":"integer","format":"int32","description":"Numeric error code (0 = no error)."},"message":{"type":"string","description":"Human-readable description."}}}}},"paths":{"/ztx/contract/paymaster/submit":{"post":{"tags":["Paymaster"],"summary":"Submit paymaster contract invocation","operationId":"submitPaymasterTransaction_1","parameters":[{"$ref":"#/components/parameters/X-API-Key"}],"description":"Queues a signed contract invocation blob for asynchronous Paymaster processing. Returns immediately with `QUEUED` status. The Paymaster adds its gas-sponsoring signature and broadcasts the transaction.\n\n**Required fields:**\n- `blobId` — from `/contract/paymaster/generate-blob`\n- `blob` — signed by the user\n- `listSigner` — user's signature(s)\n\n**Tracking:**\nPoll `/tx/query` with `txHash` to check final on-chain status.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymasterSubmitReqDto"}}}},"responses":{"200":{"description":"Contract invocation queued for paymaster processing.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseWrapperPaymasterSubmitRespDto"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zetrix.com/en/developer-resources/blockchain-as-a-services-baas/zetrix-service/paymaster.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
