Protected issuer application
Issuer account access
A verified issuer web account controls access to this dashboard. MetaMask is still required separately for every on-chain issuer signature.
Multi-factor authentication
Use a recovery code
Complete issuer-account setup
The temporary password must be replaced before dashboard access is granted.
Use an authenticator application that supports TOTP. The backend never asks for or stores a wallet private key.
Manual secret
—
Store these single-use recovery codes securely now. They are not shown again.
This account is not authorized for the issuer dashboard. Ask an issuer administrator to review the account and its permissions.
Issuer and investor-relations functions
Issuer workspace
Connect the appropriate issuer wallet for on-chain actions. The authenticated issuer account controls access to data and administration; MetaMask remains the independent signing boundary.
Wallet and contract connection
Initializing the interface…
Selected wallet
Issuer wallet status
Connected account
- Address
- Connect MetaMask
- Issuer role
- —
- Native currency balance
- —
- Gas readiness
- —
- SET balance
- —
- SepoliaUSDC balance
- —
- Registration
- —
- Stored registration hash
- —
- Recoverable
- —
- Pending action
- —
Contract status
- Name
- Loading…
- Symbol
- Loading…
- Decimals
- Loading…
- Tokens per share
- Status
- Loading…
- Company shares
- thereof shares tokenized
- thereof shares not tokenized
- Treasury shares?
- Total supply
- Loading…
- Agreement
- Loading…
No on-chain governance signer is connected. Your issuer web account still authorizes the dashboard, token-holder data, analysis, administration, profile, and simulator. Only governance transaction buttons are disabled until MetaMask connects one of the five issuer wallet addresses.
Five-account governance
Issuer balances and pending actions
Each row combines the issuer address, SET balance, SepoliaUSDC balance, native balance, gas readiness, and the action hash currently signed by that issuer.
| Index | Issuer address | SET balance | SepoliaUSDC balance | Native balance | Gas | Pending action |
|---|---|---|---|---|---|---|
| Loading issuer data… | ||||||
Web-account settings
Issuer profile
Review the account currently signed in, then manage delivery preferences, optional two-factor authentication, and the password in that order.
Issuer account
Loading account… — logged in as issuer.
- Account status
- Loading…
“Active” means the account is enabled to sign in; it does not mean the user is currently online.
- Last sign-in
- Loading…
The initial issuer administrator is the first operator-created web account. It retains the full administrative permission set and must receive off-chain shareholder-register change reports.
Step 1 · Invite
Invite an issuer-account user
Enter the email address, choose a clear permission package, decide whether 2FA is required, and send the single-use invitation.
Step 2 · Review
Issuer accounts
Review each account’s activation state, recent use, database-delivery preference, and granted capabilities. Administrative changes remain in the protected section below.
| Account | Status | Role | 2FA | Register updates | Last sign-in | Permissions |
|---|---|---|---|---|---|---|
| Loading issuer accounts… | ||||||
Step 3 · Administer
Administer an issuer account
Choose one account, adjust grouped permissions, or perform a clearly labelled account action.
Select an account to administer.
Your profile determines whether a recent code is required.
Finalized SET contract history
Analysis
Review recent on-chain events, search the decoded event data, and open the exact Sepolia transaction. This operational view was moved from the public Home page.
- Loading events…
Lecture-ready Sepolia testing
Testing
Ten backend-controlled testing wallets support demonstrations of transfers, allowances, assignments, random Uniswap trades, and issuer replacement. Private and public keys are not shown in the browser.
Fund only wallet 1 externally. Wallet 1 is the funding and liquidity-management wallet already used by the simulator. The backend can distribute small amounts of Sepolia ETH, SET, and USDC to wallets 2–10.
1 · Testing wallets
| Wallet | Purpose | Address | Sepolia ETH | SET | Sepolia USDC |
|---|---|---|---|---|---|
| Loading testing wallets… | |||||
2 · Distribute test assets from wallet 1
Select one or more wallets. A value of zero skips that asset.
3 · Random Uniswap trading
Trade times follow a Poisson process and are spread randomly over the UTC day. Wallets rotate automatically. A configurable buy bias can counterbalance earlier persistent selling; it does not guarantee that the price rises.
4 · Contract exercises
Run bounded server-signed demonstrations from a selected testing wallet. This workflow covers transfers, allowances, and the full USDC assignment lifecycle. Registration and contract termination are deliberately excluded.
5 · Prepare issuer-function testing
Load testing wallets 2 and 3 into the existing Governance → Issuer accounts & recovery form. Two current issuer signatures are still required to replace issuer slots. The Testing page does not bypass multisignature governance.
6 · Sign issuer actions with testing issuers
After two testing wallets have been installed as on-chain issuers, select the same method and exact arguments first with one wallet and then with the other. The SET contract remains the two-of-five execution boundary. terminate() is not available here.
7 · Recent testing transactions
| Time | Wallet | Action | Status | Transaction | Message |
|---|---|---|---|---|---|
| No testing transactions loaded. | |||||
Server connectivity
RPC diagnostics
RPC means Remote Procedure Call: the HTTPS connection the backend uses to read Ethereum Sepolia and submit signed simulator transactions. Complete URLs and provider credentials are never displayed.
| RPC host | Health | Latency | Latest block | Last success | Last error |
|---|---|---|---|---|---|
| Loading stored diagnostics… | |||||
Background blockchain work
Page requests read stored SQLite data immediately. Blockchain refreshes are queued and run separately so a slow provider does not block issuer sign-in or normal page use.
Stored issuer actions
Pending first signatures
The backend verifies and stores the initiating transaction, exact calldata, decoded arguments, and issuer identity. A different issuer must submit the identical call to provide the second signature.
| Action | Exact arguments | First signee | Your next step | Initiated |
|---|---|---|---|---|
| Loading pending issuer actions… | ||||
Transaction readiness
Two-of-five multisignature process
The first issuer submission stores the hash of the exact function call. A different issuer must submit the identical function and identical arguments to execute it. The result shown after each transaction states whether the call recorded the first signature or executed the action as the second signature.
Each action section displays the connected issuer’s current pending hash and provides unsign() where applicable. Every write transaction requires SepoliaETH for gas; MetaMask is the final confirmation screen.
Communications and legal agreement
Connect an issuer wallet to inspect its pending signature.
Make announcement
Emit an on-chain Announcement event for investors and the public.
Change registration agreement
Replace the reference returned by _agreement().
Company and tokenized shares
Connect an issuer wallet to inspect its pending signature.
Change company shares
Set the company-share count. It cannot be below the tokenized count or above the uint32 limit.
Raise tokenized shares
Add shares to the tokenized supply and credit issuer 0.
Untokenize shares
Remove whole shares from issuer 0’s position and reduce the tokenized supply.
Issuer accounts and account recovery
Connect an issuer wallet to inspect its pending signature.
Use a genuinely new destination wallet. For issuer 0 and account recovery, the contract rejects a target that already has a SET balance or stored registration hash. Allowances and open offers are stored outside the ledger: they are not transferred. Existing approvals or offers involving the old address may need to be revoked or recreated as part of the operational process.
Change an issuer account
Replace one issuer address. Replacing issuer 0 also transfers its complete ledger position to the new empty and unregistered account.
Recover an eligible account
Move the complete ledger position from a registered recoverable wallet to a new empty and unregistered wallet.
Contract state
Connect an issuer wallet to inspect its pending signature.
Pause or unpause
Pause blocks settlement operations; unpause restores the LIVE state unless the contract is terminated.
Terminate contract
Termination permanently disables settlement. It cannot be reversed by this contract.
- Contract
- —
- Network
- — · chain ID —
- Contract page
- Open contract