{"id":19451642,"url":"https://github.com/mrdotparasyte/onescription","last_synced_at":"2025-07-04T12:32:14.422Z","repository":{"id":213659587,"uuid":"734579996","full_name":"mrdotparasyte/onescription","owner":"mrdotparasyte","description":"All-in-One inscription tool","archived":false,"fork":false,"pushed_at":"2024-01-02T10:52:40.000Z","size":293,"stargazers_count":9,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T01:05:40.256Z","etag":null,"topics":["celestia","cias","cosmos","cosmos-inscription","evm","evm-inscription","injective","injs","inscribe","inscription","inscription-bot","opbnb","opbrc","ordinals","ordinals-tool"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrdotparasyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-22T03:51:43.000Z","updated_at":"2024-04-19T01:06:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"459e1806-8ece-4f08-a117-599d6356ff2b","html_url":"https://github.com/mrdotparasyte/onescription","commit_stats":null,"previous_names":["amovane/onescription","yoosoftcc/onescription","mrdotparasyte/onescription","zmovane/onescription"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrdotparasyte/onescription","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdotparasyte%2Fonescription","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdotparasyte%2Fonescription/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdotparasyte%2Fonescription/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdotparasyte%2Fonescription/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrdotparasyte","download_url":"https://codeload.github.com/mrdotparasyte/onescription/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdotparasyte%2Fonescription/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263541023,"owners_count":23477454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["celestia","cias","cosmos","cosmos-inscription","evm","evm-inscription","injective","injs","inscribe","inscription","inscription-bot","opbnb","opbrc","ordinals","ordinals-tool"],"created_at":"2024-11-10T16:42:31.768Z","updated_at":"2025-07-04T12:32:14.371Z","avatar_url":"https://github.com/mrdotparasyte.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# All-in-One inscription tool\n\n![https://npm.im/@scriptione/one](https://img.shields.io/npm/v/@scriptione/one)\n![](https://snyk.io/test/github/amovane/onescription/badge.svg)\n\nA multi-chain inscription tool that can function as a standalone inscription bot or seamlessly integrate into web applications. The tool also boasts concurrent request handling, secure wallet generation, and a range of other valuable features.\n\n- [Packages](#packages)\n- [Features](#features)\n- [Examples](#examples)\n  - [use as an inscription bot](#to-use-as-an-inscription-bot)\n  - [use in web application](#to-use-in-web-application)\n\n## Packages\n\n| Package                                                                                 | Version                                              | Security                                                        | Installation                         |\n| --------------------------------------------------------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------ |\n| [@scriptione/evm](https://github.com/Amovane/onescription/tree/main/packages/evm)       | ![](https://img.shields.io/npm/v/@scriptione/evm)    | ![](https://snyk.io/test/github/amovane/onescription/badge.svg) | `yarn add @scriptione/evm@latest`    |\n| [@scriptione/cosmos](https://github.com/Amovane/onescription/tree/main/packages/cosmos) | ![](https://img.shields.io/npm/v/@scriptione/cosmos) | ![](https://snyk.io/test/github/amovane/onescription/badge.svg) | `yarn add @scriptione/cosmos@latest` |\n\n## Features\n\n- Utility\n\n  - [x] inscription bot\n  - [x] can be integrated into web application\n\n- Multi-chain support\n\n  - [x] Evm-compatible chains\n  - [x] Cosmos Hub\n\n- Highly customizable\n\n  - [x] configurable gas options, with automatic estimation as the default.\n  - [x] selectively executed according to customized logic, such as writing execution logic based on block height or unix timestamp. [INJS demo](#cosmos)\n  - [ ] configurable transaction type, including contract call or token transfer.\n\n- Concurrent requests\n\n  - [x] correct way to handle concurrent requests on nodejs, based on [async-mutext](https://github.com/DirtyHairy/async-mutex) / semaphore.\n  - [ ] wait for each request until the user-defined status is reached.\n\n- Wallet\n  - [x] connect an existing signer from private key / mnemonic / secret csv file.\n  - [x] create a new wallet and export it to secret file (CSV format).\n  - [ ] may be a better practice to encrypt the generated secret file using [age encryption](https://github.com/FiloSottile/typage).\n\n## Examples\n\n### To use as an inscription bot\n\n#### **Evm:**\n\nopbrc\n\n```typescript\nimport { EvmConfig, Inscriber, Onescription, Strategy } from \"@scriptione/evm\";\nconst configuration: EvmConfig = {\n  os: \"evm\",\n  chainId: 204,\n  isSelfTransaction: false,\n  value: 0,\n  recipient: \"0x83b978Cf73ee1D571b1a2550c5570861285AF337\",\n};\nconst inscriber = Inscriber.from(configuration);\ninscriber.connectSignerFromPrivateKey(\"YOUR PRIVATE\");\n// or\n// inscriber.connectSignerFromMnemonic(\"YOUR MNEMONIC\");\nconst strategy: Strategy = {\n  maxConcurrentRequests: 3,\n  statusToWait: \"submitted\",\n};\nconst onescription = new Onescription(inscriber, strategy);\n// const obrcInsc: InscriptionText = data:application/json,{\"p\":\"opbrc\",\"op\":\"mint\",\"tick\":\"obrc\"}\nconst opbnInsc: InscriptionText = `data:application/json,{\"p\":\"opbrc\",\"op\":\"mint\",\"tick\":\"opbn\"}`;\nconst concurrCb = ({ hash, err }: Tx) =\u003e console.log(hash || err);\nfor (; ;) {\n  await onescription.inscribe(inscription, concurrCb);\n}\n```\n\n#### **Cosmos:**\n\nInjective\n\n```typescript\nimport {\n  ChainInfoProvider,\n  CosmosConfig,\n  Inscriber,\n  Onescription,\n  Strategy,\n} from \"@scriptione/cosmos\";\n\nconst configuration: CosmosConfig = {\n  os: \"cosmos\",\n  prefix: \"inj\",\n  isSelfTransaction: true,\n};\nconst inscriber = Inscriber.from(configuration);\ninscriber.connectSignerFromMnemonic(\"YOUR MNEMONIC\");\nconst strategy: Strategy = {\n  maxConcurrentRequests: 2,\n  statusToWait: \"submitted\",\n  // The $INJS introduction is available in this link\n  // https://docs.injs.ink/mint-injs\n  predicate: async (provider: ChainInfoProvider) =\u003e {\n    const blockHeight = await provider.getBlockHeight();\n    console.log(\"current block height:\", blockHeight);\n    const rounds = [\n      [55051600, 55053100],\n      [55094800, 55096300],\n      [55138000, 55139500],\n      [55181200, 55182700],\n      [55224400, 55225900],\n      [55267600, 55269100],\n      [55310800, 55312300],\n      [55354000, 55355500],\n    ];\n    return (\n      undefined !==\n      rounds.find(([start, end]) =\u003e start \u003c= blockHeight \u0026\u0026 blockHeight \u003c= end)\n    );\n  },\n};\nconst onescription = new Onescription(inscriber, strategy);\nconst inscription = { p: \"injrc-20\", op: \"mint\", tick: \"INJS\", amt: \"1000\" };\nfor (;;) {\n  await onescription.inscribe(inscription);\n}\n```\n\n### To use in web application\n\n```typescript\nimport { EvmConfig, Inscriber } from \"@scriptione/evm\";\nconst configuration: EvmConfig = {\n  os: \"evm\",\n  chainId: 56,\n  isSelfTransaction: true,\n};\nconst inscriber = Inscriber.from(configuration);\nconst signer = new ethers.providers.Web3Provider(window.ethereum).getSigner();\ninscriber.connectSigner(signer);\nconst inp: Inscription = { p: \"bsc-20\", op: \"mint\", tick: \"bnbs\", amt: \"1000\" };\nawait inscriber.inscribe(inp);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdotparasyte%2Fonescription","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrdotparasyte%2Fonescription","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdotparasyte%2Fonescription/lists"}