@quantovainc/qbullion
v0.1.1
Published
Quantum secure provenance and chain of custody records for precious metals and bullion. Proves the mint, assay, vault custody, transfer and redemption of gold silver platinum and palladium bars, with ML-DSA-65 under FIPS 204 and Quantova time proofs. No h
Maintainers
Readme
QBullion
QBullion is a live production post quantum provenance and chain of custody tool for precious metals and bullion on the Quantova network. It proves the mint, assay, vault custody, transfer and redemption of gold silver platinum and palladium bars, and it lets any third party confirm that history without trusting the party that created it.
QBullion proves records without disclosing them. Bar identities and holder details stay private on the systems of the party that holds them. Only a salted cryptographic commitment is written to the chain, and no commercial detail is ever published.
What it records
Each record is a signed envelope of one of five types.
- mint, a refiner states the metal, the form, the gross and fine weight in milligrams, the fineness, the serial and the refiner of a new bar.
- assay, an assayer certifies the fineness of a minted bar and names the assay.
- custody, a custodian states that a bar is held in a named vault.
- transfer, the holder of a bar moves it to another party.
- redeem, the holder removes a bar from the chain of custody and states why.
Every record is signed with ML-DSA-65 under FIPS 204 by the party whose role it names, and each later record links to the one before it so the whole life of a bar forms a chain.
Proving the time
A record on its own carries only the claim of its signer. Anchoring a record on the Quantova network through Qstamp adds a post quantum evidence anchor that fixes the latest moment the record existed, provable against the record and the signer by anyone, without claiming a regulated timestamp status that Quantova Inc does not hold.
Install
npm install @quantovainc/qbullionUse
const qbullion = require('@quantovainc/qbullion');
const refiner = qbullion.generateKey();
const bar = qbullion.mint({
key: refiner,
metal: 'gold',
form: 'bar',
grossWeightMg: 1000000,
fineWeightMg: 999900,
fineness: 999900,
serial: 'RMR 2026 0001',
refinerLabel: 'Royal Mint Refinery',
});
const anchored = await qbullion.anchor(bar, { seed, index: 0, network: 'testnet' });
const result = await qbullion.verify(anchored[0], { type: 'mint', network: 'testnet' });What a record does not establish
- It does not show that the stated facts are true. It shows only that the signer stated them and that the statement existed unchanged at a point in time.
- It does not identify a natural or legal person. The signer is a chain address, and linking an address to a refiner, assayer or custodian is a separate attestation.
- The labels are text written by the signer, they are not a verified identity.
License
Apache-2.0 OR MIT
