What Is the 3DPRC-2 Standard? The Complete Guide to 3DPass Object Tokenization
The 3DPRC-2 standard is a peer-to-peer protocol that defines the authentication, protection, and tokenization of real-world objects on the Ledger of Things blockchain, implemented through the Proof-of-Scan consensus mechanism.
The 3DPRC-2 (3DPass Request for Comments) specification serves as the architectural backbone for transforming physical objects into unique digital assets. Implemented across the 3dpass/3dp repository, this standard governs how three-dimensional objects are hashed, validated by a decentralized network, and converted into on-chain tokens. Understanding the 3DPRC-2 object tokenization framework is essential for developers building decentralized applications that bridge physical items with blockchain-based ownership.
Core Architecture of the 3DPRC-2 Standard
The 3DPRC-2 standard establishes a complete pipeline from physical object to digital asset, enforced by several specialized pallets in the Substrate runtime.
Object Authentication and HASH ID Generation
At the heart of 3DPRC-2 lies the Object Authentication Protocol, which converts a submitted 3D model into a unique on-chain HASH ID while guaranteeing copy-protection. This process utilizes the GRID2D algorithm to generate shape-specific hashes that serve as the object's digital fingerprint.
According to the source code in pallets/poscan/src/lib.rs (lines 6-9), the PoScan pallet constitutes "a part of 3DPRC-2 the object tokenization standard implementation"【/cache/repos/github.com/3dpass/3dp/main/pallets/poscan/src/lib.rs†L6-L9】. This module enforces the authentication flow where validators estimate processing time and reach consensus before minting the HASH ID.
The PoScan API Interface
3DPRC-2 exposes its functionality through a standardized JSON-RPC interface called the PoScan API. This interface allows external clients to submit objects, query authentication states, and approve tokenization.
The API defines critical methods including poscan_putObject for submission, poscan_getPoscanObject for retrieval, and poscan_approve for finalizing authentication. These methods are fully documented in pallets/poscan/README.md (lines 12-50), which details parameters such as object categories, privacy flags, and property definitions【/cache/repos/github.com/3dpass/3dp/main/pallets/poscan/README.md†L12-L50】.
Asset Tokenization Rules
Once authenticated, 3DPRC-2 specifies how object properties become tradeable tokens. The standard supports both fungible shares (representing partial ownership) and non-fungible tokens (representing unique assets), along with backed currencies tied to physical properties like weight or material.
The pallets/poscan-assets/README.md (lines 3-21) outlines these "Currencies (tokens) or backed tokens … according to 3DPRC-2", explaining how validators enforce limits on property values during the minting process【/cache/repos/github.com/3dpass/3dp/main/pallets/poscan-assets/README.md†L3-L21】.
Validator Participation and Consensus Integration
The 3DPRC-2 standard relies on a decentralized validator network to enforce object authentication before tokenization occurs.
The Estimation Consensus Mechanism
Validators participate by submitting time estimations for object processing through the submitEstimation system call. The protocol requires a 2/3 consensus threshold among validators before an object receives authentication approval.
This mechanism is documented in pallets/validator-set/README.md (lines 4-5), which explicitly links the submitEstimation function to the 3DPRC-2 validation flow【/cache/repos/github.com/3dpass/3dp/main/pallets/validator-set/README.md†L4-L5】. Validators who participate in this consensus process receive estimation rewards, while successful miners collect author rewards for block production.
Proof-of-Scan Consensus
3DPRC-2 drives the innovative Proof-of-Scan (PoScan) consensus mechanism, a hybrid PoW-PoA system where an object's shape serves as the mining nonce. This design guarantees that computational work is directly tied to real-world object authentication.
The consensus/poscan/README.md (lines 7-10) explains how "3DPRC-2 underpins the PoScan consensus", ensuring that mining activities contribute to the security and verification of tokenized objects【/cache/repos/github.com/3dpass/3dp/main/consensus/poscan/README.md†L7-L10】.
Interacting with 3DPRC-2: Code Examples
Developers can interact with the 3DPRC-2 standard through both RPC calls and direct runtime API access.
Submitting an Object via JSON-RPC
To initiate the tokenization process, clients call the poscan_putObject method with the object's geometric data and GRID2D hashes:
{
"jsonrpc":"2.0",
"method":"poscan_putObject",
"params":[
"Objects3D:Grid2dLow",
false,
"0x...obj data...",
6,
["0x2c99...","0x80af..."],
[{"propIdx":0,"maxValue":1}],
false,
null,
null,
false,
null,
null
],
"id":1
}
This request specifies the object category, privacy settings, byte array data, required number of approvals, top-10 GRID2D hashes, and property definitions. The implementation resides in pallets/poscan/src/lib.rs as part of the standard's core runtime logic.
Querying Object State in Rust
Runtime modules can query authentication status through the PosscanApi trait:
use posscan_api::PosscanApi;
fn get_object<T: Config>(object_id: u32) -> Result<ObjData<T::AccountId, T::BlockNumber>, Error<T>> {
<PosscanApi<T>>::get_object(object_id)
}
This interface wraps the PoScan pallet's storage structures, providing type-safe access to object metadata and authentication states.
Validator Estimation Submission
Validators submit their processing estimates using the validator-set API:
use validator_set_api::ValidatorSetApi;
fn submit_estimation<T: Config>(object_id: u32, est: u64, signature: Vec<u8>) -> DispatchResult {
<ValidatorSetApi<T>>::submit_estimation(object_id, est, signature)
}
This call is essential for reaching the 2/3 consensus threshold required by the 3DPRC-2 protocol before an object can proceed to tokenization.
Summary
The 3DPRC-2 standard provides the complete technical specification for bridging physical objects with blockchain ecosystems:
- Defines the Object Authentication Protocol that generates unique HASH IDs from 3D models using GRID2D hashing, implemented in
pallets/poscan/src/lib.rs. - Establishes the PoScan API with standardized JSON-RPC methods for object submission and verification, documented in
pallets/poscan/README.md. - Governs asset tokenization rules for converting object properties into fungible and non-fungible tokens, specified in
pallets/poscan-assets/README.md. - Enforces decentralized consensus through validator estimations requiring 2/3 agreement, detailed in
pallets/validator-set/README.md. - Integrates with PoScan consensus to make object authentication a fundamental component of the mining process, as described in
consensus/poscan/README.md.
Frequently Asked Questions
What does 3DPRC-2 stand for and where is it documented?
3DPRC-2 stands for 3DPass Request for Comments 2, a technical specification document defining the peer-to-peer protocol for object tokenization. The high-level overview appears in the repository's README.md (lines 12-14), while implementation details are distributed across the PoScan, validator-set, and assets pallet documentation【/cache/repos/github.com/3dpass/3dp/main/README.md†L12-L14】.
How does 3DPRC-2 prevent duplicate tokenization of the same physical object?
The standard utilizes the GRID2D algorithm to generate deterministic hashes from an object's geometric shape, creating a unique HASH ID. Only one HASH ID can exist on-chain for a given object, and the 2/3 validator consensus requirement ensures that subtle shape variations or copy attempts are detected and rejected during the estimation phase.
What types of tokens can be created under the 3DPRC-2 standard?
3DPRC-2 supports multiple tokenization models: non-fungible tokens for unique objects, fungible shares representing fractional ownership, and backed currencies tied to quantifiable properties like weight or material composition. These asset types are managed through the poscan-assets pallet, which enforces value limits and property constraints during minting.
Which file contains the core implementation of the 3DPRC-2 authentication logic?
The primary implementation resides in pallets/poscan/src/lib.rs, which explicitly identifies itself as "a part of 3DPRC-2 the object tokenization standard implementation" (lines 6-9)【/cache/repos/github.com/3dpass/3dp/main/pallets/poscan/src/lib.rs†L6-L9】. This pallet contains the runtime logic for object storage, hash verification, and the state transitions governing the authentication pipeline.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →