hashgraph / hashgraph/asset-tokenization-studio

DX: two v8 factory/KYC footguns worth documenting (empty ISIN, onlyValidIssuer)

Open
#1,390 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
33
Forks
28
Avg merge
15h 36m
Merged PRs (30d)
8

Description

Building on the pre-deployed v8 testnet factory (`0.0.9213391`) we hit two undocumented reverts that cost real debugging time:

1. **`deployBond` with an empty ISIN reverts `WrongISIN`** — the factory enforces full ISO 6166 including the Luhn check digit. A documented example (or a derived-default recommendation) would help: most integrators won't have real ISINs on testnet. We ended up deriving a deterministic checksum-valid ISIN from our invoice ids.

2. **`grantKyc` reverts `AccountIsNotIssuer`** unless the KYC `issuer` argument is on the bond's SSI issuer list — the required sequence for a fresh bond (grant `ROLE_SSI_MANAGER` → `addIssuer` → then `grantKyc` with that issuer) isn't spelled out anywhere we found, and the zero-address "default" many integrators will try fails only at the on-chain revert.

Both were discovered live while shipping an invoice-financing platform on ATS for ETHOnline 2026 (KYC'd bonds, USDC settlement, secondary market). We solved both downstream (Luhn-valid ISIN derivation + a self-setup compliance batch that encodes the proven order) and are happy to upstream a docs PR — or a small SDK helper — if that's welcome.

Contributor guide

Open the contributing guide

Research direction

Start from the v8 testnet factory entry points named in the report, then locate the existing deployBond and grantKyc documentation. Document the ISO 6166/Luhn-valid ISIN requirement and the fresh-bond issuer setup sequence, including why the zero address fails. Done when both reverts and the required order are clear to integrators.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.