Skip to content

feat(api): update API v2 field descriptions#1469

Open
laviniat1996 wants to merge 33 commits intomainfrom
fields
Open

feat(api): update API v2 field descriptions#1469
laviniat1996 wants to merge 33 commits intomainfrom
fields

Conversation

@laviniat1996
Copy link
Collaborator

closes #1049

@github-actions
Copy link
Contributor

Skipping AI review because no docs changes in md, mdx, or docs.json

@laviniat1996 laviniat1996 self-assigned this Nov 28, 2025
@laviniat1996 laviniat1996 marked this pull request as draft November 28, 2025 03:30
@laviniat1996 laviniat1996 changed the title update field descriptions update API v2 field descriptions Nov 28, 2025
@laviniat1996 laviniat1996 added the 3p Reviewed by someone else (a third party). Used for filtering PRs. Don't mind this. label Dec 1, 2025
@reveloper reveloper self-requested a review December 4, 2025 06:09
],
"summary": "JSON-RPC endpoint",
"description": "All API methods are available through this single endpoint using JSON-RPC 2.0 protocol. Send the method name in the `method` field and parameters as a dictionary in `params`. Useful when you need to call multiple methods in sequence or prefer JSON-RPC over REST.",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Authorizations description shouldn't be empty:
Screenshot 0007-12-04 at 15 48 37

Example of a good definition:
Screenshot 0007-12-04 at 16 13 19

"summary": "JSON-RPC endpoint",
"description": "All API methods are available through this single endpoint using JSON-RPC 2.0 protocol. Send the method name in the `method` field and parameters as a dictionary in `params`. Useful when you need to call multiple methods in sequence or prefer JSON-RPC over REST.",
"operationId": "jsonRPC_post",
"requestBody": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://companyname-a7d5b98e-fields.mintlify.app/ecosystem/api/toncenter/v2/rpc/json-rpc-endpoint

Result field seems strange and broken:

Screenshot 0007-12-04 at 16 43 07 Screenshot 0007-12-04 at 16 43 11

Does it really have two options?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was all messed up. Basically any method can be sent as JSON RPC request. And the json file had all responses for all methods as a dropdown list in there, which is not ok

],
"summary": "Detect address",
Copy link
Collaborator

@reveloper reveloper Dec 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The field definition is wrong, which works from ANY form of TON Address:

Screenshot 0007-12-04 at 16 59 47

example:

curl --request POST \
  --url https://toncenter.com/api/v2/detectAddress \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "address": "0:c78b3eb54a55243d4efe411f0bb0101a8da61904a89c48212f81ff32006b2dc1"
}

https://companyname-a7d5b98e-fields.mintlify.app/ecosystem/api/toncenter/v2/rpc/detect-address

"summary": "Detect address",
"description": "Validates an address and returns it in all standard formats. Use this to convert between address formats or to validate user input. Returns raw format (0:abc...), base64 bounceable (EQ...), base64 non-bounceable (UQ...), and URL-safe variants.",
"operationId": "detectAddress_post",
"requestBody": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's find a more detailed explanation of this field for devs. Even if this is not for external use, it should be documented clearly:
Screenshot 0007-12-04 at 17 17 29

https://companyname-a7d5b98e-fields.mintlify.app/ecosystem/api/toncenter/v2/rpc/detect-address

"description": "Similar to previous one but tries to parse additional information for known contract types. This method is based on tonlib's function *getAccountState*. For detecting wallets we recommend to use *getWalletInformation*.",
"operationId": "get_extended_address_information_getExtendedAddressInformation_get",
"summary": "Detect address",
"description": "Validates an address and returns it in all standard formats. Use this to convert between address formats or to validate user input. Returns raw format (0:abc), base64 bounceable (EQ), base64 non-bounceable (UQ), and URL-safe variants.",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All fields should be fully self-descriptive without dependency on other fields:
Screenshot 0007-12-04 at 17 29 14

Example:
description: User-friendly bounceable address in standard base64 encoding.
description: User-friendly bounceable address, base64-encoded and safe for use in URLs.

"operationId": "get_extended_address_information_getExtendedAddressInformation_get",
"summary": "Detect address",
"description": "Validates an address and returns it in all standard formats. Use this to convert between address formats or to validate user input. Returns raw format (0:abc), base64 bounceable (EQ), base64 non-bounceable (UQ), and URL-safe variants.",
"operationId": "detectAddress_get",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is related to the user-friendly address flag, it should be accurately explained, that this is representation. This flag not 100% defined, whether the account of qiured address belongs only to the Testnet or Mainnet, because the address itself matches within both networks.
Screenshot 0007-12-04 at 17 51 53

],
"summary": "Detect address",
"description": "Validates an address and returns it in all standard formats. Use this to convert between address formats or to validate user input. Returns raw format (0:abc...), base64 bounceable (EQ...), base64 non-bounceable (UQ...), and URL-safe variants.",
"operationId": "detectAddress_post",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the /api/v2/detectAddress method, address description:
Screenshot 0007-12-08 at 18 50 32

It's better to make a compact definition and add a link:
Account address in raw format (e.g., 0:ca6e321c...) or User-friendly format (e.g., EQDKbjIcfM6ezt8KjKJJLshZJJSqX7XOA4ff-W72r5gqPrHF)

"hash": {
"name": "hash",
"in": "query",
"description": "A 256-bit hash in hex (64 chars) or base64 (44 chars) format. Used to identify blocks, transactions, and messages uniquely.",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This description duplicated with another one in render:
Screenshot 0007-12-08 at 18 50 32

"type": "array",
"items": {
"$ref": "#/components/schemas/ExtraCurrencyBalance"

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 0007-12-08 at 20 06 37

Let's define response description with the "Returns" verb. In this way, we avoid overusing "Response," and the description sounds more direct.
Example: Returns the hash of the requested resource in all supported formats (hex, base64, base64 URL-safe).

Can we remove the word "OK" from this description? "OK" is an excess word here.

"type": "array",
"items": {
"$ref": "#/components/schemas/ExtraCurrencyBalance"

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A Boolean parameter is better suited to describe straightforward boolean values:

Example: Returns true if the request succeeded; otherwise false. See the error field for details.

}
}
],
"description": "The response data. Only present when `ok` is true. "
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

true should be formatted as code.

Screenshot 0007-12-08 at 20 26 51

"b64": {
"type": "string",
"title": "base64 form",
"description": "Standard base64 encoding."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a full self-defined description for each child field.

Screenshot 0007-12-08 at 20 29 28

"summary": "Pack address",
"description": "Converts a raw address to user-friendly base64 format. Raw addresses use the format `workchain:hex` (e.g., `0:abc...`). The packed format is shorter and includes a checksum for error detection.",
"operationId": "packAddress_post",
"requestBody": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicated address field description
Screenshot 0007-12-08 at 20 32 05

"properties": {
"hash": {
"$ref": "#/components/schemas/TonHash",
"description": "Unique identifier hash for this object."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This object - unclear. Let's specify a list of potential entities here: message, transaction, account?

"type": "array",
"items": {
"$ref": "#/components/schemas/ExtraCurrencyBalance"

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we have no child object specified, let's describe this in the overall description. Add self-completed description here, what will be in this data by type, encoding e.t.c.

Screenshot 0007-12-09 at 17 11 57

@laviniat1996 laviniat1996 changed the title update API v2 field descriptions docs (feat): update API v2 field descriptions Feb 17, 2026
@laviniat1996 laviniat1996 changed the title docs (feat): update API v2 field descriptions feat (docs): update API v2 field descriptions Feb 17, 2026
@laviniat1996 laviniat1996 changed the title feat (docs): update API v2 field descriptions feat(docs): update API v2 field descriptions Feb 17, 2026
@github-actions

This comment has been minimized.

}
},
"/getShardBlockProof": {
"/api/v2/tryLocateTx": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
},
"/getShardBlockProof": {
"/api/v2/tryLocateTx": {
"get": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's better to define, as "extra currencies", since "non-TON currencies" may be misread and mixed with jetton tokens, which may still appear in the same message.

Image

https://companyname-a7d5b98e-fields.mintlify.app/ecosystem/api/toncenter/v2/transactions/try-locate-transaction#response-result-in-msg-extra-currencies

}
},
"/getMasterchainInfo": {
"/api/v2/getTransactions": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
},
"/getMasterchainInfo": {
"/api/v2/getTransactions": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
},
"/getMasterchainBlockSignatures": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
},
"/getConfigAll": {
"/api/v2/getBlockHeader": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, add formatting to variables:
workchain, shard, seqno, root_hash, file_hash, start_lt, and end_lt.

Image

https://companyname-a7d5b98e-fields.mintlify.app/ecosystem/api/toncenter/v2/blocks/get-block-header#response-result-end-lt

}
},
"/getConfigAll": {
"/api/v2/getBlockHeader": {
"get": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
},
"/tryLocateResultTx": {
"/api/v2/getOutMsgQueueSize": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
},
"/sendBoc": {
"/api/v2/runGetMethod": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TonResponse"
"$ref": "#/components/schemas/SendBocReturnHashResponse"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reveloper
Copy link
Collaborator

LGTM, Ready for review.

@reveloper reveloper marked this pull request as ready for review March 9, 2026 05:08
reveloper
reveloper previously approved these changes Mar 9, 2026
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No documentation issues detected.

@reveloper reveloper added the scope: api OpenAPI specs and relevant sub-directories in the /ecosystem/api/ folders label Mar 9, 2026
Copy link
Collaborator

@memearchivarius memearchivarius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why source description is different from destination?

},
"message": {
"type": "string",
"descripti
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"descripti
"description": "Array of fee breakdowns charged on the receiving account. Each entry contains `in_fwd_fee`, `storage_fee`, `gas_fee`, and `fwd_fee` in nanotons (integers)."

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@memearchivarius Great catch! I fixed it, please let me know if it looks good to you know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3p Reviewed by someone else (a third party). Used for filtering PRs. Don't mind this. scope: api OpenAPI specs and relevant sub-directories in the /ecosystem/api/ folders

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TON Center > API/v2 > OpenAPI 3 full field description]

4 participants