Web3 configuration
Run Tanitar's on-chain features on your own testnet, contracts and signer, and verify and self-test the deployment, from the dashboard.
Tanitar can mint medals, badges and achievements as NFTs and run currency ↔ crypto exchanges on test networks. By default every chain uses Tanitar's own test infrastructure. If you prefer, you can register your own test network, deployed contracts and signer for a chain; Tanitar then runs that chain's fulfilments and exchanges for your tenant there, and only there.
Testnet and devnet only. A configuration that names a mainnet network, or a network that reports a mainnet identity, is refused.
Two places in the dashboard are involved:
| Where | What it does |
|---|---|
| Dashboard → Web3 (titled Web3 infrastructure) | Register, verify, rotate, suspend and delete your own infrastructure bundles |
| Dashboard → Rewards, sections Deployment evidence and Testnet self-test | See what was verified on each chain and send a live test transaction |
For the verification API, see Web3 verification.
Bundles
A bundle is everything Tanitar needs for one chain, registered in one step: the network, its expected identity, your deployed contracts, and your signer. You can have one bundle per chain. A chain without a bundle keeps using Tanitar's test infrastructure.
| State | Meaning |
|---|---|
pending_verification | Registered, not yet proven. Nothing uses it |
active | Verified. Fulfilments and exchanges for your tenant on this chain run here |
rotating | A replacement signer is staged; the current signer stays in force until you activate the replacement |
suspended | No new signing and no unsent work; transactions already submitted keep reconciling |
disabled | The chain is not advertised for your tenant |
Register a bundle
-
In Register a bundle, fill in Network, contracts and signer:
Field What to enter Chain ethereum,rootstock,hederaorsolanaRPC endpoint Your node's HTTP(S) URL. Stored and never shown again; only its host is shown back, because provider URLs often carry an API key Expected network identity The decimal chain id (EVM chains) or the genesis hash (Solana). The network must report exactly this Artifacts One per line: kind address registeredCodeHash abiVersion.kindismedal,trophy,organization-badge,achievementorexchange, each at most onceSigner address The address that signs for this chain Signing key The signer's private key -
Select Register bundle. The bundle appears as
pending_verification.
The signing key is write-only. Tanitar stores it encrypted, never displays it again and cannot return it. You own its backup, funding and recovery; a lost key is replaced by rotation.
Verify
Select Verify now on the bundle. Tanitar checks that the network reports the identity you
registered, that each contract's deployed code matches the code hash you registered and passes
Tanitar's conformance probes, and that the signer address is the one derived from the key you
registered. When verification passes, the bundle becomes active.
The page states what this means: the code is customer-registered and verified by Tanitar conformance checks. Tanitar has not audited your contract.
Run a testnet self-test
In Dashboard → Rewards → Testnet self-test, pick a verified Chain and select Run self-test. Tanitar sends one real zero-value transfer from the signer to itself. It mints nothing and moves no player value, but it spends the signer's testnet funds for the fee.
- At most one self-test per chain every 15 minutes, and ten per day.
- It is refused when the signer cannot cover the fee plus a safety reserve.
- A pending result says Awaiting confirmation; read it again in a moment.
Deployment evidence in the same page shows, per chain, the network it answered, each contract's identity, and whether its code matched. Re-verify now re-reads the chain without changing what is advertised.
Rotate the signer
- In Rotate the signer, enter the Replacement signer address and
Replacement signing key, then select Stage replacement. The bundle becomes
rotating; the current signer keeps working. - Select Verify now. The replacement must pass verification.
- Select Activate replacement signer. The replacement takes over.
Suspend, lift, delete
- Suspend (suspected key compromise) stops all new signing on the chain at once. Use it the moment you suspect the key has leaked, then rotate.
- Lift suspension resumes a suspended bundle.
- Delete bundle removes it. The chain returns to Tanitar's test infrastructure.
If Tanitar cannot read your bundle configuration, on-chain requests for your tenant are refused with
503. They never fall back to Tanitar's signer.
What can go wrong
| Code | Why | What to do |
|---|---|---|
WEB3_BUNDLE_MAINNET_REFUSED | The expected network identity is a mainnet | Register a testnet or devnet |
WEB3_BUNDLE_ENDPOINT_REFUSED | The RPC endpoint is not an allowed address | Use a public HTTP(S) endpoint |
WEB3_BUNDLE_INCOMPLETE | An artifact kind appears more than once | List each kind once |
WEB3_BUNDLE_EXISTS | A bundle already exists for this chain | Rotate or delete the existing bundle |
WEB3_BUNDLE_CODE_MISMATCH | The deployed code does not match the hash you registered | Check the contract address and registered hash; nothing is advertised on this chain until it matches |
WEB3_BUNDLE_NOT_VERIFIED | You tried to activate a replacement signer that has not passed verification | Select Verify now first |
WEB3_BUNDLE_NOT_ROTATING | There is no staged replacement to activate | Stage a replacement first |
WEB3_BUNDLE_STATE_INVALID | The action is not allowed in the bundle's state, for example rotating a disabled bundle | Check the state table above |
WEB3_BUNDLE_REVISION_CONFLICT | Someone changed the bundle since you loaded the page | The page reloads; retry |
| Organization members have read-only access | Your role is org:member | Ask an admin |