# B20X Local Signer Security

The SDK is the operator layer behind B20X. It prepares launch configuration, prints the B20 launch packet, signs local messages, and can submit public launch evidence to the registry.

The site should never ask for a deployer private key.

## Private Key Boundary

Private keys belong only in the local operator environment:

```text
BSC_PRIVATE_KEY=0x...
BSC_RPC_URL=https://...
```

The private key should not be pasted into:

- the website
- Telegram
- X DMs
- README files
- token config files
- GitHub issues
- screenshots

The SDK uses the private key locally to sign or broadcast. The public website and registry should receive only public data: wallet address, signature, CA, transaction hash, metadata, and scanner state.

## What The SDK Can Do

- validate that the launch is BSC-only
- normalize name, ticker, socials, image, and tax fields
- generate manifest and metadata digests
- print the launch packet before execution
- sign B20X wallet-sync messages locally
- submit public registry records after local signing
- run post-launch scanner checks where APIs are available

## What The SDK Should Not Do

- upload private keys
- store seed phrases
- silently change chain id away from BSC
- silently deploy from a different wallet
- claim official third-party certification without public evidence
- ask the user to fund a wallet before showing the final command

## Before Using A Real Wallet

Run this checklist first:

1. Use a fresh wallet for the first real test.
2. Fund only the gas and launch amount you are willing to risk.
3. Print the config before sending a transaction.
4. Confirm `chain_id = 56`.
5. Confirm the tax values in basis points.
6. Confirm the official website and X links.
7. Confirm the command does not contain private keys in shell history if you care about local machine hygiene.
8. Confirm the CA after launch from an independent BSC explorer.

## What Gets Sent To The Registry

Expected public payload:

```json
{
  "chain_id": 56,
  "creator_wallet": "0xCreator",
  "ca": "0xToken",
  "launch_tx": "0xTransaction",
  "manifest_digest": "0xDigest",
  "metadata_digest": "0xDigest",
  "signature": "0xSignature",
  "scanner_status": "checked"
}
```

Unexpected sensitive payload:

```text
private key
seed phrase
keystore password
exchange login
personal identity documents
```

If a workflow asks for those values, stop.

## SkillRoyalty And Scanner Wording

B20X may use a supported launch route with SkillRoyalty capability selected, and it may fetch scanner data after launch.

Use precise public wording:

```text
SkillRoyalty route
scanner checked
creator-wallet verified
CA indexed
```

Avoid wording that implies external endorsement unless there is a public official source for it:

```text
officially certified
guaranteed safe
audited by default
rug-proof
```

## Operating Principle

B20X uses a local-first signing model:

```text
Run locally. Sign locally. Verify the CA publicly. Then let the registry display the record.
```

The registry stores public evidence and signatures. It does not require custody of deployer private keys.
